Anyway i dont understand your reply. I removed :default ::= action => [name,values] and is this the root cause of the "bogus" array (it makes sense to know which name is passing around but I consider it misleading in the sysnopsis).
I read in the doc you linked:
> The "::first" action indicates that the value of a rule is to be the value of its first child, that is, the value corresponding to the first symbol of the rule's RHS.
But I cannot see how your addition of action => ::first can fix it. Given I removed the :default ::= action I get the same results with or without ::first
Dice_Expression ::= Simple_Dice |Dice_with_modifier_x |Dice_with_modifier_r do_simple_roll received: ({}, 4, "d", 6) Rolled : 4 Rolled : 3 Rolled : 6 Rolled : 2 do_simple_roll returning: { die_type => "1d6", rolls => [4, 3, 6, 2] } modifier_r received: ({}, { die_type => "1d6", rolls => [4, 3, 6, 2] } +, "r", 1) Dice_Expression ::= Simple_Dice action => ::first |Dice_with_modifier_x action => ::first |Dice_with_modifier_r action => ::first do_simple_roll received: ({}, 4, "d", 6) Rolled : 3 Rolled : 2 Rolled : 5 Rolled : 6 do_simple_roll returning: { die_type => "1d6", rolls => [3, 2, 5, 6] } modifier_r received: ({}, { die_type => "1d6", rolls => [3, 2, 5, 6] } +, "r", 1)
L*
In reply to Re^2: First steps with Marpa::R2 and BNF
by Discipulus
in thread First steps with Marpa::R2 and BNF
by Discipulus
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |