[svn:parrot] r44567 - in branches/ops_pct/compilers/opsc: src/Ops t
bacek at svn.parrot.org
bacek at svn.parrot.org
Mon Mar 1 09:45:23 UTC 2010
Author: bacek
Date: Mon Mar 1 09:45:23 2010
New Revision: 44567
URL: https://trac.parrot.org/parrot/changeset/44567
Log:
Implement Ops::File.read_ops
Added:
branches/ops_pct/compilers/opsc/t/05-opsfile.t
Modified:
branches/ops_pct/compilers/opsc/src/Ops/File.pm
Modified: branches/ops_pct/compilers/opsc/src/Ops/File.pm
==============================================================================
--- branches/ops_pct/compilers/opsc/src/Ops/File.pm Mon Mar 1 09:44:42 2010 (r44566)
+++ branches/ops_pct/compilers/opsc/src/Ops/File.pm Mon Mar 1 09:45:23 2010 (r44567)
@@ -176,8 +176,10 @@
=end
-method new(@files, $nolines) {
+method new(*@files, :$nolines) {
self<files> := @files;
+ self<parsed_ops> := list(); # Raw ops parsed.
+ self<ops> := list(); # Renumbered versions of ops
for @files { self.read_ops( $_, $nolines ) }
@@ -199,6 +201,15 @@
=end
method read_ops($file, $nolines) {
+ my $compiler := pir::compreg__Ps('Ops');
+
+ say("Parsing $file");
+ my $buffer := slurp($file);
+ my $past := $compiler.compile($buffer, :target('past'));
+
+ for @($past<ops>) {
+ self<parsed_ops>.push($_);
+ }
}
=begin
Added: branches/ops_pct/compilers/opsc/t/05-opsfile.t
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/ops_pct/compilers/opsc/t/05-opsfile.t Mon Mar 1 09:45:23 2010 (r44567)
@@ -0,0 +1,23 @@
+#!./parrot-nqp
+
+pir::load_bytecode("compilers/opsc/opsc.pbc");
+pir::load_bytecode("nqp-settings.pbc");
+
+plan(2);
+
+my $f := Ops::File.new();
+ok($f, "Empty Ops::File created");
+
+my @files := <
+ src/ops/core.ops
+ src/ops/math.ops
+>;
+
+$f := Ops::File.new(|@files);
+
+# 84 core
+# 116 math
+say( "Parsed " ~ +$f<parsed_ops>);
+ok( $f<parsed_ops> == 84 + 116, "Ops parsed correctly");
+
+# vim: expandtab shiftwidth=4 ft=perl6:
More information about the parrot-commits
mailing list