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