Author: bernhard
Date: Wed Jan 31 14:35:47 2007
New Revision: 16860

Modified:
   trunk/languages/plumhead/src/antlr3/Plumhead.g
   trunk/languages/plumhead/src/partridge/Plumhead.pg

Log:
[Plumhead partridge]
- Add some rules for arithmetic expressions.
- Try to use the same rule and token names as in 'Plumhead antlr3'


Modified: trunk/languages/plumhead/src/antlr3/Plumhead.g
==============================================================================
--- trunk/languages/plumhead/src/antlr3/Plumhead.g      (original)
+++ trunk/languages/plumhead/src/antlr3/Plumhead.g      Wed Jan 31 14:35:47 2007
@@ -41,7 +41,6 @@
 SINGLEQUOTE_STRING  : { codeMode }?=> '\'' ( ~'\'' )*  '\'' ;
 ECHO                : { codeMode }?=> 'echo' ;
 
-
 fragment
 IDENT   : { codeMode }?=> ( 'a'..'z' | 'A'..'Z' )( 'a'..'z' | 'A'..'Z' )*;
 

Modified: trunk/languages/plumhead/src/partridge/Plumhead.pg
==============================================================================
--- trunk/languages/plumhead/src/partridge/Plumhead.pg  (original)
+++ trunk/languages/plumhead/src/partridge/Plumhead.pg  Wed Jan 31 14:35:47 2007
@@ -7,31 +7,32 @@
 
 token TOP         { <program> }
 
-regex sea         { .* <before: \<> }
-
+regex SEA                     { .* <before: \<> }
+token CODE_START              { \< \? p h p }
+token CODE_END                { \? \> }
 token DOUBLEQUOTE_STRING      { " <-["]>* " }
-
 token SINGLEQUOTE_STRING      { ' <-[']>* ' }
+token ECHO                    { e c h o }
 
-token NUMBER                  { 1 }
-
-token start_code  { \< \? p h p }
+token NUMBER                  { \d+ }
 
-token end_code    { \? \> }
+token MINUS                   { \- }
+token PLUS                    { \+ }
+token MUL_OP                  { \* | / | % }
 
-token echo        { e c h o }
+token program     { ^ <SEA> <code> }
 
-token ws          { \s* }
+rule  code        { <CODE_START> <statement>* <CODE_END> }
 
-rule  statement   { <echo> }
+rule statement    { <ECHO> <expression> ; }
 
-token program     { ^ <sea> <code> }
+token expression  { <DOUBLEQUOTE_STRING> | <adding_expression> }
 
-rule  code        { <start_code> <statement>* <end_code> }
+rule adding_expression { <multiplying_expression> ( <PLUS> 
<multiplying_expression> )* }
 
-rule statement    { <echo> <expression> ; }
+rule multiplying_expression  { <unary_expression> ( <MUL_OP> 
<unary_expression> )* }
 
-token expression  { <DOUBLEQUOTE_STRING> | <adding_expression> }
+rule unary_expression { <MINUS>? <postfix_expression> }
 
-rule adding_expression { <NUMBER> }
+rule postfix_expression { <NUMBER> }
 

Reply via email to