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)