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: