Author: bernhard
Date: Mon Feb  5 16:10:58 2007
New Revision: 16899

Modified:
   trunk/languages/plumhead/src/partridge/Plumhead.pg
   trunk/languages/plumhead/src/partridge/PlumheadPAST.tg

Log:
[Plumhead partridge]
Add support for 'echo 1 + 2 +3;'


Modified: trunk/languages/plumhead/src/partridge/Plumhead.pg
==============================================================================
--- trunk/languages/plumhead/src/partridge/Plumhead.pg  (original)
+++ trunk/languages/plumhead/src/partridge/Plumhead.pg  Mon Feb  5 16:10:58 2007
@@ -28,7 +28,9 @@
 
 token expression  { <DOUBLEQUOTE_STRING> | <SINGLEQUOTE_STRING> | 
<adding_expression> }
 
-rule adding_expression { <multiplying_expression> ( <PLUS> 
<multiplying_expression> )* }
+rule adding_expression { <multiplying_expression> <summand>? }
+
+rule summand           { <?PLUS> <adding_expression> }
 
 rule multiplying_expression  { <unary_expression> ( <MUL_OP> 
<unary_expression> )* }
 

Modified: trunk/languages/plumhead/src/partridge/PlumheadPAST.tg
==============================================================================
--- trunk/languages/plumhead/src/partridge/PlumheadPAST.tg      (original)
+++ trunk/languages/plumhead/src/partridge/PlumheadPAST.tg      Mon Feb  5 
16:10:58 2007
@@ -116,7 +116,18 @@
 
     $P0 = node['adding_expression']
     if null $P0 goto no_adding_expression
-    past = tree.'get'('past', $P0, 'Plumhead::Grammar::expression')
+       .local pmc mult, past_mult, summand, summand_0, past_summand_0
+        summand = $P0['summand']
+        if null summand goto no_summand
+            mult = $P0['multiplying_expression']
+           past_mult = tree.'get'('past', mult, 
'Plumhead::Grammar::expression')
+           summand_0 = summand[0]
+           past_summand_0 = tree.'get'('past', summand_0, 
'Plumhead::Grammar::expression')
+            past = new 'PAST::Op'
+           past.init( past_mult, past_summand_0, 'name' => 'infix:+',  'pirop' 
=> 'n_add' )
+            goto handled_expression
+       no_summand:
+        past = tree.'get'('past', $P0, 'Plumhead::Grammar::expression')
     goto handled_expression
     no_adding_expression:
 

Reply via email to