[svn:parrot] r44512 - branches/ops_pct/compilers/opsc/ops
bacek at svn.parrot.org
bacek at svn.parrot.org
Fri Feb 26 23:37:47 UTC 2010
Author: bacek
Date: Fri Feb 26 23:37:46 2010
New Revision: 44512
URL: https://trac.parrot.org/parrot/changeset/44512
Log:
Switch load_skip_file to use grammar
Modified:
branches/ops_pct/compilers/opsc/ops/oplib.pm
Modified: branches/ops_pct/compilers/opsc/ops/oplib.pm
==============================================================================
--- branches/ops_pct/compilers/opsc/ops/oplib.pm Fri Feb 26 23:37:25 2010 (r44511)
+++ branches/ops_pct/compilers/opsc/ops/oplib.pm Fri Feb 26 23:37:46 2010 (r44512)
@@ -182,7 +182,7 @@
method load_op_map_files() {
self._load_num_file();
- #self._load_skip_file();
+ self._load_skip_file();
}
=begin METHODS
@@ -352,16 +352,25 @@
method _load_skip_file() {
my $buf := slurp(self<skip_file>);
- my @lines := split("\n", $buf);
+ grammar SKIP {
+ rule TOP { <op>+ }
- for @lines {
- # XXX Bit ugly. But I don't know how to invoke ~~ in NQP...
- if /^^ \S+ $$/($_) {
- if ( exists( self<optable>, $_) ) {
- die("skipped opcode '$_' is also in num_file");
- }
- self<skiptable>{$_} := 1;
+ rule op { $<name>=(\w+) }
+ token ws {
+ [
+ | \s+
+ | '#' \N*
+ ]*
+ }
+ }
+
+ my $lines := SKIP.parse($buf);
+
+ for $lines<op> {
+ if ( exists( self<optable>, $_) ) {
+ die("skipped opcode '$_' is also in num_file");
}
+ self<skiptable>{$_} := 1;
}
}
More information about the parrot-commits
mailing list