Author: pmichaud
Date: Sat Mar 29 09:17:40 2008
New Revision: 26624

Modified:
   trunk/languages/tcl/config/makefiles/root.in
   trunk/languages/tcl/src/grammar/expr/expression.pg

Log:
[tcl]: RT#48028 changes
* Convert grammar to use Perl6Regex syntax instead of obsolete P6Regex.
* Change pgc to Perl6Grammar.
* 'make test' produces same results as before.


Modified: trunk/languages/tcl/config/makefiles/root.in
==============================================================================
--- trunk/languages/tcl/config/makefiles/root.in        (original)
+++ trunk/languages/tcl/config/makefiles/root.in        Sat Mar 29 09:17:40 2008
@@ -25,8 +25,8 @@
 CC         = @cc@
 
 
-PGE_DIR  = ../../compilers/pge
 TGE_DIR  = ../../compilers/tge
+PERL6GRAMMAR = ../../runtime/parrot/library/PGE/Perl6Grammar.pbc
 
 # can't use $(wildcard) and friends for PMCS, as these have to be in 
 # dependency order; with no duplicates. 
@@ -95,7 +95,7 @@
        $(PARROT) $(TGE_DIR)/tgc.pir --output=$@ $<
 
 .pg.pir :
-       $(PARROT) $(PGE_DIR)/pgc.pir --output=$@ $<
+       $(PARROT) $(PERL6GRAMMAR) --output=$@ $<
 
 .pir.pbc :
        $(PARROT) --output=$@ $<

Modified: trunk/languages/tcl/src/grammar/expr/expression.pg
==============================================================================
--- trunk/languages/tcl/src/grammar/expr/expression.pg  (original)
+++ trunk/languages/tcl/src/grammar/expr/expression.pg  Sat Mar 29 09:17:40 2008
@@ -8,18 +8,18 @@
 token ws { \h* }
 
 token program {
-   | <[;\n\r\t\ ]>* <command> [ <?ws> <[\r\n;]> <?ws> <command>? ]*
-   | $<empty>:=[^\s*$]
+   | <[;\n\r\t\ ]>* <command> [ <.ws> <[\r\n;]> <.ws> <command>? ]*
+   | $<empty>=[^\s*$]
 }
 
 token command {
-    | \# \N*
-    | [ $<word>:=( <expand>?
+    | '#' \N*
+    | [ $<word>=( <expand>?
           [ <quoted_word> [ <before [<[;\n\r\t\ ]>|$]>
                           | <error: extra characters after close-quote> ]
           | <braced_word> [ <before [<[;\n\r\t\ ]>|$]>
                           | <error: extra characters after close-brace> ]
-          | $<chunk>:=( <substitution> | \$ | <-[[$\\;\n\r\t\ ]>+ )+
+          | $<chunk>=( <substitution> | '$' | <-[[$\\;\n\r\t\ ]>+ )+
           ]
         ) \h*
       ]+
@@ -32,37 +32,37 @@
 }
 
 token quoted_word {
-    " $<chunk>:=( <substitution> | \$ | <-[[$\\"]>+ )* [ " | <error: missing 
"> ]
+    '"' $<chunk>=( <substitution> | '$' | <-[[$\\"]>+ )* [ '"' | <error: 
missing "> ]
 }
 
 token braced_word {
     <PGE::Text::bracketed: {}>
-  | \{ <error: missing close-brace>
+  | '{' <error: missing close-brace>
 }
 
 token command_substitution {
-    \[ \]
-  | \[ <[;\n\r\t\ ]>* <subcommand> [ <?ws> <[\r\n;]> <?ws> <subcommand>? ]* \]
-  | \[ <error: missing close-bracket>
+    '[' ']'
+  | '[' <[;\n\r\t\ ]>* <subcommand> [ <.ws> <[\r\n;]> <.ws> <subcommand>? ]* 
']'
+  | '[' <error: missing close-bracket>
 }
 
 token subcommand {
-    | \# \N*
-    | [ $<word>:=( <expand>?
+    | '#' \N*
+    | [ $<word>=( <expand>?
           [ <quoted_word> [ <before [<[\];\n\r\t\ ]>|$]>
                           | <error: extra characters after close-quote> ]
           | <braced_word> [ <before [<[\];\n\r\t\ ]>|$]>
                           | <error: extra characters after close-brace> ]
-          | $<chunk>:=( <substitution> | \$ | <-[[$\]\\;\n\r\t\ ]>+ )+
+          | $<chunk>=( <substitution> | \$ | <-[[$\]\\;\n\r\t\ ]>+ )+
           ]
         ) \h*
       ]+
 }
 
 token variable_substitution {
-    \$ [ \{  ( <-[}]>+ )  \}
-       | ([\:\:]?<?name>) [ \( $<index>:=( <substitution> | \$ | <-[[$\\)]>+ 
)+ \) ]?
-       ]
+    '$' [ '{'  ( <-[}]>+ )  '}'
+        | ('::'?<.name>) [ '(' $<index>=( <substitution> | '$' | <-[[$\\)]>+ 
)+ ')' ]?
+        ]
 }
 
 token backslash_substitution {
@@ -74,7 +74,7 @@
 }
 
 token expand {
-    \{\*\}<!before:\s>
+    '{*}'<!before:\s>
 }
 
 # this is so we can use these rules in [subst]
@@ -104,10 +104,10 @@
       | no    | n
       | on
       | off   | of )
-    <?wb>
+    <.wb>
 }
 
-rule nested { \( <expression> \) }
+rule nested { '(' <expression> ')' }
 
 token number { <scientific> | <float> | <integer> }
 
@@ -138,8 +138,8 @@
 # XXX This should actually be a PIR rule so we can add more rules.
 token mathfunc {
   [ <nary_function> | <binary_function> | <unary_function> | 
<nullary_function> 
-  | ( <[a..zA..Z]>\w* )  \(  <unknown_math_function>  ]
-        \( [<expression> [, <expression>]*]? \)
+  | ( <[a..zA..Z]>\w* )  '('  <unknown_math_function>  ]
+        '(' [<expression> [',' <expression>]*]? ')'
 }
 
 rule 'expression' is optable {...}

Reply via email to