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> }