diff options
author | Roman Zippel <zippel@linux-m68k.org> | 2005-11-09 00:34:53 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-09 10:55:54 -0500 |
commit | a02f0570ae201c495ee991b959bb974af18f35cc (patch) | |
tree | 363e06307b7355caa2435a006c5385a1149bb7cc /scripts/kconfig/zconf.tab.c_shipped | |
parent | 3370f9f0d9c7d14bf71aab27fa45c0537f130614 (diff) |
[PATCH] kconfig: improve error handling in the parser
Add a few error tokens to the parser to catch common errors and print more
descriptive error messages.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'scripts/kconfig/zconf.tab.c_shipped')
-rw-r--r-- | scripts/kconfig/zconf.tab.c_shipped | 657 |
1 files changed, 357 insertions, 300 deletions
diff --git a/scripts/kconfig/zconf.tab.c_shipped b/scripts/kconfig/zconf.tab.c_shipped index 3fc296274c98..ea7755da82f5 100644 --- a/scripts/kconfig/zconf.tab.c_shipped +++ b/scripts/kconfig/zconf.tab.c_shipped | |||
@@ -89,11 +89,10 @@ | |||
89 | T_CLOSE_PAREN = 283, | 89 | T_CLOSE_PAREN = 283, |
90 | T_OPEN_PAREN = 284, | 90 | T_OPEN_PAREN = 284, |
91 | T_EOL = 285, | 91 | T_EOL = 285, |
92 | T_EOF = 286, | 92 | T_OR = 286, |
93 | T_OR = 287, | 93 | T_AND = 287, |
94 | T_AND = 288, | 94 | T_EQUAL = 288, |
95 | T_EQUAL = 289, | 95 | T_NOT = 289 |
96 | T_NOT = 290 | ||
97 | }; | 96 | }; |
98 | #endif | 97 | #endif |
99 | #define T_MAINMENU 258 | 98 | #define T_MAINMENU 258 |
@@ -124,11 +123,10 @@ | |||
124 | #define T_CLOSE_PAREN 283 | 123 | #define T_CLOSE_PAREN 283 |
125 | #define T_OPEN_PAREN 284 | 124 | #define T_OPEN_PAREN 284 |
126 | #define T_EOL 285 | 125 | #define T_EOL 285 |
127 | #define T_EOF 286 | 126 | #define T_OR 286 |
128 | #define T_OR 287 | 127 | #define T_AND 287 |
129 | #define T_AND 288 | 128 | #define T_EQUAL 288 |
130 | #define T_EQUAL 289 | 129 | #define T_NOT 289 |
131 | #define T_NOT 290 | ||
132 | 130 | ||
133 | 131 | ||
134 | 132 | ||
@@ -162,14 +160,18 @@ int cdebug = PRINTD; | |||
162 | 160 | ||
163 | extern int zconflex(void); | 161 | extern int zconflex(void); |
164 | static void zconfprint(const char *err, ...); | 162 | static void zconfprint(const char *err, ...); |
163 | static void zconf_error(const char *err, ...); | ||
165 | static void zconferror(const char *err); | 164 | static void zconferror(const char *err); |
166 | static bool zconf_endtoken(int token, int starttoken, int endtoken); | 165 | static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken); |
167 | 166 | ||
168 | struct symbol *symbol_hash[257]; | 167 | struct symbol *symbol_hash[257]; |
169 | 168 | ||
170 | static struct menu *current_menu, *current_entry; | 169 | static struct menu *current_menu, *current_entry; |
171 | 170 | ||
171 | #define YYDEBUG 0 | ||
172 | #if YYDEBUG | ||
172 | #define YYERROR_VERBOSE | 173 | #define YYERROR_VERBOSE |
174 | #endif | ||
173 | 175 | ||
174 | 176 | ||
175 | /* Enabling traces. */ | 177 | /* Enabling traces. */ |
@@ -188,8 +190,8 @@ static struct menu *current_menu, *current_entry; | |||
188 | #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) | 190 | #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) |
189 | 191 | ||
190 | typedef union YYSTYPE { | 192 | typedef union YYSTYPE { |
191 | int token; | ||
192 | char *string; | 193 | char *string; |
194 | struct file *file; | ||
193 | struct symbol *symbol; | 195 | struct symbol *symbol; |
194 | struct expr *expr; | 196 | struct expr *expr; |
195 | struct menu *menu; | 197 | struct menu *menu; |
@@ -308,22 +310,22 @@ union yyalloc | |||
308 | #endif | 310 | #endif |
309 | 311 | ||
310 | /* YYFINAL -- State number of the termination state. */ | 312 | /* YYFINAL -- State number of the termination state. */ |
311 | #define YYFINAL 2 | 313 | #define YYFINAL 3 |
312 | /* YYLAST -- Last index in YYTABLE. */ | 314 | /* YYLAST -- Last index in YYTABLE. */ |
313 | #define YYLAST 179 | 315 | #define YYLAST 264 |
314 | 316 | ||
315 | /* YYNTOKENS -- Number of terminals. */ | 317 | /* YYNTOKENS -- Number of terminals. */ |
316 | #define YYNTOKENS 36 | 318 | #define YYNTOKENS 35 |
317 | /* YYNNTS -- Number of nonterminals. */ | 319 | /* YYNNTS -- Number of nonterminals. */ |
318 | #define YYNNTS 41 | 320 | #define YYNNTS 42 |
319 | /* YYNRULES -- Number of rules. */ | 321 | /* YYNRULES -- Number of rules. */ |
320 | #define YYNRULES 97 | 322 | #define YYNRULES 104 |
321 | /* YYNRULES -- Number of states. */ | 323 | /* YYNRULES -- Number of states. */ |
322 | #define YYNSTATES 159 | 324 | #define YYNSTATES 175 |
323 | 325 | ||
324 | /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ | 326 | /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ |
325 | #define YYUNDEFTOK 2 | 327 | #define YYUNDEFTOK 2 |
326 | #define YYMAXUTOK 290 | 328 | #define YYMAXUTOK 289 |
327 | 329 | ||
328 | #define YYTRANSLATE(YYX) \ | 330 | #define YYTRANSLATE(YYX) \ |
329 | ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) | 331 | ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) |
@@ -359,8 +361,7 @@ static const unsigned char yytranslate[] = | |||
359 | 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, | 361 | 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, |
360 | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | 362 | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, |
361 | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, | 363 | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, |
362 | 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, | 364 | 25, 26, 27, 28, 29, 30, 31, 32, 33, 34 |
363 | 35 | ||
364 | }; | 365 | }; |
365 | 366 | ||
366 | #if YYDEBUG | 367 | #if YYDEBUG |
@@ -368,65 +369,70 @@ static const unsigned char yytranslate[] = | |||
368 | YYRHS. */ | 369 | YYRHS. */ |
369 | static const unsigned short int yyprhs[] = | 370 | static const unsigned short int yyprhs[] = |
370 | { | 371 | { |
371 | 0, 0, 3, 4, 7, 9, 11, 13, 17, 19, | 372 | 0, 0, 3, 5, 6, 9, 12, 15, 20, 23, |
372 | 21, 23, 26, 28, 30, 32, 34, 36, 38, 42, | 373 | 28, 33, 37, 39, 41, 43, 45, 47, 49, 51, |
373 | 45, 49, 52, 53, 56, 59, 62, 65, 69, 74, | 374 | 53, 55, 57, 59, 61, 63, 67, 70, 74, 77, |
374 | 79, 84, 90, 93, 96, 98, 102, 105, 106, 109, | 375 | 81, 84, 85, 88, 91, 94, 97, 100, 104, 109, |
375 | 112, 115, 118, 123, 127, 130, 135, 136, 139, 143, | 376 | 114, 119, 125, 128, 131, 133, 137, 138, 141, 144, |
376 | 145, 149, 152, 153, 156, 159, 162, 166, 169, 171, | 377 | 147, 150, 153, 158, 162, 165, 170, 171, 174, 178, |
377 | 175, 178, 179, 182, 185, 188, 192, 196, 198, 202, | 378 | 180, 184, 185, 188, 191, 194, 198, 201, 203, 207, |
378 | 205, 208, 211, 212, 215, 218, 223, 227, 231, 232, | 379 | 208, 211, 214, 217, 221, 225, 228, 231, 234, 235, |
379 | 235, 237, 239, 242, 245, 248, 250, 252, 253, 256, | 380 | 238, 241, 244, 249, 253, 257, 258, 261, 263, 265, |
380 | 258, 262, 266, 270, 273, 277, 281, 283 | 381 | 268, 271, 274, 276, 279, 280, 283, 285, 289, 293, |
382 | 297, 300, 304, 308, 310 | ||
381 | }; | 383 | }; |
382 | 384 | ||
383 | /* YYRHS -- A `-1'-separated list of the rules' RHS. */ | 385 | /* YYRHS -- A `-1'-separated list of the rules' RHS. */ |
384 | static const yysigned_char yyrhs[] = | 386 | static const yysigned_char yyrhs[] = |
385 | { | 387 | { |
386 | 37, 0, -1, -1, 37, 38, -1, 39, -1, 49, | 388 | 36, 0, -1, 37, -1, -1, 37, 39, -1, 37, |
387 | -1, 60, -1, 3, 71, 73, -1, 5, -1, 15, | 389 | 50, -1, 37, 61, -1, 37, 3, 71, 73, -1, |
388 | -1, 8, -1, 1, 73, -1, 55, -1, 65, -1, | 390 | 37, 72, -1, 37, 25, 1, 30, -1, 37, 38, |
389 | 41, -1, 43, -1, 63, -1, 73, -1, 10, 25, | 391 | 1, 30, -1, 37, 1, 30, -1, 16, -1, 19, |
390 | 30, -1, 40, 44, -1, 11, 25, 30, -1, 42, | 392 | -1, 20, -1, 22, -1, 18, -1, 23, -1, 21, |
391 | 44, -1, -1, 44, 45, -1, 44, 69, -1, 44, | 393 | -1, 30, -1, 56, -1, 65, -1, 42, -1, 44, |
392 | 67, -1, 44, 30, -1, 20, 70, 30, -1, 19, | 394 | -1, 63, -1, 25, 1, 30, -1, 1, 30, -1, |
393 | 71, 74, 30, -1, 21, 75, 74, 30, -1, 22, | 395 | 10, 25, 30, -1, 41, 45, -1, 11, 25, 30, |
394 | 25, 74, 30, -1, 23, 76, 76, 74, 30, -1, | 396 | -1, 43, 45, -1, -1, 45, 46, -1, 45, 69, |
395 | 7, 30, -1, 46, 50, -1, 72, -1, 47, 52, | 397 | -1, 45, 67, -1, 45, 40, -1, 45, 30, -1, |
396 | 48, -1, 47, 52, -1, -1, 50, 51, -1, 50, | 398 | 20, 70, 30, -1, 19, 71, 74, 30, -1, 21, |
397 | 69, -1, 50, 67, -1, 50, 30, -1, 19, 71, | 399 | 75, 74, 30, -1, 22, 25, 74, 30, -1, 23, |
398 | 74, 30, -1, 20, 70, 30, -1, 18, 30, -1, | 400 | 76, 76, 74, 30, -1, 7, 30, -1, 47, 51, |
399 | 21, 25, 74, 30, -1, -1, 52, 39, -1, 14, | 401 | -1, 72, -1, 48, 53, 49, -1, -1, 51, 52, |
400 | 75, 30, -1, 72, -1, 53, 56, 54, -1, 53, | 402 | -1, 51, 69, -1, 51, 67, -1, 51, 30, -1, |
401 | 56, -1, -1, 56, 39, -1, 56, 60, -1, 56, | 403 | 51, 40, -1, 19, 71, 74, 30, -1, 20, 70, |
402 | 49, -1, 4, 71, 30, -1, 57, 68, -1, 72, | 404 | 30, -1, 18, 30, -1, 21, 25, 74, 30, -1, |
403 | -1, 58, 61, 59, -1, 58, 61, -1, -1, 61, | 405 | -1, 53, 39, -1, 14, 75, 73, -1, 72, -1, |
404 | 39, -1, 61, 60, -1, 61, 49, -1, 61, 1, | 406 | 54, 57, 55, -1, -1, 57, 39, -1, 57, 61, |
405 | 30, -1, 6, 71, 30, -1, 62, -1, 9, 71, | 407 | -1, 57, 50, -1, 4, 71, 30, -1, 58, 68, |
406 | 30, -1, 64, 68, -1, 12, 30, -1, 66, 13, | 408 | -1, 72, -1, 59, 62, 60, -1, -1, 62, 39, |
407 | -1, -1, 68, 69, -1, 68, 30, -1, 16, 24, | 409 | -1, 62, 61, -1, 62, 50, -1, 6, 71, 30, |
408 | 75, 30, -1, 16, 75, 30, -1, 17, 75, 30, | 410 | -1, 9, 71, 30, -1, 64, 68, -1, 12, 30, |
409 | -1, -1, 71, 74, -1, 25, -1, 26, -1, 5, | 411 | -1, 66, 13, -1, -1, 68, 69, -1, 68, 30, |
410 | 73, -1, 8, 73, -1, 15, 73, -1, 30, -1, | 412 | -1, 68, 40, -1, 16, 24, 75, 30, -1, 16, |
411 | 31, -1, -1, 14, 75, -1, 76, -1, 76, 34, | 413 | 75, 30, -1, 17, 75, 30, -1, -1, 71, 74, |
412 | 76, -1, 76, 27, 76, -1, 29, 75, 28, -1, | 414 | -1, 25, -1, 26, -1, 5, 30, -1, 8, 30, |
413 | 35, 75, -1, 75, 32, 75, -1, 75, 33, 75, | 415 | -1, 15, 30, -1, 30, -1, 73, 30, -1, -1, |
414 | -1, 25, -1, 26, -1 | 416 | 14, 75, -1, 76, -1, 76, 33, 76, -1, 76, |
417 | 27, 76, -1, 29, 75, 28, -1, 34, 75, -1, | ||
418 | 75, 31, 75, -1, 75, 32, 75, -1, 25, -1, | ||
419 | 26, -1 | ||
415 | }; | 420 | }; |
416 | 421 | ||
417 | /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ | 422 | /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ |
418 | static const unsigned short int yyrline[] = | 423 | static const unsigned short int yyrline[] = |
419 | { | 424 | { |
420 | 0, 92, 92, 93, 96, 97, 98, 99, 100, 101, | 425 | 0, 103, 103, 105, 107, 108, 109, 110, 111, 112, |
421 | 102, 103, 107, 108, 109, 110, 111, 112, 118, 126, | 426 | 113, 117, 121, 121, 121, 121, 121, 121, 121, 125, |
422 | 132, 140, 150, 152, 153, 154, 155, 158, 166, 172, | 427 | 126, 127, 128, 129, 130, 134, 135, 141, 149, 155, |
423 | 182, 188, 196, 205, 211, 220, 221, 227, 229, 230, | 428 | 163, 173, 175, 176, 177, 178, 179, 182, 190, 196, |
424 | 231, 232, 235, 241, 252, 258, 268, 270, 275, 284, | 429 | 206, 212, 220, 229, 234, 242, 245, 247, 248, 249, |
425 | 293, 294, 300, 302, 303, 304, 309, 316, 322, 331, | 430 | 250, 251, 254, 260, 271, 277, 287, 289, 294, 302, |
426 | 332, 338, 340, 341, 342, 343, 346, 352, 359, 366, | 431 | 310, 313, 315, 316, 317, 322, 329, 334, 342, 345, |
427 | 373, 379, 386, 387, 388, 391, 396, 401, 409, 411, | 432 | 347, 348, 349, 352, 360, 367, 374, 380, 387, 389, |
428 | 416, 417, 420, 421, 422, 426, 426, 428, 429, 432, | 433 | 390, 391, 394, 399, 404, 412, 414, 419, 420, 423, |
429 | 433, 434, 435, 436, 437, 438, 441, 442 | 434 | 424, 425, 429, 430, 433, 434, 437, 438, 439, 440, |
435 | 441, 442, 443, 446, 447 | ||
430 | }; | 436 | }; |
431 | #endif | 437 | #endif |
432 | 438 | ||
@@ -440,16 +446,16 @@ static const char *const yytname[] = | |||
440 | "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS", | 446 | "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS", |
441 | "T_REQUIRES", "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", | 447 | "T_REQUIRES", "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", |
442 | "T_SELECT", "T_RANGE", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", | 448 | "T_SELECT", "T_RANGE", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", |
443 | "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_EOF", "T_OR", "T_AND", | 449 | "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND", "T_EQUAL", |
444 | "T_EQUAL", "T_NOT", "$accept", "input", "block", "common_block", | 450 | "T_NOT", "$accept", "input", "stmt_list", "option_name", "common_stmt", |
445 | "config_entry_start", "config_stmt", "menuconfig_entry_start", | 451 | "option_error", "config_entry_start", "config_stmt", |
446 | "menuconfig_stmt", "config_option_list", "config_option", "choice", | 452 | "menuconfig_entry_start", "menuconfig_stmt", "config_option_list", |
447 | "choice_entry", "choice_end", "choice_stmt", "choice_option_list", | 453 | "config_option", "choice", "choice_entry", "choice_end", "choice_stmt", |
448 | "choice_option", "choice_block", "if", "if_end", "if_stmt", "if_block", | 454 | "choice_option_list", "choice_option", "choice_block", "if_entry", |
449 | "menu", "menu_entry", "menu_end", "menu_stmt", "menu_block", "source", | 455 | "if_end", "if_stmt", "if_block", "menu", "menu_entry", "menu_end", |
450 | "source_stmt", "comment", "comment_stmt", "help_start", "help", | 456 | "menu_stmt", "menu_block", "source_stmt", "comment", "comment_stmt", |
451 | "depends_list", "depends", "prompt_stmt_opt", "prompt", "end", | 457 | "help_start", "help", "depends_list", "depends", "prompt_stmt_opt", |
452 | "nl_or_eof", "if_expr", "expr", "symbol", 0 | 458 | "prompt", "end", "nl", "if_expr", "expr", "symbol", 0 |
453 | }; | 459 | }; |
454 | #endif | 460 | #endif |
455 | 461 | ||
@@ -461,38 +467,40 @@ static const unsigned short int yytoknum[] = | |||
461 | 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, | 467 | 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, |
462 | 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, | 468 | 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, |
463 | 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, | 469 | 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, |
464 | 285, 286, 287, 288, 289, 290 | 470 | 285, 286, 287, 288, 289 |
465 | }; | 471 | }; |
466 | # endif | 472 | # endif |
467 | 473 | ||
468 | /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ | 474 | /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ |
469 | static const unsigned char yyr1[] = | 475 | static const unsigned char yyr1[] = |
470 | { | 476 | { |
471 | 0, 36, 37, 37, 38, 38, 38, 38, 38, 38, | 477 | 0, 35, 36, 37, 37, 37, 37, 37, 37, 37, |
472 | 38, 38, 39, 39, 39, 39, 39, 39, 40, 41, | 478 | 37, 37, 38, 38, 38, 38, 38, 38, 38, 39, |
473 | 42, 43, 44, 44, 44, 44, 44, 45, 45, 45, | 479 | 39, 39, 39, 39, 39, 40, 40, 41, 42, 43, |
474 | 45, 45, 46, 47, 48, 49, 49, 50, 50, 50, | 480 | 44, 45, 45, 45, 45, 45, 45, 46, 46, 46, |
475 | 50, 50, 51, 51, 51, 51, 52, 52, 53, 54, | 481 | 46, 46, 47, 48, 49, 50, 51, 51, 51, 51, |
476 | 55, 55, 56, 56, 56, 56, 57, 58, 59, 60, | 482 | 51, 51, 52, 52, 52, 52, 53, 53, 54, 55, |
477 | 60, 61, 61, 61, 61, 61, 62, 63, 64, 65, | 483 | 56, 57, 57, 57, 57, 58, 59, 60, 61, 62, |
478 | 66, 67, 68, 68, 68, 69, 69, 69, 70, 70, | 484 | 62, 62, 62, 63, 64, 65, 66, 67, 68, 68, |
479 | 71, 71, 72, 72, 72, 73, 73, 74, 74, 75, | 485 | 68, 68, 69, 69, 69, 70, 70, 71, 71, 72, |
480 | 75, 75, 75, 75, 75, 75, 76, 76 | 486 | 72, 72, 73, 73, 74, 74, 75, 75, 75, 75, |
487 | 75, 75, 75, 76, 76 | ||
481 | }; | 488 | }; |
482 | 489 | ||
483 | /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ | 490 | /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ |
484 | static const unsigned char yyr2[] = | 491 | static const unsigned char yyr2[] = |
485 | { | 492 | { |
486 | 0, 2, 0, 2, 1, 1, 1, 3, 1, 1, | 493 | 0, 2, 1, 0, 2, 2, 2, 4, 2, 4, |
487 | 1, 2, 1, 1, 1, 1, 1, 1, 3, 2, | 494 | 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, |
488 | 3, 2, 0, 2, 2, 2, 2, 3, 4, 4, | 495 | 1, 1, 1, 1, 1, 3, 2, 3, 2, 3, |
489 | 4, 5, 2, 2, 1, 3, 2, 0, 2, 2, | 496 | 2, 0, 2, 2, 2, 2, 2, 3, 4, 4, |
497 | 4, 5, 2, 2, 1, 3, 0, 2, 2, 2, | ||
490 | 2, 2, 4, 3, 2, 4, 0, 2, 3, 1, | 498 | 2, 2, 4, 3, 2, 4, 0, 2, 3, 1, |
491 | 3, 2, 0, 2, 2, 2, 3, 2, 1, 3, | 499 | 3, 0, 2, 2, 2, 3, 2, 1, 3, 0, |
492 | 2, 0, 2, 2, 2, 3, 3, 1, 3, 2, | 500 | 2, 2, 2, 3, 3, 2, 2, 2, 0, 2, |
493 | 2, 2, 0, 2, 2, 4, 3, 3, 0, 2, | 501 | 2, 2, 4, 3, 3, 0, 2, 1, 1, 2, |
494 | 1, 1, 2, 2, 2, 1, 1, 0, 2, 1, | 502 | 2, 2, 1, 2, 0, 2, 1, 3, 3, 3, |
495 | 3, 3, 3, 2, 3, 3, 1, 1 | 503 | 2, 3, 3, 1, 1 |
496 | }; | 504 | }; |
497 | 505 | ||
498 | /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state | 506 | /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state |
@@ -500,136 +508,160 @@ static const unsigned char yyr2[] = | |||
500 | means the default is an error. */ | 508 | means the default is an error. */ |
501 | static const unsigned char yydefact[] = | 509 | static const unsigned char yydefact[] = |
502 | { | 510 | { |
503 | 2, 0, 1, 0, 0, 0, 8, 0, 0, 10, | 511 | 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, |
504 | 0, 0, 0, 0, 9, 85, 86, 3, 4, 22, | 512 | 0, 0, 0, 0, 0, 0, 12, 16, 13, 14, |
505 | 14, 22, 15, 37, 46, 5, 52, 12, 72, 61, | 513 | 18, 15, 17, 0, 19, 0, 4, 31, 22, 31, |
506 | 6, 67, 16, 72, 13, 17, 11, 80, 81, 0, | 514 | 23, 46, 56, 5, 61, 20, 78, 69, 6, 24, |
507 | 0, 0, 32, 0, 0, 0, 96, 97, 0, 0, | 515 | 78, 21, 8, 11, 87, 88, 0, 0, 89, 0, |
508 | 0, 89, 19, 21, 33, 36, 51, 57, 0, 69, | 516 | 42, 90, 0, 0, 0, 103, 104, 0, 0, 0, |
509 | 7, 56, 66, 68, 18, 20, 0, 93, 48, 0, | 517 | 96, 91, 0, 0, 0, 0, 0, 0, 0, 0, |
510 | 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, | 518 | 0, 0, 92, 7, 65, 73, 74, 27, 29, 0, |
511 | 0, 26, 23, 0, 25, 24, 0, 0, 78, 0, | 519 | 100, 0, 0, 58, 0, 0, 9, 10, 0, 0, |
512 | 41, 38, 40, 39, 0, 0, 0, 47, 35, 34, | 520 | 0, 0, 0, 85, 0, 0, 0, 0, 36, 35, |
513 | 53, 55, 50, 54, 49, 74, 73, 0, 62, 64, | 521 | 32, 0, 34, 33, 0, 0, 85, 0, 50, 51, |
514 | 59, 63, 58, 92, 94, 95, 91, 90, 70, 0, | 522 | 47, 49, 48, 57, 45, 44, 62, 64, 60, 63, |
515 | 0, 0, 87, 0, 87, 87, 87, 0, 71, 44, | 523 | 59, 80, 81, 79, 70, 72, 68, 71, 67, 93, |
516 | 87, 0, 87, 82, 83, 84, 65, 0, 76, 77, | 524 | 99, 101, 102, 98, 97, 26, 76, 0, 0, 0, |
517 | 0, 0, 27, 79, 0, 0, 87, 0, 43, 0, | 525 | 94, 0, 94, 94, 94, 0, 0, 77, 54, 94, |
518 | 75, 88, 28, 29, 30, 0, 42, 45, 31 | 526 | 0, 94, 0, 83, 84, 0, 0, 37, 86, 0, |
527 | 0, 94, 25, 0, 53, 0, 82, 95, 38, 39, | ||
528 | 40, 0, 52, 55, 41 | ||
519 | }; | 529 | }; |
520 | 530 | ||
521 | /* YYDEFGOTO[NTERM-NUM]. */ | 531 | /* YYDEFGOTO[NTERM-NUM]. */ |
522 | static const short int yydefgoto[] = | 532 | static const short int yydefgoto[] = |
523 | { | 533 | { |
524 | -1, 1, 17, 18, 19, 20, 21, 22, 52, 82, | 534 | -1, 1, 2, 25, 26, 99, 27, 28, 29, 30, |
525 | 23, 24, 98, 25, 54, 91, 55, 26, 102, 27, | 535 | 64, 100, 31, 32, 114, 33, 66, 110, 67, 34, |
526 | 56, 28, 29, 110, 30, 58, 31, 32, 33, 34, | 536 | 118, 35, 68, 36, 37, 126, 38, 70, 39, 40, |
527 | 83, 84, 57, 85, 123, 124, 99, 35, 141, 50, | 537 | 41, 101, 102, 69, 103, 141, 142, 42, 73, 156, |
528 | 51 | 538 | 59, 60 |
529 | }; | 539 | }; |
530 | 540 | ||
531 | /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing | 541 | /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing |
532 | STATE-NUM. */ | 542 | STATE-NUM. */ |
533 | #define YYPACT_NINF -113 | 543 | #define YYPACT_NINF -78 |
534 | static const short int yypact[] = | 544 | static const short int yypact[] = |
535 | { | 545 | { |
536 | -113, 37, -113, 114, 136, 136, -113, 136, -29, -113, | 546 | -78, 2, 159, -78, -21, 0, 0, -12, 0, 1, |
537 | 136, -19, -14, -10, -113, -113, -113, -113, -113, -113, | 547 | 4, 0, 27, 38, 60, 58, -78, -78, -78, -78, |
538 | -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, | 548 | -78, -78, -78, 100, -78, 104, -78, -78, -78, -78, |
539 | -113, -113, -113, -113, -113, -113, -113, -113, -113, 114, | 549 | -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, |
540 | 9, 25, -113, 56, 60, 65, -113, -113, -10, -10, | 550 | -78, -78, -78, -78, -78, -78, 86, 113, -78, 114, |
541 | 33, -1, 108, 108, 41, 103, 92, 5, 74, 5, | 551 | -78, -78, 125, 127, 128, -78, -78, 60, 60, 210, |
542 | -113, -113, -113, -113, -113, -113, 115, -113, -113, -10, | 552 | 65, -78, 141, 142, 39, 103, 182, 200, 6, 66, |
543 | -10, 138, 138, 80, 111, -10, 136, 136, -10, 2, | 553 | 6, 131, -78, 146, -78, -78, -78, -78, -78, 196, |
544 | 138, -113, -113, 113, -113, -113, 85, 136, 136, 107, | 554 | -78, 60, 60, 146, 40, 40, -78, -78, 155, 156, |
545 | -113, -113, -113, -113, 114, 114, 114, -113, -113, -113, | 555 | -2, 60, 0, 0, 60, 105, 40, 194, -78, -78, |
546 | -113, -113, -113, -113, -113, -113, -113, 120, -113, -113, | 556 | -78, 206, -78, -78, 183, 0, 0, 195, -78, -78, |
547 | -113, -113, -113, -113, 121, -113, -113, -113, -113, -10, | 557 | -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, |
548 | 109, 119, 16, 137, 16, 17, 16, 138, -113, -113, | 558 | -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, |
549 | 16, 139, 16, -113, -113, -113, -113, 123, -113, -113, | 559 | -78, 197, -78, -78, -78, -78, -78, 60, 213, 216, |
550 | -10, 140, -113, -113, 141, 142, 16, 143, -113, 144, | 560 | 212, 203, 212, 190, 212, 40, 208, -78, -78, 212, |
551 | -113, 133, -113, -113, -113, 145, -113, -113, -113 | 561 | 222, 212, 219, -78, -78, 60, 223, -78, -78, 224, |
562 | 225, 212, -78, 226, -78, 227, -78, 47, -78, -78, | ||
563 | -78, 228, -78, -78, -78 | ||
552 | }; | 564 | }; |
553 | 565 | ||
554 | /* YYPGOTO[NTERM-NUM]. */ | 566 | /* YYPGOTO[NTERM-NUM]. */ |
555 | static const short int yypgoto[] = | 567 | static const short int yypgoto[] = |
556 | { | 568 | { |
557 | -113, -113, -113, 14, -113, -113, -113, -113, 147, -113, | 569 | -78, -78, -78, -78, 164, -36, -78, -78, -78, -78, |
558 | -113, -113, -113, -2, -113, -113, -113, -113, -113, -113, | 570 | 230, -78, -78, -78, -78, 29, -78, -78, -78, -78, |
559 | -113, -113, -113, -113, 101, -113, -113, -113, -113, -113, | 571 | -78, -78, -78, -78, -78, -78, 59, -78, -78, -78, |
560 | -113, 122, 146, 62, 89, 0, 102, -3, -112, -46, | 572 | -78, -78, 198, 220, 24, 157, -5, 169, 202, 74, |
561 | -63 | 573 | -53, -77 |
562 | }; | 574 | }; |
563 | 575 | ||
564 | /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If | 576 | /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If |
565 | positive, shift that token. If negative, reduce the rule which | 577 | positive, shift that token. If negative, reduce the rule which |
566 | number is the opposite. If zero, do what YYDEFACT says. | 578 | number is the opposite. If zero, do what YYDEFACT says. |
567 | If YYTABLE_NINF, syntax error. */ | 579 | If YYTABLE_NINF, syntax error. */ |
568 | #define YYTABLE_NINF -61 | 580 | #define YYTABLE_NINF -76 |
569 | static const short int yytable[] = | 581 | static const short int yytable[] = |
570 | { | 582 | { |
571 | 36, 42, 66, 67, 39, 40, 44, 41, 116, 117, | 583 | 46, 47, 3, 49, 79, 80, 52, 133, 134, 43, |
572 | 43, 45, 143, 144, 145, 46, 47, 127, 147, 48, | 584 | 6, 7, 8, 9, 10, 11, 12, 13, 48, 145, |
573 | 149, 74, 75, 114, 115, 49, 71, 126, 120, 121, | 585 | 14, 15, 137, 55, 56, 44, 45, 57, 131, 132, |
574 | 140, 140, 125, 72, 155, 105, 60, 2, 3, 61, | 586 | 109, 50, 58, 122, 51, 122, 24, 138, 139, -28, |
575 | 4, 5, 6, 7, 8, 9, 10, 11, 12, 69, | 587 | 88, 143, -28, -28, -28, -28, -28, -28, -28, -28, |
576 | 70, 13, 14, 73, 101, 62, 109, 74, 75, 86, | 588 | -28, 89, 53, -28, -28, 90, 91, -28, 92, 93, |
577 | 87, 88, 89, 68, 146, 69, 70, 15, 16, 97, | 589 | 94, 95, 96, 54, 97, 55, 56, 88, 161, 98, |
578 | 100, 90, 108, 137, -60, 107, 122, -60, 5, 94, | 590 | -66, -66, -66, -66, -66, -66, -66, -66, 81, 82, |
579 | 7, 8, 95, 10, 11, 12, 63, 130, 13, 96, | 591 | -66, -66, 90, 91, 152, 55, 56, 140, 61, 57, |
580 | 64, 133, 134, 135, 151, 65, 5, 94, 7, 8, | 592 | 112, 97, 84, 123, 58, 123, 121, 117, 85, 125, |
581 | 95, 10, 11, 12, 15, 16, 13, 96, 94, 7, | 593 | 149, 62, 167, -30, 88, 63, -30, -30, -30, -30, |
582 | 118, 95, 10, 11, 12, 129, 93, 13, 96, 106, | 594 | -30, -30, -30, -30, -30, 89, 72, -30, -30, 90, |
583 | 73, 106, 15, 16, 74, 75, 128, 76, 77, 78, | 595 | 91, -30, 92, 93, 94, 95, 96, 119, 97, 127, |
584 | 79, 80, 132, 15, 16, 119, 46, 47, 81, 138, | 596 | 144, -75, 88, 98, -75, -75, -75, -75, -75, -75, |
585 | 48, 69, 70, 113, 15, 16, 49, 69, 70, 139, | 597 | -75, -75, -75, 74, 75, -75, -75, 90, 91, -75, |
586 | 136, 69, 70, 150, 70, 69, 70, 103, 104, 111, | 598 | -75, -75, -75, -75, -75, 76, 97, 77, 78, -2, |
587 | 112, 37, 38, 46, 47, 69, 70, 142, 53, 148, | 599 | 4, 121, 5, 6, 7, 8, 9, 10, 11, 12, |
588 | 152, 153, 154, 156, 157, 158, 92, 131, 0, 59 | 600 | 13, 86, 87, 14, 15, 16, 129, 17, 18, 19, |
601 | 20, 21, 22, 88, 23, 135, 136, -43, -43, 24, | ||
602 | -43, -43, -43, -43, 89, 146, -43, -43, 90, 91, | ||
603 | 104, 105, 106, 107, 155, 7, 8, 97, 10, 11, | ||
604 | 12, 13, 108, 148, 14, 15, 158, 159, 160, 147, | ||
605 | 151, 81, 82, 163, 130, 165, 155, 81, 82, 82, | ||
606 | 24, 113, 116, 157, 124, 171, 115, 120, 162, 128, | ||
607 | 72, 81, 82, 153, 81, 82, 154, 81, 82, 166, | ||
608 | 81, 82, 164, 168, 169, 170, 172, 173, 174, 65, | ||
609 | 71, 83, 0, 150, 111 | ||
589 | }; | 610 | }; |
590 | 611 | ||
591 | static const short int yycheck[] = | 612 | static const short int yycheck[] = |
592 | { | 613 | { |
593 | 3, 30, 48, 49, 4, 5, 25, 7, 71, 72, | 614 | 5, 6, 0, 8, 57, 58, 11, 84, 85, 30, |
594 | 10, 25, 124, 125, 126, 25, 26, 80, 130, 29, | 615 | 4, 5, 6, 7, 8, 9, 10, 11, 30, 96, |
595 | 132, 16, 17, 69, 70, 35, 27, 25, 74, 75, | 616 | 14, 15, 24, 25, 26, 25, 26, 29, 81, 82, |
596 | 14, 14, 78, 34, 146, 30, 39, 0, 1, 30, | 617 | 66, 30, 34, 69, 30, 71, 30, 90, 91, 0, |
597 | 3, 4, 5, 6, 7, 8, 9, 10, 11, 32, | 618 | 1, 94, 3, 4, 5, 6, 7, 8, 9, 10, |
598 | 33, 14, 15, 12, 56, 30, 58, 16, 17, 18, | 619 | 11, 12, 25, 14, 15, 16, 17, 18, 19, 20, |
599 | 19, 20, 21, 30, 127, 32, 33, 30, 31, 55, | 620 | 21, 22, 23, 25, 25, 25, 26, 1, 145, 30, |
600 | 56, 30, 58, 119, 0, 1, 76, 3, 4, 5, | 621 | 4, 5, 6, 7, 8, 9, 10, 11, 31, 32, |
601 | 6, 7, 8, 9, 10, 11, 30, 87, 14, 15, | 622 | 14, 15, 16, 17, 137, 25, 26, 92, 30, 29, |
602 | 30, 94, 95, 96, 140, 30, 4, 5, 6, 7, | 623 | 66, 25, 27, 69, 34, 71, 30, 68, 33, 70, |
603 | 8, 9, 10, 11, 30, 31, 14, 15, 5, 6, | 624 | 105, 1, 155, 0, 1, 1, 3, 4, 5, 6, |
604 | 30, 8, 9, 10, 11, 30, 54, 14, 15, 57, | 625 | 7, 8, 9, 10, 11, 12, 30, 14, 15, 16, |
605 | 12, 59, 30, 31, 16, 17, 13, 19, 20, 21, | 626 | 17, 18, 19, 20, 21, 22, 23, 68, 25, 70, |
606 | 22, 23, 25, 30, 31, 24, 25, 26, 30, 30, | 627 | 25, 0, 1, 30, 3, 4, 5, 6, 7, 8, |
607 | 29, 32, 33, 28, 30, 31, 35, 32, 33, 30, | 628 | 9, 10, 11, 30, 30, 14, 15, 16, 17, 18, |
608 | 30, 32, 33, 30, 33, 32, 33, 56, 56, 58, | 629 | 19, 20, 21, 22, 23, 30, 25, 30, 30, 0, |
609 | 58, 25, 26, 25, 26, 32, 33, 30, 21, 30, | 630 | 1, 30, 3, 4, 5, 6, 7, 8, 9, 10, |
610 | 30, 30, 30, 30, 30, 30, 54, 88, -1, 33 | 631 | 11, 30, 30, 14, 15, 16, 30, 18, 19, 20, |
632 | 21, 22, 23, 1, 25, 30, 30, 5, 6, 30, | ||
633 | 8, 9, 10, 11, 12, 1, 14, 15, 16, 17, | ||
634 | 18, 19, 20, 21, 14, 5, 6, 25, 8, 9, | ||
635 | 10, 11, 30, 30, 14, 15, 142, 143, 144, 13, | ||
636 | 25, 31, 32, 149, 28, 151, 14, 31, 32, 32, | ||
637 | 30, 67, 68, 30, 70, 161, 67, 68, 30, 70, | ||
638 | 30, 31, 32, 30, 31, 32, 30, 31, 32, 30, | ||
639 | 31, 32, 30, 30, 30, 30, 30, 30, 30, 29, | ||
640 | 40, 59, -1, 106, 66 | ||
611 | }; | 641 | }; |
612 | 642 | ||
613 | /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing | 643 | /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing |
614 | symbol of state STATE-NUM. */ | 644 | symbol of state STATE-NUM. */ |
615 | static const unsigned char yystos[] = | 645 | static const unsigned char yystos[] = |
616 | { | 646 | { |
617 | 0, 37, 0, 1, 3, 4, 5, 6, 7, 8, | 647 | 0, 36, 37, 0, 1, 3, 4, 5, 6, 7, |
618 | 9, 10, 11, 14, 15, 30, 31, 38, 39, 40, | 648 | 8, 9, 10, 11, 14, 15, 16, 18, 19, 20, |
619 | 41, 42, 43, 46, 47, 49, 53, 55, 57, 58, | 649 | 21, 22, 23, 25, 30, 38, 39, 41, 42, 43, |
620 | 60, 62, 63, 64, 65, 73, 73, 25, 26, 71, | 650 | 44, 47, 48, 50, 54, 56, 58, 59, 61, 63, |
621 | 71, 71, 30, 71, 25, 25, 25, 26, 29, 35, | 651 | 64, 65, 72, 30, 25, 26, 71, 71, 30, 71, |
622 | 75, 76, 44, 44, 50, 52, 56, 68, 61, 68, | 652 | 30, 30, 71, 25, 25, 25, 26, 29, 34, 75, |
623 | 73, 30, 30, 30, 30, 30, 75, 75, 30, 32, | 653 | 76, 30, 1, 1, 45, 45, 51, 53, 57, 68, |
624 | 33, 27, 34, 12, 16, 17, 19, 20, 21, 22, | 654 | 62, 68, 30, 73, 30, 30, 30, 30, 30, 75, |
625 | 23, 30, 45, 66, 67, 69, 18, 19, 20, 21, | 655 | 75, 31, 32, 73, 27, 33, 30, 30, 1, 12, |
626 | 30, 51, 67, 69, 5, 8, 15, 39, 48, 72, | 656 | 16, 17, 19, 20, 21, 22, 23, 25, 30, 40, |
627 | 39, 49, 54, 60, 72, 30, 69, 1, 39, 49, | 657 | 46, 66, 67, 69, 18, 19, 20, 21, 30, 40, |
628 | 59, 60, 72, 28, 75, 75, 76, 76, 30, 24, | 658 | 52, 67, 69, 39, 49, 72, 39, 50, 55, 61, |
629 | 75, 75, 71, 70, 71, 75, 25, 76, 13, 30, | 659 | 72, 30, 40, 69, 39, 50, 60, 61, 72, 30, |
630 | 71, 70, 25, 73, 73, 73, 30, 75, 30, 30, | 660 | 28, 75, 75, 76, 76, 30, 30, 24, 75, 75, |
631 | 14, 74, 30, 74, 74, 74, 76, 74, 30, 74, | 661 | 71, 70, 71, 75, 25, 76, 1, 13, 30, 71, |
632 | 30, 75, 30, 30, 30, 74, 30, 30, 30 | 662 | 70, 25, 75, 30, 30, 14, 74, 30, 74, 74, |
663 | 74, 76, 30, 74, 30, 74, 30, 75, 30, 30, | ||
664 | 30, 74, 30, 30, 30 | ||
633 | }; | 665 | }; |
634 | 666 | ||
635 | #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) | 667 | #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) |
@@ -966,6 +998,36 @@ yydestruct (yymsg, yytype, yyvaluep) | |||
966 | 998 | ||
967 | switch (yytype) | 999 | switch (yytype) |
968 | { | 1000 | { |
1001 | case 48: /* choice_entry */ | ||
1002 | |||
1003 | { | ||
1004 | fprintf(stderr, "%s:%d: missing end statement for this entry\n", | ||
1005 | (yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno); | ||
1006 | if (current_menu == (yyvaluep->menu)) | ||
1007 | menu_end_menu(); | ||
1008 | }; | ||
1009 | |||
1010 | break; | ||
1011 | case 54: /* if_entry */ | ||
1012 | |||
1013 | { | ||
1014 | fprintf(stderr, "%s:%d: missing end statement for this entry\n", | ||
1015 | (yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno); | ||
1016 | if (current_menu == (yyvaluep->menu)) | ||
1017 | menu_end_menu(); | ||
1018 | }; | ||
1019 | |||
1020 | break; | ||
1021 | case 59: /* menu_entry */ | ||
1022 | |||
1023 | { | ||
1024 | fprintf(stderr, "%s:%d: missing end statement for this entry\n", | ||
1025 | (yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno); | ||
1026 | if (current_menu == (yyvaluep->menu)) | ||
1027 | menu_end_menu(); | ||
1028 | }; | ||
1029 | |||
1030 | break; | ||
969 | 1031 | ||
970 | default: | 1032 | default: |
971 | break; | 1033 | break; |
@@ -1271,25 +1333,37 @@ yyreduce: | |||
1271 | { | 1333 | { |
1272 | case 8: | 1334 | case 8: |
1273 | 1335 | ||
1274 | { zconfprint("unexpected 'endmenu' statement"); ;} | 1336 | { zconf_error("unexpected end statement"); ;} |
1275 | break; | 1337 | break; |
1276 | 1338 | ||
1277 | case 9: | 1339 | case 9: |
1278 | 1340 | ||
1279 | { zconfprint("unexpected 'endif' statement"); ;} | 1341 | { zconf_error("unknown statement \"%s\"", (yyvsp[-2].string)); ;} |
1280 | break; | 1342 | break; |
1281 | 1343 | ||
1282 | case 10: | 1344 | case 10: |
1283 | 1345 | ||
1284 | { zconfprint("unexpected 'endchoice' statement"); ;} | 1346 | { |
1347 | zconf_error("unexpected option \"%s\"", kconf_id_strings + (yyvsp[-2].id)->name); | ||
1348 | ;} | ||
1285 | break; | 1349 | break; |
1286 | 1350 | ||
1287 | case 11: | 1351 | case 11: |
1288 | 1352 | ||
1289 | { zconfprint("syntax error"); yyerrok; ;} | 1353 | { zconf_error("invalid statement"); ;} |
1290 | break; | 1354 | break; |
1291 | 1355 | ||
1292 | case 18: | 1356 | case 25: |
1357 | |||
1358 | { zconf_error("unknown option \"%s\"", (yyvsp[-2].string)); ;} | ||
1359 | break; | ||
1360 | |||
1361 | case 26: | ||
1362 | |||
1363 | { zconf_error("invalid option"); ;} | ||
1364 | break; | ||
1365 | |||
1366 | case 27: | ||
1293 | 1367 | ||
1294 | { | 1368 | { |
1295 | struct symbol *sym = sym_lookup((yyvsp[-1].string), 0); | 1369 | struct symbol *sym = sym_lookup((yyvsp[-1].string), 0); |
@@ -1299,7 +1373,7 @@ yyreduce: | |||
1299 | ;} | 1373 | ;} |
1300 | break; | 1374 | break; |
1301 | 1375 | ||
1302 | case 19: | 1376 | case 28: |
1303 | 1377 | ||
1304 | { | 1378 | { |
1305 | menu_end_entry(); | 1379 | menu_end_entry(); |
@@ -1307,7 +1381,7 @@ yyreduce: | |||
1307 | ;} | 1381 | ;} |
1308 | break; | 1382 | break; |
1309 | 1383 | ||
1310 | case 20: | 1384 | case 29: |
1311 | 1385 | ||
1312 | { | 1386 | { |
1313 | struct symbol *sym = sym_lookup((yyvsp[-1].string), 0); | 1387 | struct symbol *sym = sym_lookup((yyvsp[-1].string), 0); |
@@ -1317,7 +1391,7 @@ yyreduce: | |||
1317 | ;} | 1391 | ;} |
1318 | break; | 1392 | break; |
1319 | 1393 | ||
1320 | case 21: | 1394 | case 30: |
1321 | 1395 | ||
1322 | { | 1396 | { |
1323 | if (current_entry->prompt) | 1397 | if (current_entry->prompt) |
@@ -1329,7 +1403,7 @@ yyreduce: | |||
1329 | ;} | 1403 | ;} |
1330 | break; | 1404 | break; |
1331 | 1405 | ||
1332 | case 27: | 1406 | case 37: |
1333 | 1407 | ||
1334 | { | 1408 | { |
1335 | menu_set_type((yyvsp[-2].id)->stype); | 1409 | menu_set_type((yyvsp[-2].id)->stype); |
@@ -1339,7 +1413,7 @@ yyreduce: | |||
1339 | ;} | 1413 | ;} |
1340 | break; | 1414 | break; |
1341 | 1415 | ||
1342 | case 28: | 1416 | case 38: |
1343 | 1417 | ||
1344 | { | 1418 | { |
1345 | menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr)); | 1419 | menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr)); |
@@ -1347,7 +1421,7 @@ yyreduce: | |||
1347 | ;} | 1421 | ;} |
1348 | break; | 1422 | break; |
1349 | 1423 | ||
1350 | case 29: | 1424 | case 39: |
1351 | 1425 | ||
1352 | { | 1426 | { |
1353 | menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr)); | 1427 | menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr)); |
@@ -1359,7 +1433,7 @@ yyreduce: | |||
1359 | ;} | 1433 | ;} |
1360 | break; | 1434 | break; |
1361 | 1435 | ||
1362 | case 30: | 1436 | case 40: |
1363 | 1437 | ||
1364 | { | 1438 | { |
1365 | menu_add_symbol(P_SELECT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr)); | 1439 | menu_add_symbol(P_SELECT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr)); |
@@ -1367,7 +1441,7 @@ yyreduce: | |||
1367 | ;} | 1441 | ;} |
1368 | break; | 1442 | break; |
1369 | 1443 | ||
1370 | case 31: | 1444 | case 41: |
1371 | 1445 | ||
1372 | { | 1446 | { |
1373 | menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[-3].symbol), (yyvsp[-2].symbol)), (yyvsp[-1].expr)); | 1447 | menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[-3].symbol), (yyvsp[-2].symbol)), (yyvsp[-1].expr)); |
@@ -1375,7 +1449,7 @@ yyreduce: | |||
1375 | ;} | 1449 | ;} |
1376 | break; | 1450 | break; |
1377 | 1451 | ||
1378 | case 32: | 1452 | case 42: |
1379 | 1453 | ||
1380 | { | 1454 | { |
1381 | struct symbol *sym = sym_lookup(NULL, 0); | 1455 | struct symbol *sym = sym_lookup(NULL, 0); |
@@ -1386,33 +1460,24 @@ yyreduce: | |||
1386 | ;} | 1460 | ;} |
1387 | break; | 1461 | break; |
1388 | 1462 | ||
1389 | case 33: | 1463 | case 43: |
1390 | 1464 | ||
1391 | { | 1465 | { |
1392 | menu_end_entry(); | 1466 | (yyval.menu) = menu_add_menu(); |
1393 | menu_add_menu(); | ||
1394 | ;} | 1467 | ;} |
1395 | break; | 1468 | break; |
1396 | 1469 | ||
1397 | case 34: | 1470 | case 44: |
1398 | 1471 | ||
1399 | { | 1472 | { |
1400 | if (zconf_endtoken((yyvsp[0].token), T_CHOICE, T_ENDCHOICE)) { | 1473 | if (zconf_endtoken((yyvsp[0].id), T_CHOICE, T_ENDCHOICE)) { |
1401 | menu_end_menu(); | 1474 | menu_end_menu(); |
1402 | printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno()); | 1475 | printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno()); |
1403 | } | 1476 | } |
1404 | ;} | 1477 | ;} |
1405 | break; | 1478 | break; |
1406 | 1479 | ||
1407 | case 36: | 1480 | case 52: |
1408 | |||
1409 | { | ||
1410 | printf("%s:%d: missing 'endchoice' for this 'choice' statement\n", current_menu->file->name, current_menu->lineno); | ||
1411 | zconfnerrs++; | ||
1412 | ;} | ||
1413 | break; | ||
1414 | |||
1415 | case 42: | ||
1416 | 1481 | ||
1417 | { | 1482 | { |
1418 | menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr)); | 1483 | menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr)); |
@@ -1420,7 +1485,7 @@ yyreduce: | |||
1420 | ;} | 1485 | ;} |
1421 | break; | 1486 | break; |
1422 | 1487 | ||
1423 | case 43: | 1488 | case 53: |
1424 | 1489 | ||
1425 | { | 1490 | { |
1426 | if ((yyvsp[-2].id)->stype == S_BOOLEAN || (yyvsp[-2].id)->stype == S_TRISTATE) { | 1491 | if ((yyvsp[-2].id)->stype == S_BOOLEAN || (yyvsp[-2].id)->stype == S_TRISTATE) { |
@@ -1433,7 +1498,7 @@ yyreduce: | |||
1433 | ;} | 1498 | ;} |
1434 | break; | 1499 | break; |
1435 | 1500 | ||
1436 | case 44: | 1501 | case 54: |
1437 | 1502 | ||
1438 | { | 1503 | { |
1439 | current_entry->sym->flags |= SYMBOL_OPTIONAL; | 1504 | current_entry->sym->flags |= SYMBOL_OPTIONAL; |
@@ -1441,7 +1506,7 @@ yyreduce: | |||
1441 | ;} | 1506 | ;} |
1442 | break; | 1507 | break; |
1443 | 1508 | ||
1444 | case 45: | 1509 | case 55: |
1445 | 1510 | ||
1446 | { | 1511 | { |
1447 | if ((yyvsp[-3].id)->stype == S_UNKNOWN) { | 1512 | if ((yyvsp[-3].id)->stype == S_UNKNOWN) { |
@@ -1453,36 +1518,27 @@ yyreduce: | |||
1453 | ;} | 1518 | ;} |
1454 | break; | 1519 | break; |
1455 | 1520 | ||
1456 | case 48: | 1521 | case 58: |
1457 | 1522 | ||
1458 | { | 1523 | { |
1459 | printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno()); | 1524 | printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno()); |
1460 | menu_add_entry(NULL); | 1525 | menu_add_entry(NULL); |
1461 | menu_add_dep((yyvsp[-1].expr)); | 1526 | menu_add_dep((yyvsp[-1].expr)); |
1462 | menu_end_entry(); | 1527 | (yyval.menu) = menu_add_menu(); |
1463 | menu_add_menu(); | ||
1464 | ;} | 1528 | ;} |
1465 | break; | 1529 | break; |
1466 | 1530 | ||
1467 | case 49: | 1531 | case 59: |
1468 | 1532 | ||
1469 | { | 1533 | { |
1470 | if (zconf_endtoken((yyvsp[0].token), T_IF, T_ENDIF)) { | 1534 | if (zconf_endtoken((yyvsp[0].id), T_IF, T_ENDIF)) { |
1471 | menu_end_menu(); | 1535 | menu_end_menu(); |
1472 | printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno()); | 1536 | printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno()); |
1473 | } | 1537 | } |
1474 | ;} | 1538 | ;} |
1475 | break; | 1539 | break; |
1476 | 1540 | ||
1477 | case 51: | 1541 | case 65: |
1478 | |||
1479 | { | ||
1480 | printf("%s:%d: missing 'endif' for this 'if' statement\n", current_menu->file->name, current_menu->lineno); | ||
1481 | zconfnerrs++; | ||
1482 | ;} | ||
1483 | break; | ||
1484 | |||
1485 | case 56: | ||
1486 | 1542 | ||
1487 | { | 1543 | { |
1488 | menu_add_entry(NULL); | 1544 | menu_add_entry(NULL); |
@@ -1491,53 +1547,32 @@ yyreduce: | |||
1491 | ;} | 1547 | ;} |
1492 | break; | 1548 | break; |
1493 | 1549 | ||
1494 | case 57: | 1550 | case 66: |
1495 | 1551 | ||
1496 | { | 1552 | { |
1497 | menu_end_entry(); | 1553 | (yyval.menu) = menu_add_menu(); |
1498 | menu_add_menu(); | ||
1499 | ;} | 1554 | ;} |
1500 | break; | 1555 | break; |
1501 | 1556 | ||
1502 | case 58: | 1557 | case 67: |
1503 | 1558 | ||
1504 | { | 1559 | { |
1505 | if (zconf_endtoken((yyvsp[0].token), T_MENU, T_ENDMENU)) { | 1560 | if (zconf_endtoken((yyvsp[0].id), T_MENU, T_ENDMENU)) { |
1506 | menu_end_menu(); | 1561 | menu_end_menu(); |
1507 | printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno()); | 1562 | printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno()); |
1508 | } | 1563 | } |
1509 | ;} | 1564 | ;} |
1510 | break; | 1565 | break; |
1511 | 1566 | ||
1512 | case 60: | 1567 | case 73: |
1513 | 1568 | ||
1514 | { | 1569 | { |
1515 | printf("%s:%d: missing 'endmenu' for this 'menu' statement\n", current_menu->file->name, current_menu->lineno); | ||
1516 | zconfnerrs++; | ||
1517 | ;} | ||
1518 | break; | ||
1519 | |||
1520 | case 65: | ||
1521 | |||
1522 | { zconfprint("invalid menu option"); yyerrok; ;} | ||
1523 | break; | ||
1524 | |||
1525 | case 66: | ||
1526 | |||
1527 | { | ||
1528 | (yyval.string) = (yyvsp[-1].string); | ||
1529 | printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string)); | 1570 | printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string)); |
1571 | zconf_nextfile((yyvsp[-1].string)); | ||
1530 | ;} | 1572 | ;} |
1531 | break; | 1573 | break; |
1532 | 1574 | ||
1533 | case 67: | 1575 | case 74: |
1534 | |||
1535 | { | ||
1536 | zconf_nextfile((yyvsp[0].string)); | ||
1537 | ;} | ||
1538 | break; | ||
1539 | |||
1540 | case 68: | ||
1541 | 1576 | ||
1542 | { | 1577 | { |
1543 | menu_add_entry(NULL); | 1578 | menu_add_entry(NULL); |
@@ -1546,14 +1581,14 @@ yyreduce: | |||
1546 | ;} | 1581 | ;} |
1547 | break; | 1582 | break; |
1548 | 1583 | ||
1549 | case 69: | 1584 | case 75: |
1550 | 1585 | ||
1551 | { | 1586 | { |
1552 | menu_end_entry(); | 1587 | menu_end_entry(); |
1553 | ;} | 1588 | ;} |
1554 | break; | 1589 | break; |
1555 | 1590 | ||
1556 | case 70: | 1591 | case 76: |
1557 | 1592 | ||
1558 | { | 1593 | { |
1559 | printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno()); | 1594 | printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno()); |
@@ -1561,14 +1596,14 @@ yyreduce: | |||
1561 | ;} | 1596 | ;} |
1562 | break; | 1597 | break; |
1563 | 1598 | ||
1564 | case 71: | 1599 | case 77: |
1565 | 1600 | ||
1566 | { | 1601 | { |
1567 | current_entry->sym->help = (yyvsp[0].string); | 1602 | current_entry->sym->help = (yyvsp[0].string); |
1568 | ;} | 1603 | ;} |
1569 | break; | 1604 | break; |
1570 | 1605 | ||
1571 | case 75: | 1606 | case 82: |
1572 | 1607 | ||
1573 | { | 1608 | { |
1574 | menu_add_dep((yyvsp[-1].expr)); | 1609 | menu_add_dep((yyvsp[-1].expr)); |
@@ -1576,7 +1611,7 @@ yyreduce: | |||
1576 | ;} | 1611 | ;} |
1577 | break; | 1612 | break; |
1578 | 1613 | ||
1579 | case 76: | 1614 | case 83: |
1580 | 1615 | ||
1581 | { | 1616 | { |
1582 | menu_add_dep((yyvsp[-1].expr)); | 1617 | menu_add_dep((yyvsp[-1].expr)); |
@@ -1584,7 +1619,7 @@ yyreduce: | |||
1584 | ;} | 1619 | ;} |
1585 | break; | 1620 | break; |
1586 | 1621 | ||
1587 | case 77: | 1622 | case 84: |
1588 | 1623 | ||
1589 | { | 1624 | { |
1590 | menu_add_dep((yyvsp[-1].expr)); | 1625 | menu_add_dep((yyvsp[-1].expr)); |
@@ -1592,79 +1627,79 @@ yyreduce: | |||
1592 | ;} | 1627 | ;} |
1593 | break; | 1628 | break; |
1594 | 1629 | ||
1595 | case 79: | 1630 | case 86: |
1596 | 1631 | ||
1597 | { | 1632 | { |
1598 | menu_add_prompt(P_PROMPT, (yyvsp[-1].string), (yyvsp[0].expr)); | 1633 | menu_add_prompt(P_PROMPT, (yyvsp[-1].string), (yyvsp[0].expr)); |
1599 | ;} | 1634 | ;} |
1600 | break; | 1635 | break; |
1601 | 1636 | ||
1602 | case 82: | 1637 | case 89: |
1603 | 1638 | ||
1604 | { (yyval.token) = T_ENDMENU; ;} | 1639 | { (yyval.id) = (yyvsp[-1].id); ;} |
1605 | break; | 1640 | break; |
1606 | 1641 | ||
1607 | case 83: | 1642 | case 90: |
1608 | 1643 | ||
1609 | { (yyval.token) = T_ENDCHOICE; ;} | 1644 | { (yyval.id) = (yyvsp[-1].id); ;} |
1610 | break; | 1645 | break; |
1611 | 1646 | ||
1612 | case 84: | 1647 | case 91: |
1613 | 1648 | ||
1614 | { (yyval.token) = T_ENDIF; ;} | 1649 | { (yyval.id) = (yyvsp[-1].id); ;} |
1615 | break; | 1650 | break; |
1616 | 1651 | ||
1617 | case 87: | 1652 | case 94: |
1618 | 1653 | ||
1619 | { (yyval.expr) = NULL; ;} | 1654 | { (yyval.expr) = NULL; ;} |
1620 | break; | 1655 | break; |
1621 | 1656 | ||
1622 | case 88: | 1657 | case 95: |
1623 | 1658 | ||
1624 | { (yyval.expr) = (yyvsp[0].expr); ;} | 1659 | { (yyval.expr) = (yyvsp[0].expr); ;} |
1625 | break; | 1660 | break; |
1626 | 1661 | ||
1627 | case 89: | 1662 | case 96: |
1628 | 1663 | ||
1629 | { (yyval.expr) = expr_alloc_symbol((yyvsp[0].symbol)); ;} | 1664 | { (yyval.expr) = expr_alloc_symbol((yyvsp[0].symbol)); ;} |
1630 | break; | 1665 | break; |
1631 | 1666 | ||
1632 | case 90: | 1667 | case 97: |
1633 | 1668 | ||
1634 | { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); ;} | 1669 | { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); ;} |
1635 | break; | 1670 | break; |
1636 | 1671 | ||
1637 | case 91: | 1672 | case 98: |
1638 | 1673 | ||
1639 | { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); ;} | 1674 | { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); ;} |
1640 | break; | 1675 | break; |
1641 | 1676 | ||
1642 | case 92: | 1677 | case 99: |
1643 | 1678 | ||
1644 | { (yyval.expr) = (yyvsp[-1].expr); ;} | 1679 | { (yyval.expr) = (yyvsp[-1].expr); ;} |
1645 | break; | 1680 | break; |
1646 | 1681 | ||
1647 | case 93: | 1682 | case 100: |
1648 | 1683 | ||
1649 | { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[0].expr)); ;} | 1684 | { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[0].expr)); ;} |
1650 | break; | 1685 | break; |
1651 | 1686 | ||
1652 | case 94: | 1687 | case 101: |
1653 | 1688 | ||
1654 | { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} | 1689 | { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} |
1655 | break; | 1690 | break; |
1656 | 1691 | ||
1657 | case 95: | 1692 | case 102: |
1658 | 1693 | ||
1659 | { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} | 1694 | { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} |
1660 | break; | 1695 | break; |
1661 | 1696 | ||
1662 | case 96: | 1697 | case 103: |
1663 | 1698 | ||
1664 | { (yyval.symbol) = sym_lookup((yyvsp[0].string), 0); free((yyvsp[0].string)); ;} | 1699 | { (yyval.symbol) = sym_lookup((yyvsp[0].string), 0); free((yyvsp[0].string)); ;} |
1665 | break; | 1700 | break; |
1666 | 1701 | ||
1667 | case 97: | 1702 | case 104: |
1668 | 1703 | ||
1669 | { (yyval.symbol) = sym_lookup((yyvsp[0].string), 1); free((yyvsp[0].string)); ;} | 1704 | { (yyval.symbol) = sym_lookup((yyvsp[0].string), 1); free((yyvsp[0].string)); ;} |
1670 | break; | 1705 | break; |
@@ -1916,7 +1951,10 @@ void conf_parse(const char *name) | |||
1916 | modules_sym = sym_lookup("MODULES", 0); | 1951 | modules_sym = sym_lookup("MODULES", 0); |
1917 | rootmenu.prompt = menu_add_prompt(P_MENU, "Linux Kernel Configuration", NULL); | 1952 | rootmenu.prompt = menu_add_prompt(P_MENU, "Linux Kernel Configuration", NULL); |
1918 | 1953 | ||
1919 | //zconfdebug = 1; | 1954 | #if YYDEBUG |
1955 | if (getenv("ZCONF_DEBUG")) | ||
1956 | zconfdebug = 1; | ||
1957 | #endif | ||
1920 | zconfparse(); | 1958 | zconfparse(); |
1921 | if (zconfnerrs) | 1959 | if (zconfnerrs) |
1922 | exit(1); | 1960 | exit(1); |
@@ -1937,20 +1975,25 @@ const char *zconf_tokenname(int token) | |||
1937 | case T_ENDCHOICE: return "endchoice"; | 1975 | case T_ENDCHOICE: return "endchoice"; |
1938 | case T_IF: return "if"; | 1976 | case T_IF: return "if"; |
1939 | case T_ENDIF: return "endif"; | 1977 | case T_ENDIF: return "endif"; |
1978 | case T_DEPENDS: return "depends"; | ||
1940 | } | 1979 | } |
1941 | return "<token>"; | 1980 | return "<token>"; |
1942 | } | 1981 | } |
1943 | 1982 | ||
1944 | static bool zconf_endtoken(int token, int starttoken, int endtoken) | 1983 | static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken) |
1945 | { | 1984 | { |
1946 | if (token != endtoken) { | 1985 | if (id->token != endtoken) { |
1947 | zconfprint("unexpected '%s' within %s block", zconf_tokenname(token), zconf_tokenname(starttoken)); | 1986 | zconf_error("unexpected '%s' within %s block", |
1987 | kconf_id_strings + id->name, zconf_tokenname(starttoken)); | ||
1948 | zconfnerrs++; | 1988 | zconfnerrs++; |
1949 | return false; | 1989 | return false; |
1950 | } | 1990 | } |
1951 | if (current_menu->file != current_file) { | 1991 | if (current_menu->file != current_file) { |
1952 | zconfprint("'%s' in different file than '%s'", zconf_tokenname(token), zconf_tokenname(starttoken)); | 1992 | zconf_error("'%s' in different file than '%s'", |
1953 | zconfprint("location of the '%s'", zconf_tokenname(starttoken)); | 1993 | kconf_id_strings + id->name, zconf_tokenname(starttoken)); |
1994 | fprintf(stderr, "%s:%d: location of the '%s'\n", | ||
1995 | current_menu->file->name, current_menu->lineno, | ||
1996 | zconf_tokenname(starttoken)); | ||
1954 | zconfnerrs++; | 1997 | zconfnerrs++; |
1955 | return false; | 1998 | return false; |
1956 | } | 1999 | } |
@@ -1961,7 +2004,19 @@ static void zconfprint(const char *err, ...) | |||
1961 | { | 2004 | { |
1962 | va_list ap; | 2005 | va_list ap; |
1963 | 2006 | ||
1964 | fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno() + 1); | 2007 | fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno()); |
2008 | va_start(ap, err); | ||
2009 | vfprintf(stderr, err, ap); | ||
2010 | va_end(ap); | ||
2011 | fprintf(stderr, "\n"); | ||
2012 | } | ||
2013 | |||
2014 | static void zconf_error(const char *err, ...) | ||
2015 | { | ||
2016 | va_list ap; | ||
2017 | |||
2018 | zconfnerrs++; | ||
2019 | fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno()); | ||
1965 | va_start(ap, err); | 2020 | va_start(ap, err); |
1966 | vfprintf(stderr, err, ap); | 2021 | vfprintf(stderr, err, ap); |
1967 | va_end(ap); | 2022 | va_end(ap); |
@@ -1970,7 +2025,9 @@ static void zconfprint(const char *err, ...) | |||
1970 | 2025 | ||
1971 | static void zconferror(const char *err) | 2026 | static void zconferror(const char *err) |
1972 | { | 2027 | { |
2028 | #if YYDEBUG | ||
1973 | fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err); | 2029 | fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err); |
2030 | #endif | ||
1974 | } | 2031 | } |
1975 | 2032 | ||
1976 | void print_quoted_string(FILE *out, const char *str) | 2033 | void print_quoted_string(FILE *out, const char *str) |