State 0: input ::= * processes (1) processes ::= * processes ::= * INCLUDE STRING processes processes ::= * INCLUDE_GUARD STRING processes processes ::= * process_or_template NAME CURLY_OPEN statements CURLY_CLOSE processes process_or_template ::= * PROCESS process_or_template ::= * TEMPLATE INCLUDE shift 42 INCLUDE_GUARD shift 43 PROCESS shift 77 TEMPLATE shift 78 processes shift 41 process_or_template shift 44 input accept {default} reduce 1 State 1: statement ::= dotted_name ROUND_OPEN * statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name (20) statement_args_maybe ::= * statement_args_maybe ::= * list_contents list_contents ::= * value list_contents ::= * value COMMA list_contents list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= * value noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE value ::= * invoc value ::= * noninvoc_value STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 BRACKET_OPEN shift 4 dotted_name shift 88 statement_args_maybe shift 47 list_contents shift 82 list shift 89 map shift 90 invoc shift 93 noninvoc_value shift 94 value shift 12 {default} reduce 20 State 2: statement ::= dotted_name ARROW dotted_name ROUND_OPEN * statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name (20) statement_args_maybe ::= * statement_args_maybe ::= * list_contents list_contents ::= * value list_contents ::= * value COMMA list_contents list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= * value noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE value ::= * invoc value ::= * noninvoc_value STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 BRACKET_OPEN shift 4 dotted_name shift 88 statement_args_maybe shift 53 list_contents shift 82 list shift 89 map shift 90 invoc shift 93 noninvoc_value shift 94 value shift 12 {default} reduce 20 State 3: dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name list_contents ::= * value list_contents ::= * value COMMA list_contents list ::= * CURLY_OPEN CURLY_CLOSE list ::= CURLY_OPEN * CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE list ::= CURLY_OPEN * list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= * value noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE value ::= * invoc value ::= * noninvoc_value STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 CURLY_CLOSE shift 84 ROUND_OPEN shift 8 BRACKET_OPEN shift 4 dotted_name shift 88 list_contents shift 50 list shift 89 map shift 90 invoc shift 93 noninvoc_value shift 94 value shift 12 State 4: dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map_contents ::= * value COLON value map_contents ::= * value COLON value COMMA map_contents map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= BRACKET_OPEN * BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE map ::= BRACKET_OPEN * map_contents BRACKET_CLOSE invoc ::= * value noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE value ::= * invoc value ::= * noninvoc_value STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 BRACKET_OPEN shift 4 BRACKET_CLOSE shift 95 dotted_name shift 88 list shift 89 map_contents shift 51 map shift 90 invoc shift 93 noninvoc_value shift 94 value shift 13 State 5: dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name list_contents ::= * value list_contents ::= * value COMMA list_contents list_contents ::= value COMMA * list_contents list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= * value noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE value ::= * invoc value ::= * noninvoc_value STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 BRACKET_OPEN shift 4 dotted_name shift 88 list_contents shift 83 list shift 89 map shift 90 invoc shift 93 noninvoc_value shift 94 value shift 12 State 6: dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map_contents ::= * value COLON value map_contents ::= * value COLON value COMMA map_contents map_contents ::= value COLON value COMMA * map_contents map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= * value noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE value ::= * invoc value ::= * noninvoc_value STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 BRACKET_OPEN shift 4 dotted_name shift 88 list shift 89 map_contents shift 86 map shift 90 invoc shift 93 noninvoc_value shift 94 value shift 13 State 7: dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map_contents ::= value COLON * value map_contents ::= value COLON * value COMMA map_contents map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= * value noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE value ::= * invoc value ::= * noninvoc_value STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 BRACKET_OPEN shift 4 dotted_name shift 88 list shift 89 map shift 90 invoc shift 93 noninvoc_value shift 94 value shift 14 State 8: dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= * value noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE noninvoc_value ::= ROUND_OPEN * value ROUND_CLOSE value ::= * invoc value ::= * noninvoc_value STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 BRACKET_OPEN shift 4 dotted_name shift 88 list shift 89 map shift 90 invoc shift 93 noninvoc_value shift 94 value shift 15 State 9: statement ::= IF ROUND_OPEN * value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= * value noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE value ::= * invoc value ::= * noninvoc_value STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 BRACKET_OPEN shift 4 dotted_name shift 88 list shift 89 map shift 90 invoc shift 93 noninvoc_value shift 94 value shift 16 State 10: statement ::= FOREACH ROUND_OPEN * value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statement ::= FOREACH ROUND_OPEN * value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= * value noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE value ::= * invoc value ::= * noninvoc_value STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 BRACKET_OPEN shift 4 dotted_name shift 88 list shift 89 map shift 90 invoc shift 93 noninvoc_value shift 94 value shift 17 State 11: elif ::= ELIF ROUND_OPEN * value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif ::= ELIF ROUND_OPEN * value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= * value noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE value ::= * invoc value ::= * noninvoc_value STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 BRACKET_OPEN shift 4 dotted_name shift 88 list shift 89 map shift 90 invoc shift 93 noninvoc_value shift 94 value shift 18 State 12: dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name (22) list_contents ::= value * list_contents ::= value * COMMA list_contents list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= value * noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 COMMA shift 5 BRACKET_OPEN shift 4 dotted_name shift 88 list shift 89 map shift 90 noninvoc_value shift 91 {default} reduce 22 State 13: dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map_contents ::= value * COLON value map_contents ::= value * COLON value COMMA map_contents map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= value * noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 COLON shift 7 BRACKET_OPEN shift 4 dotted_name shift 88 list shift 89 map shift 90 noninvoc_value shift 91 State 14: dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE (26) map_contents ::= value COLON value * map_contents ::= value COLON value * COMMA map_contents map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= value * noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 COMMA shift 6 BRACKET_OPEN shift 4 dotted_name shift 88 list shift 89 map shift 90 noninvoc_value shift 91 {default} reduce 26 State 15: dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= value * noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE noninvoc_value ::= ROUND_OPEN value * ROUND_CLOSE STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 ROUND_CLOSE shift 92 BRACKET_OPEN shift 4 dotted_name shift 88 list shift 89 map shift 90 noninvoc_value shift 91 State 16: statement ::= IF ROUND_OPEN value * ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= value * noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 ROUND_CLOSE shift 56 BRACKET_OPEN shift 4 dotted_name shift 88 list shift 89 map shift 90 noninvoc_value shift 91 State 17: statement ::= FOREACH ROUND_OPEN value * AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statement ::= FOREACH ROUND_OPEN value * AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= value * noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 AS shift 61 BRACKET_OPEN shift 4 dotted_name shift 88 list shift 89 map shift 90 noninvoc_value shift 91 State 18: elif ::= ELIF ROUND_OPEN value * ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif ::= ELIF ROUND_OPEN value * ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name list ::= * CURLY_OPEN CURLY_CLOSE list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE invoc ::= value * noninvoc_value noninvoc_value ::= * STRING noninvoc_value ::= * dotted_name noninvoc_value ::= * list noninvoc_value ::= * map noninvoc_value ::= * ROUND_OPEN value ROUND_CLOSE STRING shift 87 NAME shift 49 CURLY_OPEN shift 3 ROUND_OPEN shift 8 ROUND_CLOSE shift 72 BRACKET_OPEN shift 4 dotted_name shift 88 list shift 89 map shift 90 noninvoc_value shift 91 State 19: processes ::= process_or_template NAME CURLY_OPEN * statements CURLY_CLOSE processes statement ::= * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON statement ::= * dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON statement ::= * IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON statement ::= * FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statement ::= * FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statements ::= * statement statements ::= * statement statements dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name NAME shift 49 IF shift 55 FOREACH shift 60 statement shift 23 statements shift 46 dotted_name shift 39 State 20: statement ::= * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON statement ::= * dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON statement ::= * IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON statement ::= IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN * statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON statement ::= * FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statement ::= * FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statements ::= * statement statements ::= * statement statements dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name NAME shift 49 IF shift 55 FOREACH shift 60 statement shift 23 statements shift 57 dotted_name shift 39 State 21: statement ::= * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON statement ::= * dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON statement ::= * IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON statement ::= * FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statement ::= * FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON else_maybe ::= ELSE CURLY_OPEN * statements CURLY_CLOSE statements ::= * statement statements ::= * statement statements dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name NAME shift 49 IF shift 55 FOREACH shift 60 statement shift 23 statements shift 70 dotted_name shift 39 State 22: statement ::= * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON statement ::= * dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON statement ::= * IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON statement ::= * FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statement ::= FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN * statements CURLY_CLOSE name_maybe SEMICOLON statement ::= * FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statements ::= * statement statements ::= * statement statements dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name NAME shift 49 IF shift 55 FOREACH shift 60 statement shift 23 statements shift 63 dotted_name shift 39 State 23: statement ::= * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON statement ::= * dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON statement ::= * IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON statement ::= * FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statement ::= * FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statements ::= * statement (16) statements ::= statement * statements ::= * statement statements statements ::= statement * statements dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name NAME shift 49 IF shift 55 FOREACH shift 60 statement shift 23 statements shift 100 dotted_name shift 39 {default} reduce 16 State 24: statement ::= * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON statement ::= * dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON statement ::= * IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON statement ::= * FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statement ::= * FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statement ::= FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN * statements CURLY_CLOSE name_maybe SEMICOLON statements ::= * statement statements ::= * statement statements dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name NAME shift 49 IF shift 55 FOREACH shift 60 statement shift 23 statements shift 68 dotted_name shift 39 State 25: statement ::= * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON statement ::= * dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON statement ::= * IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON statement ::= * FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statement ::= * FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON elif ::= ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN * statements CURLY_CLOSE elif ::= ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN * statements CURLY_CLOSE elif statements ::= * statement statements ::= * statement statements dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name NAME shift 49 IF shift 55 FOREACH shift 60 statement shift 23 statements shift 73 dotted_name shift 39 State 26: (1) processes ::= * processes ::= * INCLUDE STRING processes processes ::= INCLUDE STRING * processes processes ::= * INCLUDE_GUARD STRING processes processes ::= * process_or_template NAME CURLY_OPEN statements CURLY_CLOSE processes process_or_template ::= * PROCESS process_or_template ::= * TEMPLATE INCLUDE shift 42 INCLUDE_GUARD shift 43 PROCESS shift 77 TEMPLATE shift 78 processes shift 74 process_or_template shift 44 {default} reduce 1 State 27: (1) processes ::= * processes ::= * INCLUDE STRING processes processes ::= * INCLUDE_GUARD STRING processes processes ::= INCLUDE_GUARD STRING * processes processes ::= * process_or_template NAME CURLY_OPEN statements CURLY_CLOSE processes process_or_template ::= * PROCESS process_or_template ::= * TEMPLATE INCLUDE shift 42 INCLUDE_GUARD shift 43 PROCESS shift 77 TEMPLATE shift 78 processes shift 75 process_or_template shift 44 {default} reduce 1 State 28: (1) processes ::= * processes ::= * INCLUDE STRING processes processes ::= * INCLUDE_GUARD STRING processes processes ::= * process_or_template NAME CURLY_OPEN statements CURLY_CLOSE processes processes ::= process_or_template NAME CURLY_OPEN statements CURLY_CLOSE * processes process_or_template ::= * PROCESS process_or_template ::= * TEMPLATE INCLUDE shift 42 INCLUDE_GUARD shift 43 PROCESS shift 77 TEMPLATE shift 78 processes shift 76 process_or_template shift 44 {default} reduce 1 State 29: statement ::= IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE * elif_maybe else_maybe name_maybe SEMICOLON (10) elif_maybe ::= * elif_maybe ::= * elif elif ::= * ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif ::= * ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif ELIF shift 71 elif_maybe shift 34 elif shift 103 {default} reduce 10 State 30: statement ::= dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE * name_maybe SEMICOLON (38) name_maybe ::= * name_maybe ::= * NAME NAME shift 80 name_maybe shift 48 {default} reduce 38 State 31: dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name dotted_name ::= NAME DOT * dotted_name NAME shift 49 dotted_name shift 81 State 32: statement ::= dotted_name ARROW * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name NAME shift 49 dotted_name shift 52 State 33: statement ::= dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE * name_maybe SEMICOLON (38) name_maybe ::= * name_maybe ::= * NAME NAME shift 80 name_maybe shift 54 {default} reduce 38 State 34: statement ::= IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe * else_maybe name_maybe SEMICOLON (14) else_maybe ::= * else_maybe ::= * ELSE CURLY_OPEN statements CURLY_CLOSE ELSE shift 59 else_maybe shift 35 {default} reduce 14 State 35: statement ::= IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe * name_maybe SEMICOLON (38) name_maybe ::= * name_maybe ::= * NAME NAME shift 80 name_maybe shift 58 {default} reduce 38 State 36: statement ::= FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE * name_maybe SEMICOLON (38) name_maybe ::= * name_maybe ::= * NAME NAME shift 80 name_maybe shift 64 {default} reduce 38 State 37: statement ::= FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE * name_maybe SEMICOLON (38) name_maybe ::= * name_maybe ::= * NAME NAME shift 80 name_maybe shift 69 {default} reduce 38 State 38: elif ::= * ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE (12) elif ::= ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE * elif ::= * ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif elif ::= ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE * elif ELIF shift 71 elif shift 104 {default} reduce 12 State 39: statement ::= dotted_name * ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON statement ::= dotted_name * ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON ROUND_OPEN shift 1 ARROW shift 32 State 40: statement ::= FOREACH ROUND_OPEN value AS NAME * ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statement ::= FOREACH ROUND_OPEN value AS NAME * COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON ROUND_CLOSE shift 62 COLON shift 65 State 41: (0) input ::= processes * $ reduce 0 State 42: processes ::= INCLUDE * STRING processes STRING shift 26 State 43: processes ::= INCLUDE_GUARD * STRING processes STRING shift 27 State 44: processes ::= process_or_template * NAME CURLY_OPEN statements CURLY_CLOSE processes NAME shift 45 State 45: processes ::= process_or_template NAME * CURLY_OPEN statements CURLY_CLOSE processes CURLY_OPEN shift 19 State 46: processes ::= process_or_template NAME CURLY_OPEN statements * CURLY_CLOSE processes CURLY_CLOSE shift 28 State 47: statement ::= dotted_name ROUND_OPEN statement_args_maybe * ROUND_CLOSE name_maybe SEMICOLON ROUND_CLOSE shift 30 State 48: statement ::= dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe * SEMICOLON SEMICOLON shift 79 State 49: (18) dotted_name ::= NAME * dotted_name ::= NAME * DOT dotted_name DOT shift 31 {default} reduce 18 State 50: list ::= CURLY_OPEN list_contents * CURLY_CLOSE CURLY_CLOSE shift 85 State 51: map ::= BRACKET_OPEN map_contents * BRACKET_CLOSE BRACKET_CLOSE shift 96 State 52: statement ::= dotted_name ARROW dotted_name * ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON ROUND_OPEN shift 2 State 53: statement ::= dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe * ROUND_CLOSE name_maybe SEMICOLON ROUND_CLOSE shift 33 State 54: statement ::= dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe * SEMICOLON SEMICOLON shift 97 State 55: statement ::= IF * ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON ROUND_OPEN shift 9 State 56: statement ::= IF ROUND_OPEN value ROUND_CLOSE * CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON CURLY_OPEN shift 20 State 57: statement ::= IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements * CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON CURLY_CLOSE shift 29 State 58: statement ::= IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe * SEMICOLON SEMICOLON shift 98 State 59: else_maybe ::= ELSE * CURLY_OPEN statements CURLY_CLOSE CURLY_OPEN shift 21 State 60: statement ::= FOREACH * ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statement ::= FOREACH * ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON ROUND_OPEN shift 10 State 61: statement ::= FOREACH ROUND_OPEN value AS * NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON statement ::= FOREACH ROUND_OPEN value AS * NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON NAME shift 40 State 62: statement ::= FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE * CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON CURLY_OPEN shift 22 State 63: statement ::= FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements * CURLY_CLOSE name_maybe SEMICOLON CURLY_CLOSE shift 36 State 64: statement ::= FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe * SEMICOLON SEMICOLON shift 99 State 65: statement ::= FOREACH ROUND_OPEN value AS NAME COLON * NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON NAME shift 66 State 66: statement ::= FOREACH ROUND_OPEN value AS NAME COLON NAME * ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON ROUND_CLOSE shift 67 State 67: statement ::= FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE * CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON CURLY_OPEN shift 24 State 68: statement ::= FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements * CURLY_CLOSE name_maybe SEMICOLON CURLY_CLOSE shift 37 State 69: statement ::= FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe * SEMICOLON SEMICOLON shift 101 State 70: else_maybe ::= ELSE CURLY_OPEN statements * CURLY_CLOSE CURLY_CLOSE shift 102 State 71: elif ::= ELIF * ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif ::= ELIF * ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif ROUND_OPEN shift 11 State 72: elif ::= ELIF ROUND_OPEN value ROUND_CLOSE * CURLY_OPEN statements CURLY_CLOSE elif ::= ELIF ROUND_OPEN value ROUND_CLOSE * CURLY_OPEN statements CURLY_CLOSE elif CURLY_OPEN shift 25 State 73: elif ::= ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements * CURLY_CLOSE elif ::= ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements * CURLY_CLOSE elif CURLY_CLOSE shift 38 State 74: (2) processes ::= INCLUDE STRING processes * {default} reduce 2 State 75: (3) processes ::= INCLUDE_GUARD STRING processes * {default} reduce 3 State 76: (4) processes ::= process_or_template NAME CURLY_OPEN statements CURLY_CLOSE processes * {default} reduce 4 State 77: (40) process_or_template ::= PROCESS * {default} reduce 40 State 78: (41) process_or_template ::= TEMPLATE * {default} reduce 41 State 79: (5) statement ::= dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON * {default} reduce 5 State 80: (39) name_maybe ::= NAME * {default} reduce 39 State 81: (19) dotted_name ::= NAME DOT dotted_name * {default} reduce 19 State 82: (21) statement_args_maybe ::= list_contents * {default} reduce 21 State 83: (23) list_contents ::= value COMMA list_contents * {default} reduce 23 State 84: (24) list ::= CURLY_OPEN CURLY_CLOSE * {default} reduce 24 State 85: (25) list ::= CURLY_OPEN list_contents CURLY_CLOSE * {default} reduce 25 State 86: (27) map_contents ::= value COLON value COMMA map_contents * {default} reduce 27 State 87: (31) noninvoc_value ::= STRING * {default} reduce 31 State 88: (32) noninvoc_value ::= dotted_name * {default} reduce 32 State 89: (33) noninvoc_value ::= list * {default} reduce 33 State 90: (34) noninvoc_value ::= map * {default} reduce 34 State 91: (30) invoc ::= value noninvoc_value * {default} reduce 30 State 92: (35) noninvoc_value ::= ROUND_OPEN value ROUND_CLOSE * {default} reduce 35 State 93: (36) value ::= invoc * {default} reduce 36 State 94: (37) value ::= noninvoc_value * {default} reduce 37 State 95: (28) map ::= BRACKET_OPEN BRACKET_CLOSE * {default} reduce 28 State 96: (29) map ::= BRACKET_OPEN map_contents BRACKET_CLOSE * {default} reduce 29 State 97: (6) statement ::= dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON * {default} reduce 6 State 98: (7) statement ::= IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON * {default} reduce 7 State 99: (8) statement ::= FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON * {default} reduce 8 State 100: (17) statements ::= statement statements * {default} reduce 17 State 101: (9) statement ::= FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON * {default} reduce 9 State 102: (15) else_maybe ::= ELSE CURLY_OPEN statements CURLY_CLOSE * {default} reduce 15 State 103: (11) elif_maybe ::= elif * {default} reduce 11 State 104: (13) elif ::= ELIF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif * {default} reduce 13 ---------------------------------------------------- Symbols: 0: $: 1: INCLUDE 2: STRING 3: INCLUDE_GUARD 4: NAME 5: CURLY_OPEN 6: CURLY_CLOSE 7: ROUND_OPEN 8: ROUND_CLOSE 9: SEMICOLON 10: ARROW 11: IF 12: FOREACH 13: AS 14: COLON 15: ELIF 16: ELSE 17: DOT 18: COMMA 19: BRACKET_OPEN 20: BRACKET_CLOSE 21: PROCESS 22: TEMPLATE 23: error: 24: processes: INCLUDE INCLUDE_GUARD PROCESS TEMPLATE 25: statement: NAME IF FOREACH 26: elif_maybe: ELIF 27: elif: ELIF 28: else_maybe: ELSE 29: statements: NAME IF FOREACH 30: dotted_name: NAME 31: statement_args_maybe: STRING NAME CURLY_OPEN ROUND_OPEN BRACKET_OPEN 32: list_contents: STRING NAME CURLY_OPEN ROUND_OPEN BRACKET_OPEN 33: list: CURLY_OPEN 34: map_contents: STRING NAME CURLY_OPEN ROUND_OPEN BRACKET_OPEN 35: map: BRACKET_OPEN 36: invoc: STRING NAME CURLY_OPEN ROUND_OPEN BRACKET_OPEN 37: noninvoc_value: STRING NAME CURLY_OPEN ROUND_OPEN BRACKET_OPEN 38: value: STRING NAME CURLY_OPEN ROUND_OPEN BRACKET_OPEN 39: name_maybe: NAME 40: process_or_template: PROCESS TEMPLATE 41: input: INCLUDE INCLUDE_GUARD PROCESS TEMPLATE