diff options
| -rw-r--r-- | scripts/kconfig/lex.zconf.c_shipped | 5 | ||||
| -rw-r--r-- | scripts/kconfig/lkc.h | 1 | ||||
| -rw-r--r-- | scripts/kconfig/zconf.gperf | 20 | ||||
| -rw-r--r-- | scripts/kconfig/zconf.hash.c_shipped | 20 | ||||
| -rw-r--r-- | scripts/kconfig/zconf.l | 5 | ||||
| -rw-r--r-- | scripts/kconfig/zconf.tab.c_shipped | 608 | ||||
| -rw-r--r-- | scripts/kconfig/zconf.y | 130 |
7 files changed, 342 insertions, 447 deletions
diff --git a/scripts/kconfig/lex.zconf.c_shipped b/scripts/kconfig/lex.zconf.c_shipped index 0168141417f6..bedba89a87c6 100644 --- a/scripts/kconfig/lex.zconf.c_shipped +++ b/scripts/kconfig/lex.zconf.c_shipped | |||
| @@ -1025,6 +1025,7 @@ YY_RULE_SETUP | |||
| 1025 | struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng); | 1025 | struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng); |
| 1026 | if (id && id->flags & TF_COMMAND) { | 1026 | if (id && id->flags & TF_COMMAND) { |
| 1027 | BEGIN(PARAM); | 1027 | BEGIN(PARAM); |
| 1028 | zconflval.id = id; | ||
| 1028 | return id->token; | 1029 | return id->token; |
| 1029 | } | 1030 | } |
| 1030 | alloc_string(zconftext, zconfleng); | 1031 | alloc_string(zconftext, zconfleng); |
| @@ -1091,8 +1092,10 @@ case 19: | |||
| 1091 | YY_RULE_SETUP | 1092 | YY_RULE_SETUP |
| 1092 | { | 1093 | { |
| 1093 | struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng); | 1094 | struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng); |
| 1094 | if (id && id->flags & TF_PARAM) | 1095 | if (id && id->flags & TF_PARAM) { |
| 1096 | zconflval.id = id; | ||
| 1095 | return id->token; | 1097 | return id->token; |
| 1098 | } | ||
| 1096 | alloc_string(zconftext, zconfleng); | 1099 | alloc_string(zconftext, zconfleng); |
| 1097 | zconflval.string = text; | 1100 | zconflval.string = text; |
| 1098 | return T_WORD; | 1101 | return T_WORD; |
diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h index 6881fb084324..91491d0a3029 100644 --- a/scripts/kconfig/lkc.h +++ b/scripts/kconfig/lkc.h | |||
| @@ -45,6 +45,7 @@ struct kconf_id { | |||
| 45 | int name; | 45 | int name; |
| 46 | int token; | 46 | int token; |
| 47 | unsigned int flags; | 47 | unsigned int flags; |
| 48 | enum symbol_type stype; | ||
| 48 | }; | 49 | }; |
| 49 | 50 | ||
| 50 | int zconfparse(void); | 51 | int zconfparse(void); |
diff --git a/scripts/kconfig/zconf.gperf b/scripts/kconfig/zconf.gperf index c9d81cf5d7fb..b03220600b3a 100644 --- a/scripts/kconfig/zconf.gperf +++ b/scripts/kconfig/zconf.gperf | |||
| @@ -25,17 +25,17 @@ endif, T_ENDIF, TF_COMMAND | |||
| 25 | depends, T_DEPENDS, TF_COMMAND | 25 | depends, T_DEPENDS, TF_COMMAND |
| 26 | requires, T_REQUIRES, TF_COMMAND | 26 | requires, T_REQUIRES, TF_COMMAND |
| 27 | optional, T_OPTIONAL, TF_COMMAND | 27 | optional, T_OPTIONAL, TF_COMMAND |
| 28 | default, T_DEFAULT, TF_COMMAND | 28 | default, T_DEFAULT, TF_COMMAND, S_UNKNOWN |
| 29 | prompt, T_PROMPT, TF_COMMAND | 29 | prompt, T_PROMPT, TF_COMMAND |
| 30 | tristate, T_TRISTATE, TF_COMMAND | 30 | tristate, T_TYPE, TF_COMMAND, S_TRISTATE |
| 31 | def_tristate, T_DEF_TRISTATE, TF_COMMAND | 31 | def_tristate, T_DEFAULT, TF_COMMAND, S_TRISTATE |
| 32 | bool, T_BOOLEAN, TF_COMMAND | 32 | bool, T_TYPE, TF_COMMAND, S_BOOLEAN |
| 33 | boolean, T_BOOLEAN, TF_COMMAND | 33 | boolean, T_TYPE, TF_COMMAND, S_BOOLEAN |
| 34 | def_bool, T_DEF_BOOLEAN, TF_COMMAND | 34 | def_bool, T_DEFAULT, TF_COMMAND, S_BOOLEAN |
| 35 | def_boolean, T_DEF_BOOLEAN, TF_COMMAND | 35 | def_boolean, T_DEFAULT, TF_COMMAND, S_BOOLEAN |
| 36 | int, T_INT, TF_COMMAND | 36 | int, T_TYPE, TF_COMMAND, S_INT |
| 37 | hex, T_HEX, TF_COMMAND | 37 | hex, T_TYPE, TF_COMMAND, S_HEX |
| 38 | string, T_STRING, TF_COMMAND | 38 | string, T_TYPE, TF_COMMAND, S_STRING |
| 39 | select, T_SELECT, TF_COMMAND | 39 | select, T_SELECT, TF_COMMAND |
| 40 | enable, T_SELECT, TF_COMMAND | 40 | enable, T_SELECT, TF_COMMAND |
| 41 | range, T_RANGE, TF_COMMAND | 41 | range, T_RANGE, TF_COMMAND |
diff --git a/scripts/kconfig/zconf.hash.c_shipped b/scripts/kconfig/zconf.hash.c_shipped index 6741cb159801..345f0fc07ca3 100644 --- a/scripts/kconfig/zconf.hash.c_shipped +++ b/scripts/kconfig/zconf.hash.c_shipped | |||
| @@ -172,27 +172,27 @@ kconf_id_lookup (register const char *str, register unsigned int len) | |||
| 172 | { | 172 | { |
| 173 | {-1}, {-1}, | 173 | {-1}, {-1}, |
| 174 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2, T_IF, TF_COMMAND|TF_PARAM}, | 174 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2, T_IF, TF_COMMAND|TF_PARAM}, |
| 175 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3, T_INT, TF_COMMAND}, | 175 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3, T_TYPE, TF_COMMAND, S_INT}, |
| 176 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str4, T_HELP, TF_COMMAND}, | 176 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str4, T_HELP, TF_COMMAND}, |
| 177 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str5, T_ENDIF, TF_COMMAND}, | 177 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str5, T_ENDIF, TF_COMMAND}, |
| 178 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str6, T_SELECT, TF_COMMAND}, | 178 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str6, T_SELECT, TF_COMMAND}, |
| 179 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7, T_ENDMENU, TF_COMMAND}, | 179 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7, T_ENDMENU, TF_COMMAND}, |
| 180 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8, T_TRISTATE, TF_COMMAND}, | 180 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8, T_TYPE, TF_COMMAND, S_TRISTATE}, |
| 181 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str9, T_ENDCHOICE, TF_COMMAND}, | 181 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str9, T_ENDCHOICE, TF_COMMAND}, |
| 182 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str10, T_RANGE, TF_COMMAND}, | 182 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str10, T_RANGE, TF_COMMAND}, |
| 183 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str11, T_STRING, TF_COMMAND}, | 183 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str11, T_TYPE, TF_COMMAND, S_STRING}, |
| 184 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_DEFAULT, TF_COMMAND}, | 184 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_DEFAULT, TF_COMMAND, S_UNKNOWN}, |
| 185 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13, T_DEF_BOOLEAN, TF_COMMAND}, | 185 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13, T_DEFAULT, TF_COMMAND, S_BOOLEAN}, |
| 186 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_MENU, TF_COMMAND}, | 186 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_MENU, TF_COMMAND}, |
| 187 | {-1}, | 187 | {-1}, |
| 188 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str16, T_DEF_BOOLEAN, TF_COMMAND}, | 188 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str16, T_DEFAULT, TF_COMMAND, S_BOOLEAN}, |
| 189 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_DEF_TRISTATE, TF_COMMAND}, | 189 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_DEFAULT, TF_COMMAND, S_TRISTATE}, |
| 190 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_MAINMENU, TF_COMMAND}, | 190 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_MAINMENU, TF_COMMAND}, |
| 191 | {-1}, | 191 | {-1}, |
| 192 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str20, T_MENUCONFIG, TF_COMMAND}, | 192 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str20, T_MENUCONFIG, TF_COMMAND}, |
| 193 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_CONFIG, TF_COMMAND}, | 193 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_CONFIG, TF_COMMAND}, |
| 194 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_ON, TF_PARAM}, | 194 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_ON, TF_PARAM}, |
| 195 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23, T_HEX, TF_COMMAND}, | 195 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23, T_TYPE, TF_COMMAND, S_HEX}, |
| 196 | {-1}, {-1}, | 196 | {-1}, {-1}, |
| 197 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str26, T_SOURCE, TF_COMMAND}, | 197 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str26, T_SOURCE, TF_COMMAND}, |
| 198 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27, T_DEPENDS, TF_COMMAND}, | 198 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27, T_DEPENDS, TF_COMMAND}, |
| @@ -201,9 +201,9 @@ kconf_id_lookup (register const char *str, register unsigned int len) | |||
| 201 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SELECT, TF_COMMAND}, | 201 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SELECT, TF_COMMAND}, |
| 202 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32, T_COMMENT, TF_COMMAND}, | 202 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32, T_COMMENT, TF_COMMAND}, |
| 203 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_REQUIRES, TF_COMMAND}, | 203 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_REQUIRES, TF_COMMAND}, |
| 204 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str34, T_BOOLEAN, TF_COMMAND}, | 204 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str34, T_TYPE, TF_COMMAND, S_BOOLEAN}, |
| 205 | {-1}, {-1}, | 205 | {-1}, {-1}, |
| 206 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str37, T_BOOLEAN, TF_COMMAND}, | 206 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str37, T_TYPE, TF_COMMAND, S_BOOLEAN}, |
| 207 | {-1}, {-1}, {-1}, | 207 | {-1}, {-1}, {-1}, |
| 208 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41, T_CHOICE, TF_COMMAND}, | 208 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41, T_CHOICE, TF_COMMAND}, |
| 209 | {-1}, {-1}, {-1}, {-1}, | 209 | {-1}, {-1}, {-1}, {-1}, |
diff --git a/scripts/kconfig/zconf.l b/scripts/kconfig/zconf.l index ec902091be97..cfcfabd7a069 100644 --- a/scripts/kconfig/zconf.l +++ b/scripts/kconfig/zconf.l | |||
| @@ -90,6 +90,7 @@ n [A-Za-z0-9_] | |||
| 90 | struct kconf_id *id = kconf_id_lookup(yytext, yyleng); | 90 | struct kconf_id *id = kconf_id_lookup(yytext, yyleng); |
| 91 | if (id && id->flags & TF_COMMAND) { | 91 | if (id && id->flags & TF_COMMAND) { |
| 92 | BEGIN(PARAM); | 92 | BEGIN(PARAM); |
| 93 | zconflval.id = id; | ||
| 93 | return id->token; | 94 | return id->token; |
| 94 | } | 95 | } |
| 95 | alloc_string(yytext, yyleng); | 96 | alloc_string(yytext, yyleng); |
| @@ -117,8 +118,10 @@ n [A-Za-z0-9_] | |||
| 117 | --- /* ignore */ | 118 | --- /* ignore */ |
| 118 | ({n}|[-/.])+ { | 119 | ({n}|[-/.])+ { |
| 119 | struct kconf_id *id = kconf_id_lookup(yytext, yyleng); | 120 | struct kconf_id *id = kconf_id_lookup(yytext, yyleng); |
| 120 | if (id && id->flags & TF_PARAM) | 121 | if (id && id->flags & TF_PARAM) { |
| 122 | zconflval.id = id; | ||
| 121 | return id->token; | 123 | return id->token; |
| 124 | } | ||
| 122 | alloc_string(yytext, yyleng); | 125 | alloc_string(yytext, yyleng); |
| 123 | zconflval.string = text; | 126 | zconflval.string = text; |
| 124 | return T_WORD; | 127 | return T_WORD; |
diff --git a/scripts/kconfig/zconf.tab.c_shipped b/scripts/kconfig/zconf.tab.c_shipped index 07fa508d4659..3fc296274c98 100644 --- a/scripts/kconfig/zconf.tab.c_shipped +++ b/scripts/kconfig/zconf.tab.c_shipped | |||
| @@ -78,28 +78,22 @@ | |||
| 78 | T_REQUIRES = 272, | 78 | T_REQUIRES = 272, |
| 79 | T_OPTIONAL = 273, | 79 | T_OPTIONAL = 273, |
| 80 | T_PROMPT = 274, | 80 | T_PROMPT = 274, |
| 81 | T_DEFAULT = 275, | 81 | T_TYPE = 275, |
| 82 | T_TRISTATE = 276, | 82 | T_DEFAULT = 276, |
| 83 | T_DEF_TRISTATE = 277, | 83 | T_SELECT = 277, |
| 84 | T_BOOLEAN = 278, | 84 | T_RANGE = 278, |
| 85 | T_DEF_BOOLEAN = 279, | 85 | T_ON = 279, |
| 86 | T_STRING = 280, | 86 | T_WORD = 280, |
| 87 | T_INT = 281, | 87 | T_WORD_QUOTE = 281, |
| 88 | T_HEX = 282, | 88 | T_UNEQUAL = 282, |
| 89 | T_WORD = 283, | 89 | T_CLOSE_PAREN = 283, |
| 90 | T_WORD_QUOTE = 284, | 90 | T_OPEN_PAREN = 284, |
| 91 | T_UNEQUAL = 285, | 91 | T_EOL = 285, |
| 92 | T_EOF = 286, | 92 | T_EOF = 286, |
| 93 | T_EOL = 287, | 93 | T_OR = 287, |
| 94 | T_CLOSE_PAREN = 288, | 94 | T_AND = 288, |
| 95 | T_OPEN_PAREN = 289, | 95 | T_EQUAL = 289, |
| 96 | T_ON = 290, | 96 | T_NOT = 290 |
| 97 | T_SELECT = 291, | ||
| 98 | T_RANGE = 292, | ||
| 99 | T_OR = 293, | ||
| 100 | T_AND = 294, | ||
| 101 | T_EQUAL = 295, | ||
| 102 | T_NOT = 296 | ||
| 103 | }; | 97 | }; |
| 104 | #endif | 98 | #endif |
| 105 | #define T_MAINMENU 258 | 99 | #define T_MAINMENU 258 |
| @@ -119,28 +113,22 @@ | |||
| 119 | #define T_REQUIRES 272 | 113 | #define T_REQUIRES 272 |
| 120 | #define T_OPTIONAL 273 | 114 | #define T_OPTIONAL 273 |
| 121 | #define T_PROMPT 274 | 115 | #define T_PROMPT 274 |
| 122 | #define T_DEFAULT 275 | 116 | #define T_TYPE 275 |
| 123 | #define T_TRISTATE 276 | 117 | #define T_DEFAULT 276 |
| 124 | #define T_DEF_TRISTATE 277 | 118 | #define T_SELECT 277 |
| 125 | #define T_BOOLEAN 278 | 119 | #define T_RANGE 278 |
| 126 | #define T_DEF_BOOLEAN 279 | 120 | #define T_ON 279 |
| 127 | #define T_STRING 280 | 121 | #define T_WORD 280 |
| 128 | #define T_INT 281 | 122 | #define T_WORD_QUOTE 281 |
| 129 | #define T_HEX 282 | 123 | #define T_UNEQUAL 282 |
| 130 | #define T_WORD 283 | 124 | #define T_CLOSE_PAREN 283 |
| 131 | #define T_WORD_QUOTE 284 | 125 | #define T_OPEN_PAREN 284 |
| 132 | #define T_UNEQUAL 285 | 126 | #define T_EOL 285 |
| 133 | #define T_EOF 286 | 127 | #define T_EOF 286 |
| 134 | #define T_EOL 287 | 128 | #define T_OR 287 |
| 135 | #define T_CLOSE_PAREN 288 | 129 | #define T_AND 288 |
| 136 | #define T_OPEN_PAREN 289 | 130 | #define T_EQUAL 289 |
| 137 | #define T_ON 290 | 131 | #define T_NOT 290 |
| 138 | #define T_SELECT 291 | ||
| 139 | #define T_RANGE 292 | ||
| 140 | #define T_OR 293 | ||
| 141 | #define T_AND 294 | ||
| 142 | #define T_EQUAL 295 | ||
| 143 | #define T_NOT 296 | ||
| 144 | 132 | ||
| 145 | 133 | ||
| 146 | 134 | ||
| @@ -205,6 +193,7 @@ typedef union YYSTYPE { | |||
| 205 | struct symbol *symbol; | 193 | struct symbol *symbol; |
| 206 | struct expr *expr; | 194 | struct expr *expr; |
| 207 | struct menu *menu; | 195 | struct menu *menu; |
| 196 | struct kconf_id *id; | ||
| 208 | } YYSTYPE; | 197 | } YYSTYPE; |
| 209 | /* Line 190 of yacc.c. */ | 198 | /* Line 190 of yacc.c. */ |
| 210 | 199 | ||
| @@ -321,20 +310,20 @@ union yyalloc | |||
| 321 | /* YYFINAL -- State number of the termination state. */ | 310 | /* YYFINAL -- State number of the termination state. */ |
| 322 | #define YYFINAL 2 | 311 | #define YYFINAL 2 |
| 323 | /* YYLAST -- Last index in YYTABLE. */ | 312 | /* YYLAST -- Last index in YYTABLE. */ |
| 324 | #define YYLAST 201 | 313 | #define YYLAST 179 |
| 325 | 314 | ||
| 326 | /* YYNTOKENS -- Number of terminals. */ | 315 | /* YYNTOKENS -- Number of terminals. */ |
| 327 | #define YYNTOKENS 42 | 316 | #define YYNTOKENS 36 |
| 328 | /* YYNNTS -- Number of nonterminals. */ | 317 | /* YYNNTS -- Number of nonterminals. */ |
| 329 | #define YYNNTS 41 | 318 | #define YYNNTS 41 |
| 330 | /* YYNRULES -- Number of rules. */ | 319 | /* YYNRULES -- Number of rules. */ |
| 331 | #define YYNRULES 104 | 320 | #define YYNRULES 97 |
| 332 | /* YYNRULES -- Number of states. */ | 321 | /* YYNRULES -- Number of states. */ |
| 333 | #define YYNSTATES 182 | 322 | #define YYNSTATES 159 |
| 334 | 323 | ||
| 335 | /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ | 324 | /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ |
| 336 | #define YYUNDEFTOK 2 | 325 | #define YYUNDEFTOK 2 |
| 337 | #define YYMAXUTOK 296 | 326 | #define YYMAXUTOK 290 |
| 338 | 327 | ||
| 339 | #define YYTRANSLATE(YYX) \ | 328 | #define YYTRANSLATE(YYX) \ |
| 340 | ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) | 329 | ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) |
| @@ -371,7 +360,7 @@ static const unsigned char yytranslate[] = | |||
| 371 | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | 360 | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, |
| 372 | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, | 361 | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, |
| 373 | 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, | 362 | 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, |
| 374 | 35, 36, 37, 38, 39, 40, 41 | 363 | 35 |
| 375 | }; | 364 | }; |
| 376 | 365 | ||
| 377 | #if YYDEBUG | 366 | #if YYDEBUG |
| @@ -382,67 +371,62 @@ static const unsigned short int yyprhs[] = | |||
| 382 | 0, 0, 3, 4, 7, 9, 11, 13, 17, 19, | 371 | 0, 0, 3, 4, 7, 9, 11, 13, 17, 19, |
| 383 | 21, 23, 26, 28, 30, 32, 34, 36, 38, 42, | 372 | 21, 23, 26, 28, 30, 32, 34, 36, 38, 42, |
| 384 | 45, 49, 52, 53, 56, 59, 62, 65, 69, 74, | 373 | 45, 49, 52, 53, 56, 59, 62, 65, 69, 74, |
| 385 | 78, 83, 87, 91, 95, 100, 105, 110, 116, 119, | 374 | 79, 84, 90, 93, 96, 98, 102, 105, 106, 109, |
| 386 | 122, 124, 128, 131, 132, 135, 138, 141, 144, 149, | 375 | 112, 115, 118, 123, 127, 130, 135, 136, 139, 143, |
| 387 | 153, 157, 160, 165, 166, 169, 173, 175, 179, 182, | 376 | 145, 149, 152, 153, 156, 159, 162, 166, 169, 171, |
| 388 | 183, 186, 189, 192, 196, 199, 201, 205, 208, 209, | 377 | 175, 178, 179, 182, 185, 188, 192, 196, 198, 202, |
| 389 | 212, 215, 218, 222, 226, 228, 232, 235, 238, 241, | 378 | 205, 208, 211, 212, 215, 218, 223, 227, 231, 232, |
| 390 | 242, 245, 248, 253, 257, 261, 262, 265, 267, 269, | 379 | 235, 237, 239, 242, 245, 248, 250, 252, 253, 256, |
| 391 | 272, 275, 278, 280, 282, 283, 286, 288, 292, 296, | 380 | 258, 262, 266, 270, 273, 277, 281, 283 |
| 392 | 300, 303, 307, 311, 313 | ||
| 393 | }; | 381 | }; |
| 394 | 382 | ||
| 395 | /* YYRHS -- A `-1'-separated list of the rules' RHS. */ | 383 | /* YYRHS -- A `-1'-separated list of the rules' RHS. */ |
| 396 | static const yysigned_char yyrhs[] = | 384 | static const yysigned_char yyrhs[] = |
| 397 | { | 385 | { |
| 398 | 43, 0, -1, -1, 43, 44, -1, 45, -1, 55, | 386 | 37, 0, -1, -1, 37, 38, -1, 39, -1, 49, |
| 399 | -1, 66, -1, 3, 77, 79, -1, 5, -1, 15, | 387 | -1, 60, -1, 3, 71, 73, -1, 5, -1, 15, |
| 400 | -1, 8, -1, 1, 79, -1, 61, -1, 71, -1, | 388 | -1, 8, -1, 1, 73, -1, 55, -1, 65, -1, |
| 401 | 47, -1, 49, -1, 69, -1, 79, -1, 10, 28, | 389 | 41, -1, 43, -1, 63, -1, 73, -1, 10, 25, |
| 402 | 32, -1, 46, 50, -1, 11, 28, 32, -1, 48, | 390 | 30, -1, 40, 44, -1, 11, 25, 30, -1, 42, |
| 403 | 50, -1, -1, 50, 51, -1, 50, 75, -1, 50, | 391 | 44, -1, -1, 44, 45, -1, 44, 69, -1, 44, |
| 404 | 73, -1, 50, 32, -1, 21, 76, 32, -1, 22, | 392 | 67, -1, 44, 30, -1, 20, 70, 30, -1, 19, |
| 405 | 81, 80, 32, -1, 23, 76, 32, -1, 24, 81, | 393 | 71, 74, 30, -1, 21, 75, 74, 30, -1, 22, |
| 406 | 80, 32, -1, 26, 76, 32, -1, 27, 76, 32, | 394 | 25, 74, 30, -1, 23, 76, 76, 74, 30, -1, |
| 407 | -1, 25, 76, 32, -1, 19, 77, 80, 32, -1, | 395 | 7, 30, -1, 46, 50, -1, 72, -1, 47, 52, |
| 408 | 20, 81, 80, 32, -1, 36, 28, 80, 32, -1, | 396 | 48, -1, 47, 52, -1, -1, 50, 51, -1, 50, |
| 409 | 37, 82, 82, 80, 32, -1, 7, 32, -1, 52, | 397 | 69, -1, 50, 67, -1, 50, 30, -1, 19, 71, |
| 410 | 56, -1, 78, -1, 53, 58, 54, -1, 53, 58, | 398 | 74, 30, -1, 20, 70, 30, -1, 18, 30, -1, |
| 411 | -1, -1, 56, 57, -1, 56, 75, -1, 56, 73, | 399 | 21, 25, 74, 30, -1, -1, 52, 39, -1, 14, |
| 412 | -1, 56, 32, -1, 19, 77, 80, 32, -1, 21, | 400 | 75, 30, -1, 72, -1, 53, 56, 54, -1, 53, |
| 413 | 76, 32, -1, 23, 76, 32, -1, 18, 32, -1, | 401 | 56, -1, -1, 56, 39, -1, 56, 60, -1, 56, |
| 414 | 20, 28, 80, 32, -1, -1, 58, 45, -1, 14, | 402 | 49, -1, 4, 71, 30, -1, 57, 68, -1, 72, |
| 415 | 81, 32, -1, 78, -1, 59, 62, 60, -1, 59, | 403 | -1, 58, 61, 59, -1, 58, 61, -1, -1, 61, |
| 416 | 62, -1, -1, 62, 45, -1, 62, 66, -1, 62, | 404 | 39, -1, 61, 60, -1, 61, 49, -1, 61, 1, |
| 417 | 55, -1, 4, 77, 32, -1, 63, 74, -1, 78, | 405 | 30, -1, 6, 71, 30, -1, 62, -1, 9, 71, |
| 418 | -1, 64, 67, 65, -1, 64, 67, -1, -1, 67, | 406 | 30, -1, 64, 68, -1, 12, 30, -1, 66, 13, |
| 419 | 45, -1, 67, 66, -1, 67, 55, -1, 67, 1, | 407 | -1, -1, 68, 69, -1, 68, 30, -1, 16, 24, |
| 420 | 32, -1, 6, 77, 32, -1, 68, -1, 9, 77, | 408 | 75, 30, -1, 16, 75, 30, -1, 17, 75, 30, |
| 421 | 32, -1, 70, 74, -1, 12, 32, -1, 72, 13, | 409 | -1, -1, 71, 74, -1, 25, -1, 26, -1, 5, |
| 422 | -1, -1, 74, 75, -1, 74, 32, -1, 16, 35, | 410 | 73, -1, 8, 73, -1, 15, 73, -1, 30, -1, |
| 423 | 81, 32, -1, 16, 81, 32, -1, 17, 81, 32, | 411 | 31, -1, -1, 14, 75, -1, 76, -1, 76, 34, |
| 424 | -1, -1, 77, 80, -1, 28, -1, 29, -1, 5, | 412 | 76, -1, 76, 27, 76, -1, 29, 75, 28, -1, |
| 425 | 79, -1, 8, 79, -1, 15, 79, -1, 32, -1, | 413 | 35, 75, -1, 75, 32, 75, -1, 75, 33, 75, |
| 426 | 31, -1, -1, 14, 81, -1, 82, -1, 82, 40, | 414 | -1, 25, -1, 26, -1 |
| 427 | 82, -1, 82, 30, 82, -1, 34, 81, 33, -1, | ||
| 428 | 41, 81, -1, 81, 38, 81, -1, 81, 39, 81, | ||
| 429 | -1, 28, -1, 29, -1 | ||
| 430 | }; | 415 | }; |
| 431 | 416 | ||
| 432 | /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ | 417 | /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ |
| 433 | static const unsigned short int yyrline[] = | 418 | static const unsigned short int yyrline[] = |
| 434 | { | 419 | { |
| 435 | 0, 97, 97, 98, 101, 102, 103, 104, 105, 106, | 420 | 0, 92, 92, 93, 96, 97, 98, 99, 100, 101, |
| 436 | 107, 108, 112, 113, 114, 115, 116, 117, 123, 131, | 421 | 102, 103, 107, 108, 109, 110, 111, 112, 118, 126, |
| 437 | 137, 145, 155, 157, 158, 159, 160, 163, 169, 176, | 422 | 132, 140, 150, 152, 153, 154, 155, 158, 166, 172, |
| 438 | 182, 189, 195, 201, 207, 213, 219, 225, 233, 242, | 423 | 182, 188, 196, 205, 211, 220, 221, 227, 229, 230, |
| 439 | 248, 257, 258, 264, 266, 267, 268, 269, 272, 278, | 424 | 231, 232, 235, 241, 252, 258, 268, 270, 275, 284, |
| 440 | 284, 290, 296, 302, 304, 309, 318, 327, 328, 334, | 425 | 293, 294, 300, 302, 303, 304, 309, 316, 322, 331, |
| 441 | 336, 337, 338, 343, 350, 356, 365, 366, 372, 374, | 426 | 332, 338, 340, 341, 342, 343, 346, 352, 359, 366, |
| 442 | 375, 376, 377, 380, 386, 393, 400, 407, 413, 420, | 427 | 373, 379, 386, 387, 388, 391, 396, 401, 409, 411, |
| 443 | 421, 422, 425, 430, 435, 443, 445, 450, 451, 454, | 428 | 416, 417, 420, 421, 422, 426, 426, 428, 429, 432, |
| 444 | 455, 456, 460, 460, 462, 463, 466, 467, 468, 469, | 429 | 433, 434, 435, 436, 437, 438, 441, 442 |
| 445 | 470, 471, 472, 475, 476 | ||
| 446 | }; | 430 | }; |
| 447 | #endif | 431 | #endif |
| 448 | 432 | ||
| @@ -454,11 +438,10 @@ static const char *const yytname[] = | |||
| 454 | "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU", | 438 | "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU", |
| 455 | "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG", | 439 | "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG", |
| 456 | "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS", | 440 | "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS", |
| 457 | "T_REQUIRES", "T_OPTIONAL", "T_PROMPT", "T_DEFAULT", "T_TRISTATE", | 441 | "T_REQUIRES", "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", |
| 458 | "T_DEF_TRISTATE", "T_BOOLEAN", "T_DEF_BOOLEAN", "T_STRING", "T_INT", | 442 | "T_SELECT", "T_RANGE", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", |
| 459 | "T_HEX", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", "T_EOF", "T_EOL", | 443 | "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_EOF", "T_OR", "T_AND", |
| 460 | "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_SELECT", "T_RANGE", "T_OR", | 444 | "T_EQUAL", "T_NOT", "$accept", "input", "block", "common_block", |
| 461 | "T_AND", "T_EQUAL", "T_NOT", "$accept", "input", "block", "common_block", | ||
| 462 | "config_entry_start", "config_stmt", "menuconfig_entry_start", | 445 | "config_entry_start", "config_stmt", "menuconfig_entry_start", |
| 463 | "menuconfig_stmt", "config_option_list", "config_option", "choice", | 446 | "menuconfig_stmt", "config_option_list", "config_option", "choice", |
| 464 | "choice_entry", "choice_end", "choice_stmt", "choice_option_list", | 447 | "choice_entry", "choice_end", "choice_stmt", "choice_option_list", |
| @@ -478,25 +461,23 @@ static const unsigned short int yytoknum[] = | |||
| 478 | 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, | 461 | 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, |
| 479 | 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, | 462 | 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, |
| 480 | 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, | 463 | 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, |
| 481 | 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, | 464 | 285, 286, 287, 288, 289, 290 |
| 482 | 295, 296 | ||
| 483 | }; | 465 | }; |
| 484 | # endif | 466 | # endif |
| 485 | 467 | ||
| 486 | /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ | 468 | /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ |
| 487 | static const unsigned char yyr1[] = | 469 | static const unsigned char yyr1[] = |
| 488 | { | 470 | { |
| 489 | 0, 42, 43, 43, 44, 44, 44, 44, 44, 44, | 471 | 0, 36, 37, 37, 38, 38, 38, 38, 38, 38, |
| 490 | 44, 44, 45, 45, 45, 45, 45, 45, 46, 47, | 472 | 38, 38, 39, 39, 39, 39, 39, 39, 40, 41, |
| 491 | 48, 49, 50, 50, 50, 50, 50, 51, 51, 51, | 473 | 42, 43, 44, 44, 44, 44, 44, 45, 45, 45, |
| 492 | 51, 51, 51, 51, 51, 51, 51, 51, 52, 53, | 474 | 45, 45, 46, 47, 48, 49, 49, 50, 50, 50, |
| 493 | 54, 55, 55, 56, 56, 56, 56, 56, 57, 57, | 475 | 50, 50, 51, 51, 51, 51, 52, 52, 53, 54, |
| 494 | 57, 57, 57, 58, 58, 59, 60, 61, 61, 62, | 476 | 55, 55, 56, 56, 56, 56, 57, 58, 59, 60, |
| 495 | 62, 62, 62, 63, 64, 65, 66, 66, 67, 67, | 477 | 60, 61, 61, 61, 61, 61, 62, 63, 64, 65, |
| 496 | 67, 67, 67, 68, 69, 70, 71, 72, 73, 74, | 478 | 66, 67, 68, 68, 68, 69, 69, 69, 70, 70, |
| 497 | 74, 74, 75, 75, 75, 76, 76, 77, 77, 78, | 479 | 71, 71, 72, 72, 72, 73, 73, 74, 74, 75, |
| 498 | 78, 78, 79, 79, 80, 80, 81, 81, 81, 81, | 480 | 75, 75, 75, 75, 75, 75, 76, 76 |
| 499 | 81, 81, 81, 82, 82 | ||
| 500 | }; | 481 | }; |
| 501 | 482 | ||
| 502 | /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ | 483 | /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ |
| @@ -504,15 +485,14 @@ static const unsigned char yyr2[] = | |||
| 504 | { | 485 | { |
| 505 | 0, 2, 0, 2, 1, 1, 1, 3, 1, 1, | 486 | 0, 2, 0, 2, 1, 1, 1, 3, 1, 1, |
| 506 | 1, 2, 1, 1, 1, 1, 1, 1, 3, 2, | 487 | 1, 2, 1, 1, 1, 1, 1, 1, 3, 2, |
| 507 | 3, 2, 0, 2, 2, 2, 2, 3, 4, 3, | 488 | 3, 2, 0, 2, 2, 2, 2, 3, 4, 4, |
| 508 | 4, 3, 3, 3, 4, 4, 4, 5, 2, 2, | 489 | 4, 5, 2, 2, 1, 3, 2, 0, 2, 2, |
| 509 | 1, 3, 2, 0, 2, 2, 2, 2, 4, 3, | 490 | 2, 2, 4, 3, 2, 4, 0, 2, 3, 1, |
| 510 | 3, 2, 4, 0, 2, 3, 1, 3, 2, 0, | 491 | 3, 2, 0, 2, 2, 2, 3, 2, 1, 3, |
| 511 | 2, 2, 2, 3, 2, 1, 3, 2, 0, 2, | 492 | 2, 0, 2, 2, 2, 3, 3, 1, 3, 2, |
| 512 | 2, 2, 3, 3, 1, 3, 2, 2, 2, 0, | 493 | 2, 2, 0, 2, 2, 4, 3, 3, 0, 2, |
| 513 | 2, 2, 4, 3, 3, 0, 2, 1, 1, 2, | 494 | 1, 1, 2, 2, 2, 1, 1, 0, 2, 1, |
| 514 | 2, 2, 1, 1, 0, 2, 1, 3, 3, 3, | 495 | 3, 3, 3, 2, 3, 3, 1, 1 |
| 515 | 2, 3, 3, 1, 1 | ||
| 516 | }; | 496 | }; |
| 517 | 497 | ||
| 518 | /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state | 498 | /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state |
| @@ -521,69 +501,63 @@ static const unsigned char yyr2[] = | |||
| 521 | static const unsigned char yydefact[] = | 501 | static const unsigned char yydefact[] = |
| 522 | { | 502 | { |
| 523 | 2, 0, 1, 0, 0, 0, 8, 0, 0, 10, | 503 | 2, 0, 1, 0, 0, 0, 8, 0, 0, 10, |
| 524 | 0, 0, 0, 0, 9, 93, 92, 3, 4, 22, | 504 | 0, 0, 0, 0, 9, 85, 86, 3, 4, 22, |
| 525 | 14, 22, 15, 43, 53, 5, 59, 12, 79, 68, | 505 | 14, 22, 15, 37, 46, 5, 52, 12, 72, 61, |
| 526 | 6, 74, 16, 79, 13, 17, 11, 87, 88, 0, | 506 | 6, 67, 16, 72, 13, 17, 11, 80, 81, 0, |
| 527 | 0, 0, 38, 0, 0, 0, 103, 104, 0, 0, | 507 | 0, 0, 32, 0, 0, 0, 96, 97, 0, 0, |
| 528 | 0, 96, 19, 21, 39, 42, 58, 64, 0, 76, | 508 | 0, 89, 19, 21, 33, 36, 51, 57, 0, 69, |
| 529 | 7, 63, 73, 75, 18, 20, 0, 100, 55, 0, | 509 | 7, 56, 66, 68, 18, 20, 0, 93, 48, 0, |
| 530 | 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, | 510 | 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, |
| 531 | 85, 0, 85, 85, 85, 26, 0, 0, 23, 0, | 511 | 0, 26, 23, 0, 25, 24, 0, 0, 78, 0, |
| 532 | 25, 24, 0, 0, 0, 85, 85, 47, 44, 46, | 512 | 41, 38, 40, 39, 0, 0, 0, 47, 35, 34, |
| 533 | 45, 0, 0, 0, 54, 41, 40, 60, 62, 57, | 513 | 53, 55, 50, 54, 49, 74, 73, 0, 62, 64, |
| 534 | 61, 56, 81, 80, 0, 69, 71, 66, 70, 65, | 514 | 59, 63, 58, 92, 94, 95, 91, 90, 70, 0, |
| 535 | 99, 101, 102, 98, 97, 77, 0, 0, 0, 94, | 515 | 0, 0, 87, 0, 87, 87, 87, 0, 71, 44, |
| 536 | 94, 0, 94, 94, 0, 94, 0, 0, 0, 94, | 516 | 87, 0, 87, 82, 83, 84, 65, 0, 76, 77, |
| 537 | 0, 78, 51, 94, 94, 0, 0, 89, 90, 91, | 517 | 0, 0, 27, 79, 0, 0, 87, 0, 43, 0, |
| 538 | 72, 0, 83, 84, 0, 0, 0, 27, 86, 0, | 518 | 75, 88, 28, 29, 30, 0, 42, 45, 31 |
| 539 | 29, 0, 33, 31, 32, 0, 94, 0, 0, 49, | ||
| 540 | 50, 82, 95, 34, 35, 28, 30, 36, 0, 48, | ||
| 541 | 52, 37 | ||
| 542 | }; | 519 | }; |
| 543 | 520 | ||
| 544 | /* YYDEFGOTO[NTERM-NUM]. */ | 521 | /* YYDEFGOTO[NTERM-NUM]. */ |
| 545 | static const short int yydefgoto[] = | 522 | static const short int yydefgoto[] = |
| 546 | { | 523 | { |
| 547 | -1, 1, 17, 18, 19, 20, 21, 22, 52, 88, | 524 | -1, 1, 17, 18, 19, 20, 21, 22, 52, 82, |
| 548 | 23, 24, 105, 25, 54, 98, 55, 26, 109, 27, | 525 | 23, 24, 98, 25, 54, 91, 55, 26, 102, 27, |
| 549 | 56, 28, 29, 117, 30, 58, 31, 32, 33, 34, | 526 | 56, 28, 29, 110, 30, 58, 31, 32, 33, 34, |
| 550 | 89, 90, 57, 91, 131, 132, 106, 35, 155, 50, | 527 | 83, 84, 57, 85, 123, 124, 99, 35, 141, 50, |
| 551 | 51 | 528 | 51 |
| 552 | }; | 529 | }; |
| 553 | 530 | ||
| 554 | /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing | 531 | /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing |
| 555 | STATE-NUM. */ | 532 | STATE-NUM. */ |
| 556 | #define YYPACT_NINF -99 | 533 | #define YYPACT_NINF -113 |
| 557 | static const short int yypact[] = | 534 | static const short int yypact[] = |
| 558 | { | 535 | { |
| 559 | -99, 48, -99, 38, 46, 46, -99, 46, -29, -99, | 536 | -113, 37, -113, 114, 136, 136, -113, 136, -29, -113, |
| 560 | 46, -17, -3, -11, -99, -99, -99, -99, -99, -99, | 537 | 136, -19, -14, -10, -113, -113, -113, -113, -113, -113, |
| 561 | -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, | 538 | -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, |
| 562 | -99, -99, -99, -99, -99, -99, -99, -99, -99, 38, | 539 | -113, -113, -113, -113, -113, -113, -113, -113, -113, 114, |
| 563 | 12, 15, -99, 18, 51, 62, -99, -99, -11, -11, | 540 | 9, 25, -113, 56, 60, 65, -113, -113, -10, -10, |
| 564 | 4, -24, 138, 138, 160, 121, 110, -4, 81, -4, | 541 | 33, -1, 108, 108, 41, 103, 92, 5, 74, 5, |
| 565 | -99, -99, -99, -99, -99, -99, -19, -99, -99, -11, | 542 | -113, -113, -113, -113, -113, -113, 115, -113, -113, -10, |
| 566 | -11, 70, 70, 73, 32, -11, 46, -11, 46, -11, | 543 | -10, 138, 138, 80, 111, -10, 136, 136, -10, 2, |
| 567 | 46, -11, 46, 46, 46, -99, 36, 70, -99, 95, | 544 | 138, -113, -113, 113, -113, -113, 85, 136, 136, 107, |
| 568 | -99, -99, 96, 46, 106, 46, 46, -99, -99, -99, | 545 | -113, -113, -113, -113, 114, 114, 114, -113, -113, -113, |
| 569 | -99, 38, 38, 38, -99, -99, -99, -99, -99, -99, | 546 | -113, -113, -113, -113, -113, -113, -113, 120, -113, -113, |
| 570 | -99, -99, -99, -99, 112, -99, -99, -99, -99, -99, | 547 | -113, -113, -113, -113, 121, -113, -113, -113, -113, -10, |
| 571 | -99, 117, -99, -99, -99, -99, -11, 33, 65, 131, | 548 | 109, 119, 16, 137, 16, 17, 16, 138, -113, -113, |
| 572 | 1, 119, 131, 1, 136, 1, 153, 154, 155, 131, | 549 | 16, 139, 16, -113, -113, -113, -113, 123, -113, -113, |
| 573 | 70, -99, -99, 131, 131, 156, 157, -99, -99, -99, | 550 | -10, 140, -113, -113, 141, 142, 16, 143, -113, 144, |
| 574 | -99, 101, -99, -99, -11, 158, 159, -99, -99, 161, | 551 | -113, 133, -113, -113, -113, 145, -113, -113, -113 |
| 575 | -99, 162, -99, -99, -99, 163, 131, 164, 165, -99, | ||
| 576 | -99, -99, 99, -99, -99, -99, -99, -99, 166, -99, | ||
| 577 | -99, -99 | ||
| 578 | }; | 552 | }; |
| 579 | 553 | ||
| 580 | /* YYPGOTO[NTERM-NUM]. */ | 554 | /* YYPGOTO[NTERM-NUM]. */ |
| 581 | static const short int yypgoto[] = | 555 | static const short int yypgoto[] = |
| 582 | { | 556 | { |
| 583 | -99, -99, -99, 111, -99, -99, -99, -99, 178, -99, | 557 | -113, -113, -113, 14, -113, -113, -113, -113, 147, -113, |
| 584 | -99, -99, -99, 91, -99, -99, -99, -99, -99, -99, | 558 | -113, -113, -113, -2, -113, -113, -113, -113, -113, -113, |
| 585 | -99, -99, -99, -99, 115, -99, -99, -99, -99, -99, | 559 | -113, -113, -113, -113, 101, -113, -113, -113, -113, -113, |
| 586 | -99, 146, 168, 89, 27, 0, 126, -1, -98, -48, | 560 | -113, 122, 146, 62, 89, 0, 102, -3, -112, -46, |
| 587 | -63 | 561 | -63 |
| 588 | }; | 562 | }; |
| 589 | 563 | ||
| @@ -591,80 +565,71 @@ static const short int yypgoto[] = | |||
| 591 | positive, shift that token. If negative, reduce the rule which | 565 | positive, shift that token. If negative, reduce the rule which |
| 592 | number is the opposite. If zero, do what YYDEFACT says. | 566 | number is the opposite. If zero, do what YYDEFACT says. |
| 593 | If YYTABLE_NINF, syntax error. */ | 567 | If YYTABLE_NINF, syntax error. */ |
| 594 | #define YYTABLE_NINF -68 | 568 | #define YYTABLE_NINF -61 |
| 595 | static const short int yytable[] = | 569 | static const short int yytable[] = |
| 596 | { | 570 | { |
| 597 | 66, 67, 36, 42, 39, 40, 71, 41, 123, 124, | 571 | 36, 42, 66, 67, 39, 40, 44, 41, 116, 117, |
| 598 | 43, 44, 74, 75, 120, 154, 72, 46, 47, 69, | 572 | 43, 45, 143, 144, 145, 46, 47, 127, 147, 48, |
| 599 | 70, 121, 122, 48, 140, 45, 127, 128, 112, 130, | 573 | 149, 74, 75, 114, 115, 49, 71, 126, 120, 121, |
| 600 | 49, 133, 156, 135, 158, 159, 68, 161, 60, 69, | 574 | 140, 140, 125, 72, 155, 105, 60, 2, 3, 61, |
| 601 | 70, 165, 69, 70, 61, 167, 168, 62, 2, 3, | 575 | 4, 5, 6, 7, 8, 9, 10, 11, 12, 69, |
| 602 | 63, 4, 5, 6, 7, 8, 9, 10, 11, 12, | 576 | 70, 13, 14, 73, 101, 62, 109, 74, 75, 86, |
| 603 | 46, 47, 13, 14, 139, 152, 48, 126, 178, 15, | 577 | 87, 88, 89, 68, 146, 69, 70, 15, 16, 97, |
| 604 | 16, 69, 70, 49, 37, 38, 129, 166, 151, 15, | 578 | 100, 90, 108, 137, -60, 107, 122, -60, 5, 94, |
| 605 | 16, -67, 114, 64, -67, 5, 101, 7, 8, 102, | 579 | 7, 8, 95, 10, 11, 12, 63, 130, 13, 96, |
| 606 | 10, 11, 12, 143, 65, 13, 103, 153, 46, 47, | 580 | 64, 133, 134, 135, 151, 65, 5, 94, 7, 8, |
| 607 | 147, 148, 149, 69, 70, 125, 172, 134, 141, 136, | 581 | 95, 10, 11, 12, 15, 16, 13, 96, 94, 7, |
| 608 | 137, 138, 15, 16, 5, 101, 7, 8, 102, 10, | 582 | 118, 95, 10, 11, 12, 129, 93, 13, 96, 106, |
| 609 | 11, 12, 145, 146, 13, 103, 101, 7, 142, 102, | 583 | 73, 106, 15, 16, 74, 75, 128, 76, 77, 78, |
| 610 | 10, 11, 12, 171, 144, 13, 103, 69, 70, 69, | 584 | 79, 80, 132, 15, 16, 119, 46, 47, 81, 138, |
| 611 | 70, 15, 16, 100, 150, 154, 113, 108, 113, 116, | 585 | 48, 69, 70, 113, 15, 16, 49, 69, 70, 139, |
| 612 | 73, 157, 15, 16, 74, 75, 70, 76, 77, 78, | 586 | 136, 69, 70, 150, 70, 69, 70, 103, 104, 111, |
| 613 | 79, 80, 81, 82, 83, 84, 104, 107, 160, 115, | 587 | 112, 37, 38, 46, 47, 69, 70, 142, 53, 148, |
| 614 | 85, 110, 73, 118, 86, 87, 74, 75, 92, 93, | 588 | 152, 153, 154, 156, 157, 158, 92, 131, 0, 59 |
| 615 | 94, 95, 111, 96, 119, 162, 163, 164, 169, 170, | ||
| 616 | 173, 174, 97, 175, 176, 177, 179, 180, 181, 53, | ||
| 617 | 99, 59 | ||
| 618 | }; | 589 | }; |
| 619 | 590 | ||
| 620 | static const unsigned char yycheck[] = | 591 | static const short int yycheck[] = |
| 621 | { | 592 | { |
| 622 | 48, 49, 3, 32, 4, 5, 30, 7, 71, 72, | 593 | 3, 30, 48, 49, 4, 5, 25, 7, 71, 72, |
| 623 | 10, 28, 16, 17, 33, 14, 40, 28, 29, 38, | 594 | 10, 25, 124, 125, 126, 25, 26, 80, 130, 29, |
| 624 | 39, 69, 70, 34, 87, 28, 74, 75, 32, 77, | 595 | 132, 16, 17, 69, 70, 35, 27, 25, 74, 75, |
| 625 | 41, 79, 130, 81, 132, 133, 32, 135, 39, 38, | 596 | 14, 14, 78, 34, 146, 30, 39, 0, 1, 30, |
| 626 | 39, 139, 38, 39, 32, 143, 144, 32, 0, 1, | 597 | 3, 4, 5, 6, 7, 8, 9, 10, 11, 32, |
| 627 | 32, 3, 4, 5, 6, 7, 8, 9, 10, 11, | 598 | 33, 14, 15, 12, 56, 30, 58, 16, 17, 18, |
| 628 | 28, 29, 14, 15, 28, 32, 34, 35, 166, 31, | 599 | 19, 20, 21, 30, 127, 32, 33, 30, 31, 55, |
| 629 | 32, 38, 39, 41, 28, 29, 76, 140, 126, 31, | 600 | 56, 30, 58, 119, 0, 1, 76, 3, 4, 5, |
| 630 | 32, 0, 1, 32, 3, 4, 5, 6, 7, 8, | 601 | 6, 7, 8, 9, 10, 11, 30, 87, 14, 15, |
| 631 | 9, 10, 11, 93, 32, 14, 15, 32, 28, 29, | 602 | 30, 94, 95, 96, 140, 30, 4, 5, 6, 7, |
| 632 | 101, 102, 103, 38, 39, 32, 154, 80, 13, 82, | 603 | 8, 9, 10, 11, 30, 31, 14, 15, 5, 6, |
| 633 | 83, 84, 31, 32, 4, 5, 6, 7, 8, 9, | 604 | 30, 8, 9, 10, 11, 30, 54, 14, 15, 57, |
| 634 | 10, 11, 95, 96, 14, 15, 5, 6, 32, 8, | 605 | 12, 59, 30, 31, 16, 17, 13, 19, 20, 21, |
| 635 | 9, 10, 11, 32, 28, 14, 15, 38, 39, 38, | 606 | 22, 23, 25, 30, 31, 24, 25, 26, 30, 30, |
| 636 | 39, 31, 32, 54, 32, 14, 57, 56, 59, 58, | 607 | 29, 32, 33, 28, 30, 31, 35, 32, 33, 30, |
| 637 | 12, 32, 31, 32, 16, 17, 39, 19, 20, 21, | 608 | 30, 32, 33, 30, 33, 32, 33, 56, 56, 58, |
| 638 | 22, 23, 24, 25, 26, 27, 55, 56, 32, 58, | 609 | 58, 25, 26, 25, 26, 32, 33, 30, 21, 30, |
| 639 | 32, 56, 12, 58, 36, 37, 16, 17, 18, 19, | 610 | 30, 30, 30, 30, 30, 30, 54, 88, -1, 33 |
| 640 | 20, 21, 56, 23, 58, 32, 32, 32, 32, 32, | ||
| 641 | 32, 32, 32, 32, 32, 32, 32, 32, 32, 21, | ||
| 642 | 54, 33 | ||
| 643 | }; | 611 | }; |
| 644 | 612 | ||
| 645 | /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing | 613 | /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing |
| 646 | symbol of state STATE-NUM. */ | 614 | symbol of state STATE-NUM. */ |
| 647 | static const unsigned char yystos[] = | 615 | static const unsigned char yystos[] = |
| 648 | { | 616 | { |
| 649 | 0, 43, 0, 1, 3, 4, 5, 6, 7, 8, | 617 | 0, 37, 0, 1, 3, 4, 5, 6, 7, 8, |
| 650 | 9, 10, 11, 14, 15, 31, 32, 44, 45, 46, | 618 | 9, 10, 11, 14, 15, 30, 31, 38, 39, 40, |
| 651 | 47, 48, 49, 52, 53, 55, 59, 61, 63, 64, | 619 | 41, 42, 43, 46, 47, 49, 53, 55, 57, 58, |
| 652 | 66, 68, 69, 70, 71, 79, 79, 28, 29, 77, | 620 | 60, 62, 63, 64, 65, 73, 73, 25, 26, 71, |
| 653 | 77, 77, 32, 77, 28, 28, 28, 29, 34, 41, | 621 | 71, 71, 30, 71, 25, 25, 25, 26, 29, 35, |
| 654 | 81, 82, 50, 50, 56, 58, 62, 74, 67, 74, | 622 | 75, 76, 44, 44, 50, 52, 56, 68, 61, 68, |
| 655 | 79, 32, 32, 32, 32, 32, 81, 81, 32, 38, | 623 | 73, 30, 30, 30, 30, 30, 75, 75, 30, 32, |
| 656 | 39, 30, 40, 12, 16, 17, 19, 20, 21, 22, | 624 | 33, 27, 34, 12, 16, 17, 19, 20, 21, 22, |
| 657 | 23, 24, 25, 26, 27, 32, 36, 37, 51, 72, | 625 | 23, 30, 45, 66, 67, 69, 18, 19, 20, 21, |
| 658 | 73, 75, 18, 19, 20, 21, 23, 32, 57, 73, | 626 | 30, 51, 67, 69, 5, 8, 15, 39, 48, 72, |
| 659 | 75, 5, 8, 15, 45, 54, 78, 45, 55, 60, | 627 | 39, 49, 54, 60, 72, 30, 69, 1, 39, 49, |
| 660 | 66, 78, 32, 75, 1, 45, 55, 65, 66, 78, | 628 | 59, 60, 72, 28, 75, 75, 76, 76, 30, 24, |
| 661 | 33, 81, 81, 82, 82, 32, 35, 81, 81, 77, | 629 | 75, 75, 71, 70, 71, 75, 25, 76, 13, 30, |
| 662 | 81, 76, 77, 81, 76, 81, 76, 76, 76, 28, | 630 | 71, 70, 25, 73, 73, 73, 30, 75, 30, 30, |
| 663 | 82, 13, 32, 77, 28, 76, 76, 79, 79, 79, | 631 | 14, 74, 30, 74, 74, 74, 76, 74, 30, 74, |
| 664 | 32, 81, 32, 32, 14, 80, 80, 32, 80, 80, | 632 | 30, 75, 30, 30, 30, 74, 30, 30, 30 |
| 665 | 32, 80, 32, 32, 32, 80, 82, 80, 80, 32, | ||
| 666 | 32, 32, 81, 32, 32, 32, 32, 32, 80, 32, | ||
| 667 | 32, 32 | ||
| 668 | }; | 633 | }; |
| 669 | 634 | ||
| 670 | #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) | 635 | #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) |
| @@ -1367,78 +1332,34 @@ yyreduce: | |||
| 1367 | case 27: | 1332 | case 27: |
| 1368 | 1333 | ||
| 1369 | { | 1334 | { |
| 1370 | menu_set_type(S_TRISTATE); | 1335 | menu_set_type((yyvsp[-2].id)->stype); |
| 1371 | printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), zconf_lineno()); | 1336 | printd(DEBUG_PARSE, "%s:%d:type(%u)\n", |
| 1337 | zconf_curname(), zconf_lineno(), | ||
| 1338 | (yyvsp[-2].id)->stype); | ||
| 1372 | ;} | 1339 | ;} |
| 1373 | break; | 1340 | break; |
| 1374 | 1341 | ||
| 1375 | case 28: | 1342 | case 28: |
| 1376 | 1343 | ||
| 1377 | { | 1344 | { |
| 1378 | menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr)); | ||
| 1379 | menu_set_type(S_TRISTATE); | ||
| 1380 | printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno()); | ||
| 1381 | ;} | ||
| 1382 | break; | ||
| 1383 | |||
| 1384 | case 29: | ||
| 1385 | |||
| 1386 | { | ||
| 1387 | menu_set_type(S_BOOLEAN); | ||
| 1388 | printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno()); | ||
| 1389 | ;} | ||
| 1390 | break; | ||
| 1391 | |||
| 1392 | case 30: | ||
| 1393 | |||
| 1394 | { | ||
| 1395 | menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr)); | ||
| 1396 | menu_set_type(S_BOOLEAN); | ||
| 1397 | printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno()); | ||
| 1398 | ;} | ||
| 1399 | break; | ||
| 1400 | |||
| 1401 | case 31: | ||
| 1402 | |||
| 1403 | { | ||
| 1404 | menu_set_type(S_INT); | ||
| 1405 | printd(DEBUG_PARSE, "%s:%d:int\n", zconf_curname(), zconf_lineno()); | ||
| 1406 | ;} | ||
| 1407 | break; | ||
| 1408 | |||
| 1409 | case 32: | ||
| 1410 | |||
| 1411 | { | ||
| 1412 | menu_set_type(S_HEX); | ||
| 1413 | printd(DEBUG_PARSE, "%s:%d:hex\n", zconf_curname(), zconf_lineno()); | ||
| 1414 | ;} | ||
| 1415 | break; | ||
| 1416 | |||
| 1417 | case 33: | ||
| 1418 | |||
| 1419 | { | ||
| 1420 | menu_set_type(S_STRING); | ||
| 1421 | printd(DEBUG_PARSE, "%s:%d:string\n", zconf_curname(), zconf_lineno()); | ||
| 1422 | ;} | ||
| 1423 | break; | ||
| 1424 | |||
| 1425 | case 34: | ||
| 1426 | |||
| 1427 | { | ||
| 1428 | menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr)); | 1345 | menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr)); |
| 1429 | printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); | 1346 | printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); |
| 1430 | ;} | 1347 | ;} |
| 1431 | break; | 1348 | break; |
| 1432 | 1349 | ||
| 1433 | case 35: | 1350 | case 29: |
| 1434 | 1351 | ||
| 1435 | { | 1352 | { |
| 1436 | menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr)); | 1353 | menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr)); |
| 1437 | printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); | 1354 | if ((yyvsp[-3].id)->stype != S_UNKNOWN) |
| 1355 | menu_set_type((yyvsp[-3].id)->stype); | ||
| 1356 | printd(DEBUG_PARSE, "%s:%d:default(%u)\n", | ||
| 1357 | zconf_curname(), zconf_lineno(), | ||
| 1358 | (yyvsp[-3].id)->stype); | ||
| 1438 | ;} | 1359 | ;} |
| 1439 | break; | 1360 | break; |
| 1440 | 1361 | ||
| 1441 | case 36: | 1362 | case 30: |
| 1442 | 1363 | ||
| 1443 | { | 1364 | { |
| 1444 | menu_add_symbol(P_SELECT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr)); | 1365 | menu_add_symbol(P_SELECT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr)); |
| @@ -1446,7 +1367,7 @@ yyreduce: | |||
| 1446 | ;} | 1367 | ;} |
| 1447 | break; | 1368 | break; |
| 1448 | 1369 | ||
| 1449 | case 37: | 1370 | case 31: |
| 1450 | 1371 | ||
| 1451 | { | 1372 | { |
| 1452 | menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[-3].symbol), (yyvsp[-2].symbol)), (yyvsp[-1].expr)); | 1373 | menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[-3].symbol), (yyvsp[-2].symbol)), (yyvsp[-1].expr)); |
| @@ -1454,7 +1375,7 @@ yyreduce: | |||
| 1454 | ;} | 1375 | ;} |
| 1455 | break; | 1376 | break; |
| 1456 | 1377 | ||
| 1457 | case 38: | 1378 | case 32: |
| 1458 | 1379 | ||
| 1459 | { | 1380 | { |
| 1460 | struct symbol *sym = sym_lookup(NULL, 0); | 1381 | struct symbol *sym = sym_lookup(NULL, 0); |
| @@ -1465,7 +1386,7 @@ yyreduce: | |||
| 1465 | ;} | 1386 | ;} |
| 1466 | break; | 1387 | break; |
| 1467 | 1388 | ||
| 1468 | case 39: | 1389 | case 33: |
| 1469 | 1390 | ||
| 1470 | { | 1391 | { |
| 1471 | menu_end_entry(); | 1392 | menu_end_entry(); |
| @@ -1473,7 +1394,7 @@ yyreduce: | |||
| 1473 | ;} | 1394 | ;} |
| 1474 | break; | 1395 | break; |
| 1475 | 1396 | ||
| 1476 | case 40: | 1397 | case 34: |
| 1477 | 1398 | ||
| 1478 | { | 1399 | { |
| 1479 | if (zconf_endtoken((yyvsp[0].token), T_CHOICE, T_ENDCHOICE)) { | 1400 | if (zconf_endtoken((yyvsp[0].token), T_CHOICE, T_ENDCHOICE)) { |
| @@ -1483,7 +1404,7 @@ yyreduce: | |||
| 1483 | ;} | 1404 | ;} |
| 1484 | break; | 1405 | break; |
| 1485 | 1406 | ||
| 1486 | case 42: | 1407 | case 36: |
| 1487 | 1408 | ||
| 1488 | { | 1409 | { |
| 1489 | printf("%s:%d: missing 'endchoice' for this 'choice' statement\n", current_menu->file->name, current_menu->lineno); | 1410 | printf("%s:%d: missing 'endchoice' for this 'choice' statement\n", current_menu->file->name, current_menu->lineno); |
| @@ -1491,7 +1412,7 @@ yyreduce: | |||
| 1491 | ;} | 1412 | ;} |
| 1492 | break; | 1413 | break; |
| 1493 | 1414 | ||
| 1494 | case 48: | 1415 | case 42: |
| 1495 | 1416 | ||
| 1496 | { | 1417 | { |
| 1497 | menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr)); | 1418 | menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr)); |
| @@ -1499,23 +1420,20 @@ yyreduce: | |||
| 1499 | ;} | 1420 | ;} |
| 1500 | break; | 1421 | break; |
| 1501 | 1422 | ||
| 1502 | case 49: | 1423 | case 43: |
| 1503 | |||
| 1504 | { | ||
| 1505 | menu_set_type(S_TRISTATE); | ||
| 1506 | printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), zconf_lineno()); | ||
| 1507 | ;} | ||
| 1508 | break; | ||
| 1509 | |||
| 1510 | case 50: | ||
| 1511 | 1424 | ||
| 1512 | { | 1425 | { |
| 1513 | menu_set_type(S_BOOLEAN); | 1426 | if ((yyvsp[-2].id)->stype == S_BOOLEAN || (yyvsp[-2].id)->stype == S_TRISTATE) { |
| 1514 | printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno()); | 1427 | menu_set_type((yyvsp[-2].id)->stype); |
| 1428 | printd(DEBUG_PARSE, "%s:%d:type(%u)\n", | ||
| 1429 | zconf_curname(), zconf_lineno(), | ||
| 1430 | (yyvsp[-2].id)->stype); | ||
| 1431 | } else | ||
| 1432 | YYERROR; | ||
| 1515 | ;} | 1433 | ;} |
| 1516 | break; | 1434 | break; |
| 1517 | 1435 | ||
| 1518 | case 51: | 1436 | case 44: |
| 1519 | 1437 | ||
| 1520 | { | 1438 | { |
| 1521 | current_entry->sym->flags |= SYMBOL_OPTIONAL; | 1439 | current_entry->sym->flags |= SYMBOL_OPTIONAL; |
| @@ -1523,15 +1441,19 @@ yyreduce: | |||
| 1523 | ;} | 1441 | ;} |
| 1524 | break; | 1442 | break; |
| 1525 | 1443 | ||
| 1526 | case 52: | 1444 | case 45: |
| 1527 | 1445 | ||
| 1528 | { | 1446 | { |
| 1529 | menu_add_symbol(P_DEFAULT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr)); | 1447 | if ((yyvsp[-3].id)->stype == S_UNKNOWN) { |
| 1530 | printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); | 1448 | menu_add_symbol(P_DEFAULT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr)); |
| 1449 | printd(DEBUG_PARSE, "%s:%d:default\n", | ||
| 1450 | zconf_curname(), zconf_lineno()); | ||
| 1451 | } else | ||
| 1452 | YYERROR; | ||
| 1531 | ;} | 1453 | ;} |
| 1532 | break; | 1454 | break; |
| 1533 | 1455 | ||
| 1534 | case 55: | 1456 | case 48: |
| 1535 | 1457 | ||
| 1536 | { | 1458 | { |
| 1537 | printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno()); | 1459 | printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno()); |
| @@ -1542,7 +1464,7 @@ yyreduce: | |||
| 1542 | ;} | 1464 | ;} |
| 1543 | break; | 1465 | break; |
| 1544 | 1466 | ||
| 1545 | case 56: | 1467 | case 49: |
| 1546 | 1468 | ||
| 1547 | { | 1469 | { |
| 1548 | if (zconf_endtoken((yyvsp[0].token), T_IF, T_ENDIF)) { | 1470 | if (zconf_endtoken((yyvsp[0].token), T_IF, T_ENDIF)) { |
| @@ -1552,7 +1474,7 @@ yyreduce: | |||
| 1552 | ;} | 1474 | ;} |
| 1553 | break; | 1475 | break; |
| 1554 | 1476 | ||
| 1555 | case 58: | 1477 | case 51: |
| 1556 | 1478 | ||
| 1557 | { | 1479 | { |
| 1558 | printf("%s:%d: missing 'endif' for this 'if' statement\n", current_menu->file->name, current_menu->lineno); | 1480 | printf("%s:%d: missing 'endif' for this 'if' statement\n", current_menu->file->name, current_menu->lineno); |
| @@ -1560,7 +1482,7 @@ yyreduce: | |||
| 1560 | ;} | 1482 | ;} |
| 1561 | break; | 1483 | break; |
| 1562 | 1484 | ||
| 1563 | case 63: | 1485 | case 56: |
| 1564 | 1486 | ||
| 1565 | { | 1487 | { |
| 1566 | menu_add_entry(NULL); | 1488 | menu_add_entry(NULL); |
| @@ -1569,7 +1491,7 @@ yyreduce: | |||
| 1569 | ;} | 1491 | ;} |
| 1570 | break; | 1492 | break; |
| 1571 | 1493 | ||
| 1572 | case 64: | 1494 | case 57: |
| 1573 | 1495 | ||
| 1574 | { | 1496 | { |
| 1575 | menu_end_entry(); | 1497 | menu_end_entry(); |
| @@ -1577,7 +1499,7 @@ yyreduce: | |||
| 1577 | ;} | 1499 | ;} |
| 1578 | break; | 1500 | break; |
| 1579 | 1501 | ||
| 1580 | case 65: | 1502 | case 58: |
| 1581 | 1503 | ||
| 1582 | { | 1504 | { |
| 1583 | if (zconf_endtoken((yyvsp[0].token), T_MENU, T_ENDMENU)) { | 1505 | if (zconf_endtoken((yyvsp[0].token), T_MENU, T_ENDMENU)) { |
| @@ -1587,7 +1509,7 @@ yyreduce: | |||
| 1587 | ;} | 1509 | ;} |
| 1588 | break; | 1510 | break; |
| 1589 | 1511 | ||
| 1590 | case 67: | 1512 | case 60: |
| 1591 | 1513 | ||
| 1592 | { | 1514 | { |
| 1593 | printf("%s:%d: missing 'endmenu' for this 'menu' statement\n", current_menu->file->name, current_menu->lineno); | 1515 | printf("%s:%d: missing 'endmenu' for this 'menu' statement\n", current_menu->file->name, current_menu->lineno); |
| @@ -1595,12 +1517,12 @@ yyreduce: | |||
| 1595 | ;} | 1517 | ;} |
| 1596 | break; | 1518 | break; |
| 1597 | 1519 | ||
| 1598 | case 72: | 1520 | case 65: |
| 1599 | 1521 | ||
| 1600 | { zconfprint("invalid menu option"); yyerrok; ;} | 1522 | { zconfprint("invalid menu option"); yyerrok; ;} |
| 1601 | break; | 1523 | break; |
| 1602 | 1524 | ||
| 1603 | case 73: | 1525 | case 66: |
| 1604 | 1526 | ||
| 1605 | { | 1527 | { |
| 1606 | (yyval.string) = (yyvsp[-1].string); | 1528 | (yyval.string) = (yyvsp[-1].string); |
| @@ -1608,14 +1530,14 @@ yyreduce: | |||
| 1608 | ;} | 1530 | ;} |
| 1609 | break; | 1531 | break; |
| 1610 | 1532 | ||
| 1611 | case 74: | 1533 | case 67: |
| 1612 | 1534 | ||
| 1613 | { | 1535 | { |
| 1614 | zconf_nextfile((yyvsp[0].string)); | 1536 | zconf_nextfile((yyvsp[0].string)); |
| 1615 | ;} | 1537 | ;} |
| 1616 | break; | 1538 | break; |
| 1617 | 1539 | ||
| 1618 | case 75: | 1540 | case 68: |
| 1619 | 1541 | ||
| 1620 | { | 1542 | { |
| 1621 | menu_add_entry(NULL); | 1543 | menu_add_entry(NULL); |
| @@ -1624,14 +1546,14 @@ yyreduce: | |||
| 1624 | ;} | 1546 | ;} |
| 1625 | break; | 1547 | break; |
| 1626 | 1548 | ||
| 1627 | case 76: | 1549 | case 69: |
| 1628 | 1550 | ||
| 1629 | { | 1551 | { |
| 1630 | menu_end_entry(); | 1552 | menu_end_entry(); |
| 1631 | ;} | 1553 | ;} |
| 1632 | break; | 1554 | break; |
| 1633 | 1555 | ||
| 1634 | case 77: | 1556 | case 70: |
| 1635 | 1557 | ||
| 1636 | { | 1558 | { |
| 1637 | printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno()); | 1559 | printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno()); |
| @@ -1639,14 +1561,14 @@ yyreduce: | |||
| 1639 | ;} | 1561 | ;} |
| 1640 | break; | 1562 | break; |
| 1641 | 1563 | ||
| 1642 | case 78: | 1564 | case 71: |
| 1643 | 1565 | ||
| 1644 | { | 1566 | { |
| 1645 | current_entry->sym->help = (yyvsp[0].string); | 1567 | current_entry->sym->help = (yyvsp[0].string); |
| 1646 | ;} | 1568 | ;} |
| 1647 | break; | 1569 | break; |
| 1648 | 1570 | ||
| 1649 | case 82: | 1571 | case 75: |
| 1650 | 1572 | ||
| 1651 | { | 1573 | { |
| 1652 | menu_add_dep((yyvsp[-1].expr)); | 1574 | menu_add_dep((yyvsp[-1].expr)); |
| @@ -1654,7 +1576,7 @@ yyreduce: | |||
| 1654 | ;} | 1576 | ;} |
| 1655 | break; | 1577 | break; |
| 1656 | 1578 | ||
| 1657 | case 83: | 1579 | case 76: |
| 1658 | 1580 | ||
| 1659 | { | 1581 | { |
| 1660 | menu_add_dep((yyvsp[-1].expr)); | 1582 | menu_add_dep((yyvsp[-1].expr)); |
| @@ -1662,7 +1584,7 @@ yyreduce: | |||
| 1662 | ;} | 1584 | ;} |
| 1663 | break; | 1585 | break; |
| 1664 | 1586 | ||
| 1665 | case 84: | 1587 | case 77: |
| 1666 | 1588 | ||
| 1667 | { | 1589 | { |
| 1668 | menu_add_dep((yyvsp[-1].expr)); | 1590 | menu_add_dep((yyvsp[-1].expr)); |
| @@ -1670,79 +1592,79 @@ yyreduce: | |||
| 1670 | ;} | 1592 | ;} |
| 1671 | break; | 1593 | break; |
| 1672 | 1594 | ||
| 1673 | case 86: | 1595 | case 79: |
| 1674 | 1596 | ||
| 1675 | { | 1597 | { |
| 1676 | menu_add_prompt(P_PROMPT, (yyvsp[-1].string), (yyvsp[0].expr)); | 1598 | menu_add_prompt(P_PROMPT, (yyvsp[-1].string), (yyvsp[0].expr)); |
| 1677 | ;} | 1599 | ;} |
| 1678 | break; | 1600 | break; |
| 1679 | 1601 | ||
| 1680 | case 89: | 1602 | case 82: |
| 1681 | 1603 | ||
| 1682 | { (yyval.token) = T_ENDMENU; ;} | 1604 | { (yyval.token) = T_ENDMENU; ;} |
| 1683 | break; | 1605 | break; |
| 1684 | 1606 | ||
| 1685 | case 90: | 1607 | case 83: |
| 1686 | 1608 | ||
| 1687 | { (yyval.token) = T_ENDCHOICE; ;} | 1609 | { (yyval.token) = T_ENDCHOICE; ;} |
| 1688 | break; | 1610 | break; |
| 1689 | 1611 | ||
| 1690 | case 91: | 1612 | case 84: |
| 1691 | 1613 | ||
| 1692 | { (yyval.token) = T_ENDIF; ;} | 1614 | { (yyval.token) = T_ENDIF; ;} |
| 1693 | break; | 1615 | break; |
| 1694 | 1616 | ||
| 1695 | case 94: | 1617 | case 87: |
| 1696 | 1618 | ||
| 1697 | { (yyval.expr) = NULL; ;} | 1619 | { (yyval.expr) = NULL; ;} |
| 1698 | break; | 1620 | break; |
| 1699 | 1621 | ||
| 1700 | case 95: | 1622 | case 88: |
| 1701 | 1623 | ||
| 1702 | { (yyval.expr) = (yyvsp[0].expr); ;} | 1624 | { (yyval.expr) = (yyvsp[0].expr); ;} |
| 1703 | break; | 1625 | break; |
| 1704 | 1626 | ||
| 1705 | case 96: | 1627 | case 89: |
| 1706 | 1628 | ||
| 1707 | { (yyval.expr) = expr_alloc_symbol((yyvsp[0].symbol)); ;} | 1629 | { (yyval.expr) = expr_alloc_symbol((yyvsp[0].symbol)); ;} |
| 1708 | break; | 1630 | break; |
| 1709 | 1631 | ||
| 1710 | case 97: | 1632 | case 90: |
| 1711 | 1633 | ||
| 1712 | { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); ;} | 1634 | { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); ;} |
| 1713 | break; | 1635 | break; |
| 1714 | 1636 | ||
| 1715 | case 98: | 1637 | case 91: |
| 1716 | 1638 | ||
| 1717 | { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); ;} | 1639 | { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); ;} |
| 1718 | break; | 1640 | break; |
| 1719 | 1641 | ||
| 1720 | case 99: | 1642 | case 92: |
| 1721 | 1643 | ||
| 1722 | { (yyval.expr) = (yyvsp[-1].expr); ;} | 1644 | { (yyval.expr) = (yyvsp[-1].expr); ;} |
| 1723 | break; | 1645 | break; |
| 1724 | 1646 | ||
| 1725 | case 100: | 1647 | case 93: |
| 1726 | 1648 | ||
| 1727 | { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[0].expr)); ;} | 1649 | { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[0].expr)); ;} |
| 1728 | break; | 1650 | break; |
| 1729 | 1651 | ||
| 1730 | case 101: | 1652 | case 94: |
| 1731 | 1653 | ||
| 1732 | { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} | 1654 | { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} |
| 1733 | break; | 1655 | break; |
| 1734 | 1656 | ||
| 1735 | case 102: | 1657 | case 95: |
| 1736 | 1658 | ||
| 1737 | { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} | 1659 | { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} |
| 1738 | break; | 1660 | break; |
| 1739 | 1661 | ||
| 1740 | case 103: | 1662 | case 96: |
| 1741 | 1663 | ||
| 1742 | { (yyval.symbol) = sym_lookup((yyvsp[0].string), 0); free((yyvsp[0].string)); ;} | 1664 | { (yyval.symbol) = sym_lookup((yyvsp[0].string), 0); free((yyvsp[0].string)); ;} |
| 1743 | break; | 1665 | break; |
| 1744 | 1666 | ||
| 1745 | case 104: | 1667 | case 97: |
| 1746 | 1668 | ||
| 1747 | { (yyval.symbol) = sym_lookup((yyvsp[0].string), 1); free((yyvsp[0].string)); ;} | 1669 | { (yyval.symbol) = sym_lookup((yyvsp[0].string), 1); free((yyvsp[0].string)); ;} |
| 1748 | break; | 1670 | break; |
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y index 43021d436baf..1211781675b8 100644 --- a/scripts/kconfig/zconf.y +++ b/scripts/kconfig/zconf.y | |||
| @@ -43,43 +43,38 @@ static struct menu *current_menu, *current_entry; | |||
| 43 | struct symbol *symbol; | 43 | struct symbol *symbol; |
| 44 | struct expr *expr; | 44 | struct expr *expr; |
| 45 | struct menu *menu; | 45 | struct menu *menu; |
| 46 | struct kconf_id *id; | ||
| 46 | } | 47 | } |
| 47 | 48 | ||
| 48 | %token T_MAINMENU | 49 | %token <id>T_MAINMENU |
| 49 | %token T_MENU | 50 | %token <id>T_MENU |
| 50 | %token T_ENDMENU | 51 | %token <id>T_ENDMENU |
| 51 | %token T_SOURCE | 52 | %token <id>T_SOURCE |
| 52 | %token T_CHOICE | 53 | %token <id>T_CHOICE |
| 53 | %token T_ENDCHOICE | 54 | %token <id>T_ENDCHOICE |
| 54 | %token T_COMMENT | 55 | %token <id>T_COMMENT |
| 55 | %token T_CONFIG | 56 | %token <id>T_CONFIG |
| 56 | %token T_MENUCONFIG | 57 | %token <id>T_MENUCONFIG |
| 57 | %token T_HELP | 58 | %token <id>T_HELP |
| 58 | %token <string> T_HELPTEXT | 59 | %token <string> T_HELPTEXT |
| 59 | %token T_IF | 60 | %token <id>T_IF |
| 60 | %token T_ENDIF | 61 | %token <id>T_ENDIF |
| 61 | %token T_DEPENDS | 62 | %token <id>T_DEPENDS |
| 62 | %token T_REQUIRES | 63 | %token <id>T_REQUIRES |
| 63 | %token T_OPTIONAL | 64 | %token <id>T_OPTIONAL |
| 64 | %token T_PROMPT | 65 | %token <id>T_PROMPT |
| 65 | %token T_DEFAULT | 66 | %token <id>T_TYPE |
| 66 | %token T_TRISTATE | 67 | %token <id>T_DEFAULT |
| 67 | %token T_DEF_TRISTATE | 68 | %token <id>T_SELECT |
| 68 | %token T_BOOLEAN | 69 | %token <id>T_RANGE |
| 69 | %token T_DEF_BOOLEAN | 70 | %token <id>T_ON |
| 70 | %token T_STRING | ||
| 71 | %token T_INT | ||
| 72 | %token T_HEX | ||
| 73 | %token <string> T_WORD | 71 | %token <string> T_WORD |
| 74 | %token <string> T_WORD_QUOTE | 72 | %token <string> T_WORD_QUOTE |
| 75 | %token T_UNEQUAL | 73 | %token T_UNEQUAL |
| 76 | %token T_EOF | ||
| 77 | %token T_EOL | ||
| 78 | %token T_CLOSE_PAREN | 74 | %token T_CLOSE_PAREN |
| 79 | %token T_OPEN_PAREN | 75 | %token T_OPEN_PAREN |
| 80 | %token T_ON | 76 | %token T_EOL |
| 81 | %token T_SELECT | 77 | %token T_EOF |
| 82 | %token T_RANGE | ||
| 83 | 78 | ||
| 84 | %left T_OR | 79 | %left T_OR |
| 85 | %left T_AND | 80 | %left T_AND |
| @@ -160,48 +155,12 @@ config_option_list: | |||
| 160 | | config_option_list T_EOL | 155 | | config_option_list T_EOL |
| 161 | ; | 156 | ; |
| 162 | 157 | ||
| 163 | config_option: T_TRISTATE prompt_stmt_opt T_EOL | 158 | config_option: T_TYPE prompt_stmt_opt T_EOL |
| 164 | { | ||
| 165 | menu_set_type(S_TRISTATE); | ||
| 166 | printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), zconf_lineno()); | ||
| 167 | }; | ||
| 168 | |||
| 169 | config_option: T_DEF_TRISTATE expr if_expr T_EOL | ||
| 170 | { | 159 | { |
| 171 | menu_add_expr(P_DEFAULT, $2, $3); | 160 | menu_set_type($1->stype); |
| 172 | menu_set_type(S_TRISTATE); | 161 | printd(DEBUG_PARSE, "%s:%d:type(%u)\n", |
| 173 | printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno()); | 162 | zconf_curname(), zconf_lineno(), |
| 174 | }; | 163 | $1->stype); |
| 175 | |||
| 176 | config_option: T_BOOLEAN prompt_stmt_opt T_EOL | ||
| 177 | { | ||
| 178 | menu_set_type(S_BOOLEAN); | ||
| 179 | printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno()); | ||
| 180 | }; | ||
| 181 | |||
| 182 | config_option: T_DEF_BOOLEAN expr if_expr T_EOL | ||
| 183 | { | ||
| 184 | menu_add_expr(P_DEFAULT, $2, $3); | ||
| 185 | menu_set_type(S_BOOLEAN); | ||
| 186 | printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno()); | ||
| 187 | }; | ||
| 188 | |||
| 189 | config_option: T_INT prompt_stmt_opt T_EOL | ||
| 190 | { | ||
| 191 | menu_set_type(S_INT); | ||
| 192 | printd(DEBUG_PARSE, "%s:%d:int\n", zconf_curname(), zconf_lineno()); | ||
| 193 | }; | ||
| 194 | |||
| 195 | config_option: T_HEX prompt_stmt_opt T_EOL | ||
| 196 | { | ||
| 197 | menu_set_type(S_HEX); | ||
| 198 | printd(DEBUG_PARSE, "%s:%d:hex\n", zconf_curname(), zconf_lineno()); | ||
| 199 | }; | ||
| 200 | |||
| 201 | config_option: T_STRING prompt_stmt_opt T_EOL | ||
| 202 | { | ||
| 203 | menu_set_type(S_STRING); | ||
| 204 | printd(DEBUG_PARSE, "%s:%d:string\n", zconf_curname(), zconf_lineno()); | ||
| 205 | }; | 164 | }; |
| 206 | 165 | ||
| 207 | config_option: T_PROMPT prompt if_expr T_EOL | 166 | config_option: T_PROMPT prompt if_expr T_EOL |
| @@ -213,7 +172,11 @@ config_option: T_PROMPT prompt if_expr T_EOL | |||
| 213 | config_option: T_DEFAULT expr if_expr T_EOL | 172 | config_option: T_DEFAULT expr if_expr T_EOL |
| 214 | { | 173 | { |
| 215 | menu_add_expr(P_DEFAULT, $2, $3); | 174 | menu_add_expr(P_DEFAULT, $2, $3); |
| 216 | printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); | 175 | if ($1->stype != S_UNKNOWN) |
| 176 | menu_set_type($1->stype); | ||
| 177 | printd(DEBUG_PARSE, "%s:%d:default(%u)\n", | ||
| 178 | zconf_curname(), zconf_lineno(), | ||
| 179 | $1->stype); | ||
| 217 | }; | 180 | }; |
| 218 | 181 | ||
| 219 | config_option: T_SELECT T_WORD if_expr T_EOL | 182 | config_option: T_SELECT T_WORD if_expr T_EOL |
| @@ -275,16 +238,15 @@ choice_option: T_PROMPT prompt if_expr T_EOL | |||
| 275 | printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); | 238 | printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); |
| 276 | }; | 239 | }; |
| 277 | 240 | ||
| 278 | choice_option: T_TRISTATE prompt_stmt_opt T_EOL | 241 | choice_option: T_TYPE prompt_stmt_opt T_EOL |
| 279 | { | ||
| 280 | menu_set_type(S_TRISTATE); | ||
| 281 | printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), zconf_lineno()); | ||
| 282 | }; | ||
| 283 | |||
| 284 | choice_option: T_BOOLEAN prompt_stmt_opt T_EOL | ||
| 285 | { | 242 | { |
| 286 | menu_set_type(S_BOOLEAN); | 243 | if ($1->stype == S_BOOLEAN || $1->stype == S_TRISTATE) { |
| 287 | printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno()); | 244 | menu_set_type($1->stype); |
| 245 | printd(DEBUG_PARSE, "%s:%d:type(%u)\n", | ||
| 246 | zconf_curname(), zconf_lineno(), | ||
| 247 | $1->stype); | ||
| 248 | } else | ||
| 249 | YYERROR; | ||
| 288 | }; | 250 | }; |
| 289 | 251 | ||
| 290 | choice_option: T_OPTIONAL T_EOL | 252 | choice_option: T_OPTIONAL T_EOL |
| @@ -295,8 +257,12 @@ choice_option: T_OPTIONAL T_EOL | |||
| 295 | 257 | ||
| 296 | choice_option: T_DEFAULT T_WORD if_expr T_EOL | 258 | choice_option: T_DEFAULT T_WORD if_expr T_EOL |
| 297 | { | 259 | { |
| 298 | menu_add_symbol(P_DEFAULT, sym_lookup($2, 0), $3); | 260 | if ($1->stype == S_UNKNOWN) { |
| 299 | printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); | 261 | menu_add_symbol(P_DEFAULT, sym_lookup($2, 0), $3); |
| 262 | printd(DEBUG_PARSE, "%s:%d:default\n", | ||
| 263 | zconf_curname(), zconf_lineno()); | ||
| 264 | } else | ||
| 265 | YYERROR; | ||
| 300 | }; | 266 | }; |
| 301 | 267 | ||
| 302 | choice_block: | 268 | choice_block: |
