[svn:parrot] r44731 - branches/ops_pct/compilers/opsc/src/Ops
cotto at svn.parrot.org
cotto at svn.parrot.org
Sun Mar 7 08:26:07 UTC 2010
Author: cotto
Date: Sun Mar 7 08:26:06 2010
New Revision: 44731
URL: https://trac.parrot.org/parrot/changeset/44731
Log:
[opsc] regex correctness fixes in _substitute
Modified:
branches/ops_pct/compilers/opsc/src/Ops/Op.pm
Modified: branches/ops_pct/compilers/opsc/src/Ops/Op.pm
==============================================================================
--- branches/ops_pct/compilers/opsc/src/Ops/Op.pm Sun Mar 7 08:25:53 2010 (r44730)
+++ branches/ops_pct/compilers/opsc/src/Ops/Op.pm Sun Mar 7 08:26:06 2010 (r44731)
@@ -225,42 +225,39 @@
-> $m { $trans.access_arg( self.arg_type(+$m<op_num> - 1), +$m<op_num>) }
);
- #XXX: the following substitutions need to be rewritten to exclude nested expressions
- # e.g. {{={{=0}},=foo}}
-
#s/{{=0,=([^{]*?)}}/ $trans->restart_address($1) . "; {{=0}}"; /me;
$str := subst($str,
- /'{{=0,=' $<addr>=[.*?] '}}'/,
+ /'{{=0,=' $<addr>=[<-[{]>*?] '}}'/,
-> $m { $trans.restart_address($m<addr>) ~ '; {{=0}}' }
);
#s/{{=0,\+=([^{]*?)}}/ $trans->restart_offset($1) . "; {{=0}}"; /me;
$str := subst($str,
- /'{{=0,+=' $<offset>=[.*?] '}}'/,
+ /'{{=0,+=' $<offset>=[<-[{]>*?] '}}'/,
-> $m { $trans.restart_offset($m<offset>) ~ '; {{=0}}' }
);
#s/{{=0,-=([^{]*?)}}/ $trans->restart_offset(-$1) . "; {{=0}}"; /me;
$str := subst($str,
- /'{{=0,-=' $<offset>=[.*?] '}}'/,
+ /'{{=0,-=' $<offset>=[<-[{]>*?] '}}'/,
-> $m { $trans.restart_offset( '-' ~ $m<offset>) ~ '; {{=0}}' }
);
#s/{{=([^*][^{]*?)}}/ $trans->goto_address($1); /me;
$str := subst($str,
- /'{{=' $<addr>=[.*?] '}}'/,
+ /'{{=' $<addr>=[<-[{]>*?] '}}'/,
-> $m { $trans.goto_address($m<addr>) }
);
#s/{{\+=([^{]*?)}}/ $trans->goto_offset($1); /me;
$str := subst($str,
- /'{{+=' $<offset>=[.*?] '}}'/,
+ /'{{+=' $<offset>=[<-[{]>*?] '}}'/,
-> $m { $trans.goto_offset($m<offset>) }
);
#s/{{-=([^{]*?)}}/ $trans->goto_offset(-$1); /me;
$str := subst($str,
- /'{{-=' $<offset>=[.*?] '}}'/,
+ /'{{-=' $<offset>=[<-[{]>*?] '}}'/,
-> $m { $trans.goto_offset( '-' ~ $m<offset>) }
);
@@ -272,19 +269,19 @@
#s/{{\^\+([^{]*?)}}/ $trans->expr_offset($1); /me;
$str := subst($str,
- /'{{^+' $<offset>=[.*?] '}}'/,
+ /'{{^+' $<offset>=[<-[{]>*?] '}}'/,
-> $m { $trans.expr_offset($m<offset>) }
);
#s/{{\^-([^{]*?)}}/ $trans->expr_offset(-$1); /me;
$str := subst($str,
- /'{{^-' $<offset>=[.*?] '}}'/,
+ /'{{^-' $<offset>=[<-[{]>*?] '}}'/,
-> $m { $trans.expr_offset( '-' ~ $m<offset>) }
);
#s/{{\^([^{]*?)}}/ $trans->expr_address($1); /me;
$str := subst($str,
- /'{{^' $<addr>=[.*?] '}}'/,
+ /'{{^' $<addr>=[<-[{]>*?] '}}'/,
-> $m { $trans.expr_address($m<addr>) }
);
More information about the parrot-commits
mailing list