diff options
author | Ambroz Bizjak <ambrop7@gmail.com> | 2015-01-23 00:35:51 +0300 |
---|---|---|
committer | Ambroz Bizjak <ambrop7@gmail.com> | 2015-01-23 00:35:51 +0300 |
commit | 2d242ebc89dbb9aed22b331ef5afb501ed2e4676 (patch) | |
tree | f75cf0ee0335ffa7abe1befe60990ad62c05637e | |
parent | 13a596f3f5c759c818c4f52716327655474f089a (diff) |
ncd: Permit functions with have zero arguments.
-rw-r--r-- | generated/NCDConfigParser_parse.c | 136 | ||||
-rw-r--r-- | generated/NCDConfigParser_parse.out | 250 | ||||
-rw-r--r-- | generated/NCDConfigParser_parse.y | 14 | ||||
-rw-r--r-- | ncd/NCDConfigParser_parse.y | 14 |
4 files changed, 209 insertions, 205 deletions
diff --git a/generated/NCDConfigParser_parse.c b/generated/NCDConfigParser_parse.c index 4babaf8..f46757d 100644 --- a/generated/NCDConfigParser_parse.c +++ b/generated/NCDConfigParser_parse.c @@ -201,29 +201,29 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { - /* 0 */ 107, 51, 59, 3, 104, 9, 107, 7, 59, 3, - /* 10 */ 94, 9, 107, 58, 59, 3, 54, 9, 95, 180, - /* 20 */ 4, 5, 29, 30, 100, 54, 4, 117, 29, 30, - /* 30 */ 34, 128, 4, 54, 29, 30, 111, 57, 102, 112, - /* 40 */ 59, 113, 115, 43, 111, 65, 102, 112, 96, 113, - /* 50 */ 115, 43, 91, 111, 1, 60, 112, 32, 113, 115, - /* 60 */ 43, 101, 111, 54, 7, 112, 63, 113, 115, 44, - /* 70 */ 111, 8, 103, 112, 108, 113, 115, 43, 111, 7, - /* 80 */ 116, 112, 106, 113, 115, 44, 111, 110, 62, 112, - /* 90 */ 7, 113, 115, 43, 111, 61, 64, 112, 109, 113, - /* 100 */ 115, 45, 111, 66, 6, 112, 74, 113, 115, 46, - /* 110 */ 71, 111, 85, 52, 112, 53, 113, 115, 47, 111, - /* 120 */ 7, 92, 112, 35, 113, 115, 48, 111, 70, 59, - /* 130 */ 112, 76, 113, 115, 50, 7, 67, 72, 97, 98, - /* 140 */ 79, 73, 77, 23, 80, 20, 39, 20, 82, 56, - /* 150 */ 42, 69, 42, 20, 84, 130, 20, 90, 42, 89, - /* 160 */ 75, 42, 24, 20, 129, 20, 55, 78, 42, 81, - /* 170 */ 42, 7, 68, 20, 13, 20, 25, 83, 42, 124, - /* 180 */ 42, 20, 27, 20, 99, 88, 42, 93, 42, 105, - /* 190 */ 114, 28, 31, 2, 119, 33, 118, 10, 14, 49, - /* 200 */ 26, 120, 15, 11, 16, 86, 36, 121, 17, 181, - /* 210 */ 37, 122, 18, 87, 38, 123, 19, 181, 21, 181, - /* 220 */ 40, 125, 127, 41, 126, 181, 12, 22, + /* 0 */ 107, 51, 59, 4, 104, 9, 107, 2, 59, 4, + /* 10 */ 94, 9, 107, 58, 59, 4, 54, 9, 95, 180, + /* 20 */ 5, 6, 29, 30, 100, 54, 5, 117, 29, 30, + /* 30 */ 34, 128, 5, 54, 29, 30, 111, 57, 102, 112, + /* 40 */ 59, 113, 115, 43, 111, 62, 102, 112, 96, 113, + /* 50 */ 115, 43, 2, 111, 65, 102, 112, 91, 113, 115, + /* 60 */ 43, 101, 111, 54, 60, 112, 7, 113, 115, 43, + /* 70 */ 111, 61, 2, 112, 63, 113, 115, 44, 111, 8, + /* 80 */ 103, 112, 108, 113, 115, 43, 111, 2, 116, 112, + /* 90 */ 106, 113, 115, 44, 111, 2, 68, 112, 2, 113, + /* 100 */ 115, 45, 1, 111, 73, 32, 112, 110, 113, 115, + /* 110 */ 46, 111, 64, 52, 112, 53, 113, 115, 47, 111, + /* 120 */ 109, 66, 112, 71, 113, 115, 48, 111, 70, 59, + /* 130 */ 112, 35, 113, 115, 50, 39, 67, 72, 97, 98, + /* 140 */ 76, 20, 77, 79, 80, 56, 42, 20, 82, 20, + /* 150 */ 129, 69, 42, 90, 42, 130, 20, 84, 20, 89, + /* 160 */ 75, 42, 78, 42, 20, 23, 24, 20, 81, 42, + /* 170 */ 20, 83, 42, 20, 124, 42, 20, 88, 42, 74, + /* 180 */ 93, 42, 2, 92, 55, 85, 13, 27, 25, 28, + /* 190 */ 105, 118, 99, 31, 114, 3, 119, 33, 10, 14, + /* 200 */ 49, 26, 120, 15, 11, 16, 86, 36, 121, 17, + /* 210 */ 181, 37, 122, 18, 87, 38, 123, 19, 181, 21, + /* 220 */ 181, 40, 125, 127, 41, 126, 181, 12, 22, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 2, 29, 4, 5, 6, 7, 2, 7, 4, 5, @@ -231,50 +231,50 @@ static const YYCODETYPE yy_lookahead[] = { /* 20 */ 22, 21, 24, 25, 4, 44, 22, 23, 24, 25, /* 30 */ 31, 32, 22, 44, 24, 25, 35, 36, 37, 38, /* 40 */ 4, 40, 41, 42, 35, 36, 37, 38, 29, 40, - /* 50 */ 41, 42, 15, 35, 7, 37, 38, 10, 40, 41, - /* 60 */ 42, 35, 35, 44, 7, 38, 39, 40, 41, 42, - /* 70 */ 35, 14, 37, 38, 35, 40, 41, 42, 35, 7, - /* 80 */ 8, 38, 39, 40, 41, 42, 35, 45, 37, 38, - /* 90 */ 7, 40, 41, 42, 35, 4, 35, 38, 45, 40, - /* 100 */ 41, 42, 35, 43, 21, 38, 8, 40, 41, 42, - /* 110 */ 16, 35, 14, 1, 38, 3, 40, 41, 42, 35, - /* 120 */ 7, 8, 38, 33, 40, 41, 42, 35, 43, 4, - /* 130 */ 38, 43, 40, 41, 42, 7, 11, 12, 26, 27, - /* 140 */ 43, 13, 17, 2, 19, 30, 46, 30, 18, 34, - /* 150 */ 35, 34, 35, 30, 43, 0, 30, 34, 35, 43, - /* 160 */ 34, 35, 2, 30, 32, 30, 4, 34, 35, 34, - /* 170 */ 35, 7, 8, 30, 5, 30, 6, 34, 35, 34, - /* 180 */ 35, 30, 8, 30, 9, 34, 35, 34, 35, 6, - /* 190 */ 8, 20, 20, 7, 9, 8, 23, 7, 5, 4, - /* 200 */ 6, 9, 5, 7, 5, 4, 6, 9, 5, 48, - /* 210 */ 6, 9, 5, 8, 6, 6, 5, 48, 5, 48, - /* 220 */ 6, 9, 6, 6, 9, 48, 7, 5, + /* 50 */ 41, 42, 7, 35, 36, 37, 38, 15, 40, 41, + /* 60 */ 42, 35, 35, 44, 37, 38, 21, 40, 41, 42, + /* 70 */ 35, 4, 7, 38, 39, 40, 41, 42, 35, 14, + /* 80 */ 37, 38, 35, 40, 41, 42, 35, 7, 8, 38, + /* 90 */ 39, 40, 41, 42, 35, 7, 8, 38, 7, 40, + /* 100 */ 41, 42, 7, 35, 13, 10, 38, 45, 40, 41, + /* 110 */ 42, 35, 35, 1, 38, 3, 40, 41, 42, 35, + /* 120 */ 45, 43, 38, 16, 40, 41, 42, 35, 43, 4, + /* 130 */ 38, 33, 40, 41, 42, 46, 11, 12, 26, 27, + /* 140 */ 43, 30, 17, 43, 19, 34, 35, 30, 18, 30, + /* 150 */ 32, 34, 35, 34, 35, 0, 30, 43, 30, 43, + /* 160 */ 34, 35, 34, 35, 30, 2, 2, 30, 34, 35, + /* 170 */ 30, 34, 35, 30, 34, 35, 30, 34, 35, 8, + /* 180 */ 34, 35, 7, 8, 4, 14, 5, 8, 6, 20, + /* 190 */ 6, 23, 9, 20, 8, 7, 9, 8, 7, 5, + /* 200 */ 4, 6, 9, 5, 7, 5, 4, 6, 9, 5, + /* 210 */ 48, 6, 9, 5, 8, 6, 6, 5, 48, 5, + /* 220 */ 48, 6, 9, 6, 6, 9, 48, 7, 5, }; #define YY_SHIFT_USE_DFLT (-3) #define YY_SHIFT_MAX 93 static const short yy_shift_ofst[] = { - /* 0 */ 112, 10, 10, -2, 4, 10, 10, 10, 10, 10, + /* 0 */ 112, 10, 10, 10, -2, 4, 10, 10, 10, 10, /* 10 */ 10, 10, 10, 125, 125, 125, 125, 125, 125, 125, - /* 20 */ 125, 125, 125, 112, 112, 112, 37, 20, 36, 36, - /* 30 */ 91, 91, 36, 20, 94, 20, 20, 20, 130, 20, - /* 40 */ 20, 37, 47, 0, 57, 83, 72, 164, 128, 98, - /* 50 */ 113, 155, 141, 160, 162, 169, 170, 174, 175, 171, - /* 60 */ 183, 172, 182, 173, 186, 187, 185, 190, 193, 194, - /* 70 */ 192, 197, 196, 195, 199, 200, 198, 203, 204, 202, - /* 80 */ 207, 208, 211, 209, 212, 201, 205, 213, 214, 215, - /* 90 */ 216, 219, 222, 217, + /* 20 */ 125, 125, 125, 112, 112, 112, 42, 20, 36, 36, + /* 30 */ 67, 67, 36, 20, 107, 20, 20, 20, 130, 20, + /* 40 */ 20, 42, 95, 0, 65, 45, 80, 88, 91, 171, + /* 50 */ 175, 155, 163, 164, 180, 181, 182, 179, 183, 169, + /* 60 */ 184, 173, 186, 168, 188, 189, 187, 191, 194, 195, + /* 70 */ 193, 198, 197, 196, 200, 201, 199, 204, 205, 203, + /* 80 */ 208, 209, 212, 210, 213, 202, 206, 214, 215, 216, + /* 90 */ 217, 220, 223, 218, }; #define YY_REDUCE_USE_DFLT (-31) #define YY_REDUCE_MAX 41 static const short yy_reduce_ofst[] = { - /* 0 */ -28, 1, 9, 18, 27, 35, 43, 51, 59, 67, - /* 10 */ 76, 84, 92, 115, 117, 123, 126, 133, 135, 143, - /* 20 */ 145, 151, 153, -19, -11, 19, -1, -30, 26, 39, - /* 30 */ 42, 53, 61, 60, 90, 85, 88, 97, 100, 111, - /* 40 */ 116, 132, + /* 0 */ -28, 1, 9, 18, 27, 35, 43, 51, 59, 68, + /* 10 */ 76, 84, 92, 111, 117, 119, 126, 128, 134, 137, + /* 20 */ 140, 143, 146, -19, -11, 19, -1, -30, 26, 47, + /* 30 */ 62, 75, 77, 78, 98, 85, 97, 100, 89, 114, + /* 40 */ 116, 118, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 131, 156, 156, 179, 179, 179, 179, 179, 179, 179, + /* 0 */ 131, 156, 156, 156, 179, 179, 179, 179, 179, 179, /* 10 */ 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, /* 20 */ 150, 179, 179, 131, 131, 131, 140, 175, 179, 179, /* 30 */ 179, 179, 179, 175, 144, 175, 175, 175, 147, 175, @@ -389,7 +389,7 @@ static const char *const yyTokenName[] = { "AT_SIGN", "CARET", "PROCESS", "TEMPLATE", "error", "processes", "statement", "elif_maybe", "elif", "else_maybe", "statements", "dotted_name", - "statement_args_maybe", "list_contents", "list", "map_contents", + "list_contents_maybe", "list_contents", "list", "map_contents", "map", "invoc", "value", "name_maybe", "process_or_template", "name_list", "interrupt_maybe", "input", }; @@ -404,8 +404,8 @@ static const char *const yyRuleName[] = { /* 2 */ "processes ::= INCLUDE STRING processes", /* 3 */ "processes ::= INCLUDE_GUARD STRING processes", /* 4 */ "processes ::= process_or_template NAME CURLY_OPEN statements CURLY_CLOSE processes", - /* 5 */ "statement ::= dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON", - /* 6 */ "statement ::= dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON", + /* 5 */ "statement ::= dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON", + /* 6 */ "statement ::= dotted_name ARROW dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON", /* 7 */ "statement ::= IF ROUND_OPEN value ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON", /* 8 */ "statement ::= FOREACH ROUND_OPEN value AS NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON", /* 9 */ "statement ::= FOREACH ROUND_OPEN value AS NAME COLON NAME ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE name_maybe SEMICOLON", @@ -425,8 +425,8 @@ static const char *const yyRuleName[] = { /* 23 */ "dotted_name ::= NAME DOT dotted_name", /* 24 */ "name_list ::= NAME", /* 25 */ "name_list ::= NAME DOT name_list", - /* 26 */ "statement_args_maybe ::=", - /* 27 */ "statement_args_maybe ::= list_contents", + /* 26 */ "list_contents_maybe ::=", + /* 27 */ "list_contents_maybe ::= list_contents", /* 28 */ "list_contents ::= value", /* 29 */ "list_contents ::= value COMMA list_contents", /* 30 */ "list ::= CURLY_OPEN CURLY_CLOSE", @@ -435,7 +435,7 @@ static const char *const yyRuleName[] = { /* 33 */ "map_contents ::= value COLON value COMMA map_contents", /* 34 */ "map ::= BRACKET_OPEN BRACKET_CLOSE", /* 35 */ "map ::= BRACKET_OPEN map_contents BRACKET_CLOSE", - /* 36 */ "invoc ::= value ROUND_OPEN list_contents ROUND_CLOSE", + /* 36 */ "invoc ::= value ROUND_OPEN list_contents_maybe ROUND_CLOSE", /* 37 */ "value ::= STRING", /* 38 */ "value ::= AT_SIGN dotted_name", /* 39 */ "value ::= CARET name_list", @@ -599,7 +599,7 @@ static void yy_destructor( #line 600 "NCDConfigParser_parse.c" } break; - case 36: /* statement_args_maybe */ + case 36: /* list_contents_maybe */ case 37: /* list_contents */ case 38: /* list */ case 39: /* map_contents */ @@ -1079,7 +1079,7 @@ doneB: } #line 1081 "NCDConfigParser_parse.c" break; - case 5: /* statement ::= dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON */ + case 5: /* statement ::= dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON */ #line 254 "NCDConfigParser_parse.y" { if (!yymsp[-5].minor.yy49 || !yymsp[-3].minor.yy19.have) { @@ -1107,7 +1107,7 @@ doneC: } #line 1109 "NCDConfigParser_parse.c" break; - case 6: /* statement ::= dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON */ + case 6: /* statement ::= dotted_name ARROW dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON */ #line 276 "NCDConfigParser_parse.y" { if (!yymsp[-7].minor.yy49 || !yymsp[-5].minor.yy49 || !yymsp[-3].minor.yy19.have) { @@ -1610,7 +1610,7 @@ doneKA: } #line 1612 "NCDConfigParser_parse.c" break; - case 26: /* statement_args_maybe ::= */ + case 26: /* list_contents_maybe ::= */ #line 673 "NCDConfigParser_parse.y" { yygotominor.yy19.have = 1; @@ -1618,7 +1618,7 @@ doneKA: } #line 1620 "NCDConfigParser_parse.c" break; - case 27: /* statement_args_maybe ::= list_contents */ + case 27: /* list_contents_maybe ::= list_contents */ case 41: /* value ::= list */ yytestcase(yyruleno==41); case 42: /* value ::= map */ yytestcase(yyruleno==42); case 44: /* value ::= invoc */ yytestcase(yyruleno==44); @@ -1780,7 +1780,7 @@ doneT: } #line 1782 "NCDConfigParser_parse.c" break; - case 36: /* invoc ::= value ROUND_OPEN list_contents ROUND_CLOSE */ + case 36: /* invoc ::= value ROUND_OPEN list_contents_maybe ROUND_CLOSE */ #line 798 "NCDConfigParser_parse.y" { if (!yymsp[-3].minor.yy19.have || !yymsp[-1].minor.yy19.have) { diff --git a/generated/NCDConfigParser_parse.out b/generated/NCDConfigParser_parse.out index ab66248..4381763 100644 --- a/generated/NCDConfigParser_parse.out +++ b/generated/NCDConfigParser_parse.out @@ -17,18 +17,18 @@ State 0: {default} reduce 1 State 1: - statement ::= dotted_name ROUND_OPEN * statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON + statement ::= dotted_name ROUND_OPEN * list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name - (26) statement_args_maybe ::= * - statement_args_maybe ::= * list_contents + (26) list_contents_maybe ::= * + list_contents_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 ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= * value ROUND_OPEN list_contents_maybe ROUND_CLOSE value ::= * STRING value ::= * AT_SIGN dotted_name value ::= * CARET name_list @@ -40,13 +40,13 @@ State 1: STRING shift 107 NAME shift 59 - CURLY_OPEN shift 3 + CURLY_OPEN shift 4 ROUND_OPEN shift 9 - BRACKET_OPEN shift 4 + BRACKET_OPEN shift 5 AT_SIGN shift 29 CARET shift 30 dotted_name shift 111 - statement_args_maybe shift 57 + list_contents_maybe shift 57 list_contents shift 102 list shift 112 map shift 113 @@ -55,18 +55,18 @@ State 1: {default} reduce 26 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 - (26) statement_args_maybe ::= * - statement_args_maybe ::= * list_contents + (26) list_contents_maybe ::= * + list_contents_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 ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= * value ROUND_OPEN list_contents_maybe ROUND_CLOSE + invoc ::= value ROUND_OPEN * list_contents_maybe ROUND_CLOSE value ::= * STRING value ::= * AT_SIGN dotted_name value ::= * CARET name_list @@ -78,13 +78,13 @@ State 2: STRING shift 107 NAME shift 59 - CURLY_OPEN shift 3 + CURLY_OPEN shift 4 ROUND_OPEN shift 9 - BRACKET_OPEN shift 4 + BRACKET_OPEN shift 5 AT_SIGN shift 29 CARET shift 30 dotted_name shift 111 - statement_args_maybe shift 65 + list_contents_maybe shift 62 list_contents shift 102 list shift 112 map shift 113 @@ -93,17 +93,18 @@ State 2: {default} reduce 26 State 3: + statement ::= dotted_name ARROW dotted_name ROUND_OPEN * list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name + (26) list_contents_maybe ::= * + list_contents_maybe ::= * list_contents 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 ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= * value ROUND_OPEN list_contents_maybe ROUND_CLOSE value ::= * STRING value ::= * AT_SIGN dotted_name value ::= * CARET name_list @@ -115,31 +116,32 @@ State 3: STRING shift 107 NAME shift 59 - CURLY_OPEN shift 3 - CURLY_CLOSE shift 104 + CURLY_OPEN shift 4 ROUND_OPEN shift 9 - BRACKET_OPEN shift 4 + BRACKET_OPEN shift 5 AT_SIGN shift 29 CARET shift 30 dotted_name shift 111 - list_contents shift 60 + list_contents_maybe shift 65 + list_contents shift 102 list shift 112 map shift 113 invoc shift 115 value shift 43 + {default} reduce 26 State 4: 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 - map_contents ::= * value COLON value - map_contents ::= * value COLON value COMMA map_contents + list ::= CURLY_OPEN * list_contents CURLY_CLOSE 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 ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= * value ROUND_OPEN list_contents_maybe ROUND_CLOSE value ::= * STRING value ::= * AT_SIGN dotted_name value ::= * CARET name_list @@ -151,30 +153,31 @@ State 4: STRING shift 107 NAME shift 59 - CURLY_OPEN shift 3 + CURLY_OPEN shift 4 + CURLY_CLOSE shift 104 ROUND_OPEN shift 9 - BRACKET_OPEN shift 4 - BRACKET_CLOSE shift 117 + BRACKET_OPEN shift 5 AT_SIGN shift 29 CARET shift 30 dotted_name shift 111 + list_contents shift 60 list shift 112 - map_contents shift 63 map shift 113 invoc shift 115 - value shift 44 + value shift 43 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_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 - invoc ::= * value ROUND_OPEN list_contents ROUND_CLOSE + map ::= BRACKET_OPEN * map_contents BRACKET_CLOSE + invoc ::= * value ROUND_OPEN list_contents_maybe ROUND_CLOSE value ::= * STRING value ::= * AT_SIGN dotted_name value ::= * CARET name_list @@ -186,29 +189,30 @@ State 5: STRING shift 107 NAME shift 59 - CURLY_OPEN shift 3 + CURLY_OPEN shift 4 ROUND_OPEN shift 9 - BRACKET_OPEN shift 4 + BRACKET_OPEN shift 5 + BRACKET_CLOSE shift 117 AT_SIGN shift 29 CARET shift 30 dotted_name shift 111 - list_contents shift 103 list shift 112 + map_contents shift 63 map shift 113 invoc shift 115 - value shift 43 + value shift 44 State 6: 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_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 ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= * value ROUND_OPEN list_contents_maybe ROUND_CLOSE value ::= * STRING value ::= * AT_SIGN dotted_name value ::= * CARET name_list @@ -220,29 +224,29 @@ State 6: STRING shift 107 NAME shift 59 - CURLY_OPEN shift 3 + CURLY_OPEN shift 4 ROUND_OPEN shift 9 - BRACKET_OPEN shift 4 + BRACKET_OPEN shift 5 AT_SIGN shift 29 CARET shift 30 dotted_name shift 111 + list_contents shift 103 list shift 112 - map_contents shift 106 map shift 113 invoc shift 115 - value shift 44 + value shift 43 State 7: 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 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 ROUND_OPEN list_contents ROUND_CLOSE - invoc ::= value ROUND_OPEN * list_contents ROUND_CLOSE + invoc ::= * value ROUND_OPEN list_contents_maybe ROUND_CLOSE value ::= * STRING value ::= * AT_SIGN dotted_name value ::= * CARET name_list @@ -254,17 +258,17 @@ State 7: STRING shift 107 NAME shift 59 - CURLY_OPEN shift 3 + CURLY_OPEN shift 4 ROUND_OPEN shift 9 - BRACKET_OPEN shift 4 + BRACKET_OPEN shift 5 AT_SIGN shift 29 CARET shift 30 dotted_name shift 111 - list_contents shift 62 list shift 112 + map_contents shift 106 map shift 113 invoc shift 115 - value shift 43 + value shift 44 State 8: dotted_name ::= * NAME @@ -275,7 +279,7 @@ State 8: map_contents ::= value COLON * value COMMA map_contents map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE - invoc ::= * value ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= * value ROUND_OPEN list_contents_maybe ROUND_CLOSE value ::= * STRING value ::= * AT_SIGN dotted_name value ::= * CARET name_list @@ -287,9 +291,9 @@ State 8: STRING shift 107 NAME shift 59 - CURLY_OPEN shift 3 + CURLY_OPEN shift 4 ROUND_OPEN shift 9 - BRACKET_OPEN shift 4 + BRACKET_OPEN shift 5 AT_SIGN shift 29 CARET shift 30 dotted_name shift 111 @@ -305,7 +309,7 @@ State 9: list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE - invoc ::= * value ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= * value ROUND_OPEN list_contents_maybe ROUND_CLOSE value ::= * STRING value ::= * AT_SIGN dotted_name value ::= * CARET name_list @@ -318,9 +322,9 @@ State 9: STRING shift 107 NAME shift 59 - CURLY_OPEN shift 3 + CURLY_OPEN shift 4 ROUND_OPEN shift 9 - BRACKET_OPEN shift 4 + BRACKET_OPEN shift 5 AT_SIGN shift 29 CARET shift 30 dotted_name shift 111 @@ -337,7 +341,7 @@ State 10: list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE - invoc ::= * value ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= * value ROUND_OPEN list_contents_maybe ROUND_CLOSE value ::= * STRING value ::= * AT_SIGN dotted_name value ::= * CARET name_list @@ -349,9 +353,9 @@ State 10: STRING shift 107 NAME shift 59 - CURLY_OPEN shift 3 + CURLY_OPEN shift 4 ROUND_OPEN shift 9 - BRACKET_OPEN shift 4 + BRACKET_OPEN shift 5 AT_SIGN shift 29 CARET shift 30 dotted_name shift 111 @@ -369,7 +373,7 @@ State 11: list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE - invoc ::= * value ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= * value ROUND_OPEN list_contents_maybe ROUND_CLOSE value ::= * STRING value ::= * AT_SIGN dotted_name value ::= * CARET name_list @@ -381,9 +385,9 @@ State 11: STRING shift 107 NAME shift 59 - CURLY_OPEN shift 3 + CURLY_OPEN shift 4 ROUND_OPEN shift 9 - BRACKET_OPEN shift 4 + BRACKET_OPEN shift 5 AT_SIGN shift 29 CARET shift 30 dotted_name shift 111 @@ -401,7 +405,7 @@ State 12: list ::= * CURLY_OPEN list_contents CURLY_CLOSE map ::= * BRACKET_OPEN BRACKET_CLOSE map ::= * BRACKET_OPEN map_contents BRACKET_CLOSE - invoc ::= * value ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= * value ROUND_OPEN list_contents_maybe ROUND_CLOSE value ::= * STRING value ::= * AT_SIGN dotted_name value ::= * CARET name_list @@ -413,9 +417,9 @@ State 12: STRING shift 107 NAME shift 59 - CURLY_OPEN shift 3 + CURLY_OPEN shift 4 ROUND_OPEN shift 9 - BRACKET_OPEN shift 4 + BRACKET_OPEN shift 5 AT_SIGN shift 29 CARET shift 30 dotted_name shift 111 @@ -426,8 +430,8 @@ State 12: State 13: 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 ::= * dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON + statement ::= * dotted_name ARROW dotted_name ROUND_OPEN list_contents_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 @@ -448,8 +452,8 @@ State 13: dotted_name shift 42 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 ::= * dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON + statement ::= * dotted_name ARROW dotted_name ROUND_OPEN list_contents_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 @@ -471,8 +475,8 @@ State 14: dotted_name shift 42 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 ::= * dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON + statement ::= * dotted_name ARROW dotted_name ROUND_OPEN list_contents_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 @@ -494,8 +498,8 @@ State 15: dotted_name shift 42 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 ::= * dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON + statement ::= * dotted_name ARROW dotted_name ROUND_OPEN list_contents_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 @@ -517,8 +521,8 @@ State 16: dotted_name shift 42 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 ::= * dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON + statement ::= * dotted_name ARROW dotted_name ROUND_OPEN list_contents_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 @@ -540,8 +544,8 @@ State 17: dotted_name shift 42 State 18: - 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 ::= * dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON + statement ::= * dotted_name ARROW dotted_name ROUND_OPEN list_contents_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 @@ -563,8 +567,8 @@ State 18: dotted_name shift 42 State 19: - 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 ::= * dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON + statement ::= * dotted_name ARROW dotted_name ROUND_OPEN list_contents_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 @@ -586,8 +590,8 @@ State 19: dotted_name shift 42 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 ::= * dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON + statement ::= * dotted_name ARROW dotted_name ROUND_OPEN list_contents_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 @@ -611,8 +615,8 @@ State 20: {default} reduce 20 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 ::= * dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON + statement ::= * dotted_name ARROW dotted_name ROUND_OPEN list_contents_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 @@ -634,8 +638,8 @@ State 21: dotted_name shift 42 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 ::= * dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON + statement ::= * dotted_name ARROW dotted_name ROUND_OPEN list_contents_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 @@ -721,7 +725,7 @@ State 26: {default} reduce 10 State 27: - statement ::= dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE * name_maybe SEMICOLON + statement ::= dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE * name_maybe SEMICOLON (45) name_maybe ::= * name_maybe ::= * NAME @@ -762,7 +766,7 @@ State 31: name_list shift 109 State 32: - statement ::= dotted_name ARROW * dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON + statement ::= dotted_name ARROW * dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON dotted_name ::= * NAME dotted_name ::= * NAME DOT dotted_name @@ -770,7 +774,7 @@ State 32: dotted_name shift 64 State 33: - statement ::= dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE * name_maybe SEMICOLON + statement ::= dotted_name ARROW dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE * name_maybe SEMICOLON (45) name_maybe ::= * name_maybe ::= * NAME @@ -852,8 +856,8 @@ State 41: {default} reduce 12 State 42: - 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 ::= dotted_name * ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON + statement ::= dotted_name * ARROW dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON ROUND_OPEN shift 1 ARROW shift 32 @@ -861,49 +865,49 @@ State 42: State 43: (28) list_contents ::= value * list_contents ::= value * COMMA list_contents - invoc ::= value * ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= value * ROUND_OPEN list_contents_maybe ROUND_CLOSE - ROUND_OPEN shift 7 - COMMA shift 5 + ROUND_OPEN shift 2 + COMMA shift 6 {default} reduce 28 State 44: map_contents ::= value * COLON value map_contents ::= value * COLON value COMMA map_contents - invoc ::= value * ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= value * ROUND_OPEN list_contents_maybe ROUND_CLOSE - ROUND_OPEN shift 7 + ROUND_OPEN shift 2 COLON shift 8 State 45: (32) map_contents ::= value COLON value * map_contents ::= value COLON value * COMMA map_contents - invoc ::= value * ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= value * ROUND_OPEN list_contents_maybe ROUND_CLOSE - ROUND_OPEN shift 7 - COMMA shift 6 + ROUND_OPEN shift 2 + COMMA shift 7 {default} reduce 32 State 46: - invoc ::= value * ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= value * ROUND_OPEN list_contents_maybe ROUND_CLOSE value ::= ROUND_OPEN value * ROUND_CLOSE - ROUND_OPEN shift 7 + ROUND_OPEN shift 2 ROUND_CLOSE shift 116 State 47: statement ::= IF ROUND_OPEN value * ROUND_CLOSE CURLY_OPEN statements CURLY_CLOSE elif_maybe else_maybe name_maybe SEMICOLON - invoc ::= value * ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= value * ROUND_OPEN list_contents_maybe ROUND_CLOSE - ROUND_OPEN shift 7 + ROUND_OPEN shift 2 ROUND_CLOSE shift 68 State 48: 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 - invoc ::= value * ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= value * ROUND_OPEN list_contents_maybe ROUND_CLOSE - ROUND_OPEN shift 7 + ROUND_OPEN shift 2 AS shift 73 State 49: @@ -916,9 +920,9 @@ State 49: State 50: 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 - invoc ::= value * ROUND_OPEN list_contents ROUND_CLOSE + invoc ::= value * ROUND_OPEN list_contents_maybe ROUND_CLOSE - ROUND_OPEN shift 7 + ROUND_OPEN shift 2 ROUND_CLOSE shift 92 State 51: @@ -952,12 +956,12 @@ State 56: CURLY_CLOSE shift 25 State 57: - statement ::= dotted_name ROUND_OPEN statement_args_maybe * ROUND_CLOSE name_maybe SEMICOLON + statement ::= dotted_name ROUND_OPEN list_contents_maybe * ROUND_CLOSE name_maybe SEMICOLON ROUND_CLOSE shift 27 State 58: - statement ::= dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe * SEMICOLON + statement ::= dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe * SEMICOLON SEMICOLON shift 99 @@ -981,7 +985,7 @@ State 61: {default} reduce 24 State 62: - invoc ::= value ROUND_OPEN list_contents * ROUND_CLOSE + invoc ::= value ROUND_OPEN list_contents_maybe * ROUND_CLOSE ROUND_CLOSE shift 114 @@ -991,17 +995,17 @@ State 63: BRACKET_CLOSE shift 118 State 64: - statement ::= dotted_name ARROW dotted_name * ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON + statement ::= dotted_name ARROW dotted_name * ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON - ROUND_OPEN shift 2 + ROUND_OPEN shift 3 State 65: - statement ::= dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe * ROUND_CLOSE name_maybe SEMICOLON + statement ::= dotted_name ARROW dotted_name ROUND_OPEN list_contents_maybe * ROUND_CLOSE name_maybe SEMICOLON ROUND_CLOSE shift 33 State 66: - statement ::= dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe * SEMICOLON + statement ::= dotted_name ARROW dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe * SEMICOLON SEMICOLON shift 119 @@ -1171,7 +1175,7 @@ State 98: {default} reduce 48 State 99: - (5) statement ::= dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON * + (5) statement ::= dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON * {default} reduce 5 @@ -1186,7 +1190,7 @@ State 101: {default} reduce 23 State 102: - (27) statement_args_maybe ::= list_contents * + (27) list_contents_maybe ::= list_contents * {default} reduce 27 @@ -1246,7 +1250,7 @@ State 113: {default} reduce 42 State 114: - (36) invoc ::= value ROUND_OPEN list_contents ROUND_CLOSE * + (36) invoc ::= value ROUND_OPEN list_contents_maybe ROUND_CLOSE * {default} reduce 36 @@ -1271,7 +1275,7 @@ State 118: {default} reduce 35 State 119: - (6) statement ::= dotted_name ARROW dotted_name ROUND_OPEN statement_args_maybe ROUND_CLOSE name_maybe SEMICOLON * + (6) statement ::= dotted_name ARROW dotted_name ROUND_OPEN list_contents_maybe ROUND_CLOSE name_maybe SEMICOLON * {default} reduce 6 @@ -1363,7 +1367,7 @@ Symbols: 33: else_maybe: <lambda> ELSE 34: statements: NAME IF FOREACH BLOCK TOKEN_DO 35: dotted_name: NAME - 36: statement_args_maybe: <lambda> STRING NAME CURLY_OPEN ROUND_OPEN BRACKET_OPEN AT_SIGN CARET + 36: list_contents_maybe: <lambda> STRING NAME CURLY_OPEN ROUND_OPEN BRACKET_OPEN AT_SIGN CARET 37: list_contents: STRING NAME CURLY_OPEN ROUND_OPEN BRACKET_OPEN AT_SIGN CARET 38: list: CURLY_OPEN 39: map_contents: STRING NAME CURLY_OPEN ROUND_OPEN BRACKET_OPEN AT_SIGN CARET diff --git a/generated/NCDConfigParser_parse.y b/generated/NCDConfigParser_parse.y index bacdd87..17e86fd 100644 --- a/generated/NCDConfigParser_parse.y +++ b/generated/NCDConfigParser_parse.y @@ -95,7 +95,7 @@ static void free_value (struct value o) { if (o.have) NCDValue_Free(&o.v); } %type else_maybe { struct block } %type statements { struct block } %type dotted_name { char * } -%type statement_args_maybe { struct value } +%type list_contents_maybe { struct value } %type list_contents { struct value } %type list { struct value } %type map_contents { struct value } @@ -115,7 +115,7 @@ static void free_value (struct value o) { if (o.have) NCDValue_Free(&o.v); } %destructor else_maybe { free_block($$); } %destructor statements { free_block($$); } %destructor dotted_name { free($$); } -%destructor statement_args_maybe { free_value($$); } +%destructor list_contents_maybe { free_value($$); } %destructor list_contents { free_value($$); } %destructor list { free_value($$); } %destructor map_contents { free_value($$); } @@ -251,7 +251,7 @@ doneB: free_program(N); } -statement(R) ::= dotted_name(A) ROUND_OPEN statement_args_maybe(B) ROUND_CLOSE name_maybe(C) SEMICOLON. { +statement(R) ::= dotted_name(A) ROUND_OPEN list_contents_maybe(B) ROUND_CLOSE name_maybe(C) SEMICOLON. { if (!A || !B.have) { goto failC0; } @@ -273,7 +273,7 @@ doneC: free(C); } -statement(R) ::= dotted_name(M) ARROW dotted_name(A) ROUND_OPEN statement_args_maybe(B) ROUND_CLOSE name_maybe(C) SEMICOLON. { +statement(R) ::= dotted_name(M) ARROW dotted_name(A) ROUND_OPEN list_contents_maybe(B) ROUND_CLOSE name_maybe(C) SEMICOLON. { if (!M || !A || !B.have) { goto failD0; } @@ -670,12 +670,12 @@ doneKA: free_value(N); } -statement_args_maybe(R) ::= . { +list_contents_maybe(R) ::= . { R.have = 1; NCDValue_InitList(&R.v); } -statement_args_maybe(R) ::= list_contents(A). { +list_contents_maybe(R) ::= list_contents(A). { R = A; } @@ -795,7 +795,7 @@ map(R) ::= BRACKET_OPEN map_contents(A) BRACKET_CLOSE. { R = A; } -invoc(R) ::= value(F) ROUND_OPEN list_contents(A) ROUND_CLOSE. { +invoc(R) ::= value(F) ROUND_OPEN list_contents_maybe(A) ROUND_CLOSE. { if (!F.have || !A.have) { goto failQ0; } diff --git a/ncd/NCDConfigParser_parse.y b/ncd/NCDConfigParser_parse.y index bacdd87..17e86fd 100644 --- a/ncd/NCDConfigParser_parse.y +++ b/ncd/NCDConfigParser_parse.y @@ -95,7 +95,7 @@ static void free_value (struct value o) { if (o.have) NCDValue_Free(&o.v); } %type else_maybe { struct block } %type statements { struct block } %type dotted_name { char * } -%type statement_args_maybe { struct value } +%type list_contents_maybe { struct value } %type list_contents { struct value } %type list { struct value } %type map_contents { struct value } @@ -115,7 +115,7 @@ static void free_value (struct value o) { if (o.have) NCDValue_Free(&o.v); } %destructor else_maybe { free_block($$); } %destructor statements { free_block($$); } %destructor dotted_name { free($$); } -%destructor statement_args_maybe { free_value($$); } +%destructor list_contents_maybe { free_value($$); } %destructor list_contents { free_value($$); } %destructor list { free_value($$); } %destructor map_contents { free_value($$); } @@ -251,7 +251,7 @@ doneB: free_program(N); } -statement(R) ::= dotted_name(A) ROUND_OPEN statement_args_maybe(B) ROUND_CLOSE name_maybe(C) SEMICOLON. { +statement(R) ::= dotted_name(A) ROUND_OPEN list_contents_maybe(B) ROUND_CLOSE name_maybe(C) SEMICOLON. { if (!A || !B.have) { goto failC0; } @@ -273,7 +273,7 @@ doneC: free(C); } -statement(R) ::= dotted_name(M) ARROW dotted_name(A) ROUND_OPEN statement_args_maybe(B) ROUND_CLOSE name_maybe(C) SEMICOLON. { +statement(R) ::= dotted_name(M) ARROW dotted_name(A) ROUND_OPEN list_contents_maybe(B) ROUND_CLOSE name_maybe(C) SEMICOLON. { if (!M || !A || !B.have) { goto failD0; } @@ -670,12 +670,12 @@ doneKA: free_value(N); } -statement_args_maybe(R) ::= . { +list_contents_maybe(R) ::= . { R.have = 1; NCDValue_InitList(&R.v); } -statement_args_maybe(R) ::= list_contents(A). { +list_contents_maybe(R) ::= list_contents(A). { R = A; } @@ -795,7 +795,7 @@ map(R) ::= BRACKET_OPEN map_contents(A) BRACKET_CLOSE. { R = A; } -invoc(R) ::= value(F) ROUND_OPEN list_contents(A) ROUND_CLOSE. { +invoc(R) ::= value(F) ROUND_OPEN list_contents_maybe(A) ROUND_CLOSE. { if (!F.have || !A.have) { goto failQ0; } |