[svn:parrot] r44687 - in branches/ops_pct/compilers/opsc: src/Ops src/Ops/Compiler t

bacek at svn.parrot.org bacek at svn.parrot.org
Sat Mar 6 11:46:17 UTC 2010


Author: bacek
Date: Sat Mar  6 11:46:17 2010
New Revision: 44687
URL: https://trac.parrot.org/parrot/changeset/44687

Log:
Preserve ops preamble in Ops::File

Modified:
   branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm
   branches/ops_pct/compilers/opsc/src/Ops/File.pm
   branches/ops_pct/compilers/opsc/t/05-opsfile.t

Modified: branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm
==============================================================================
--- branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm	Sat Mar  6 11:45:44 2010	(r44686)
+++ branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm	Sat Mar  6 11:46:17 2010	(r44687)
@@ -27,7 +27,7 @@
     );
 
     for $<preamble> {
-        $past<preamble>.push($_.ast);
+        $past<preamble>.push($_<preamble_guts>);
     }
 
     for $<op> {

Modified: branches/ops_pct/compilers/opsc/src/Ops/File.pm
==============================================================================
--- branches/ops_pct/compilers/opsc/src/Ops/File.pm	Sat Mar  6 11:45:44 2010	(r44686)
+++ branches/ops_pct/compilers/opsc/src/Ops/File.pm	Sat Mar  6 11:46:17 2010	(r44687)
@@ -181,6 +181,7 @@
 method new(*@files, :$nolines) {
     self<files>   := @files;
     self<ops>     := list(); # Ops
+    self<preamble>:= '';
 
     self._set_version();
 
@@ -213,8 +214,13 @@
     for @($past<ops>) {
         self<ops>.push($_);
     }
+
+    for @( $past<preamble> ) {
+        self<preamble> := self<preamble> ~ $_;
+    }
 }
 
+method preamble() { self<preamble> };
 method ops() { self<ops> };
 
 method version() {

Modified: branches/ops_pct/compilers/opsc/t/05-opsfile.t
==============================================================================
--- branches/ops_pct/compilers/opsc/t/05-opsfile.t	Sat Mar  6 11:45:44 2010	(r44686)
+++ branches/ops_pct/compilers/opsc/t/05-opsfile.t	Sat Mar  6 11:46:17 2010	(r44687)
@@ -3,7 +3,7 @@
 pir::load_bytecode("compilers/opsc/opsc.pbc");
 pir::load_bytecode("nqp-settings.pbc");
 
-plan(7);
+plan(8);
 
 my $f := Ops::File.new();
 ok($f, "Empty Ops::File created");
@@ -36,5 +36,6 @@
 ok( $version ~~ /^\d+ \s \d+ \s \d+$/, "Version parsed");
 say("# $version");
 
+ok( $f.preamble ~~ /pmc_parrotlibrary.h/, "Preamble preserved");
 
 # vim: expandtab shiftwidth=4 ft=perl6:


More information about the parrot-commits mailing list