[svn:parrot] r38745 - branches/pmc_pct/compilers/pmcc/src/emitter

bacek at svn.parrot.org bacek at svn.parrot.org
Wed May 13 12:09:39 UTC 2009


Author: bacek
Date: Wed May 13 12:09:39 2009
New Revision: 38745
URL: https://trac.parrot.org/parrot/changeset/38745

Log:
Add pre_method_gen to Emitter::PMC

Modified:
   branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm

Modified: branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm
==============================================================================
--- branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm	Wed May 13 12:09:10 2009	(r38744)
+++ branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm	Wed May 13 12:09:39 2009	(r38745)
@@ -325,6 +325,7 @@
 #=cut
 
 method generate_c_file() {
+    self.pre_method_gen();
     my $res :=
           self.generate_c_file_functions()
         ~ self.generate_class_init();
@@ -340,12 +341,13 @@
 method generate_c_file_functions() {
     my $past    := self.past;
     my %vtables := self.vtables;
-
+    my $emitter := PMC::Emitter::C.new;
     my @res;
     for %vtables {
         my $entry := %vtables{$_};
         @res.push(self.generate_signature($entry, ""));
-        @res.push(PMC::Emitter::C.new.emit($past, $entry));
+        @res.push($emitter.emit($past, $entry));
+        @res.push("\n");
     }
 
     join('', @res);
@@ -433,6 +435,14 @@
     join('', @res);
 }
 
+=item C<pre_method_gen>
+
+Method for generating PMC-specific VTABLE functions. E.g. C<default> and C<null> implementations.
+
+=cut
+method pre_method_gen() {
+}
+
 method past() {
     self<past>;
 }


More information about the parrot-commits mailing list