diff options
Diffstat (limited to 'scripts/config/zconf.tab.c_shipped')
-rw-r--r-- | scripts/config/zconf.tab.c_shipped | 1346 |
1 files changed, 728 insertions, 618 deletions
diff --git a/scripts/config/zconf.tab.c_shipped b/scripts/config/zconf.tab.c_shipped index 33b2b6f84..c9bfdb451 100644 --- a/scripts/config/zconf.tab.c_shipped +++ b/scripts/config/zconf.tab.c_shipped @@ -1,7 +1,7 @@ -/* A Bison parser, made from zconf.y, by GNU bison 1.75. */ +/* A Bison parser, made by GNU Bison 1.875a. */ /* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -34,10 +34,13 @@ USER NAME SPACE" below. */ /* Identify Bison output. */ -#define YYBISON 1 +#define YYBISON 1 + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ -#define YYPURE 0 +#define YYPURE 0 /* Using locations. */ #define YYLSP_NEEDED 0 @@ -67,31 +70,37 @@ T_ENDCHOICE = 263, T_COMMENT = 264, T_CONFIG = 265, - T_HELP = 266, - T_HELPTEXT = 267, - T_IF = 268, - T_ENDIF = 269, - T_DEPENDS = 270, - T_REQUIRES = 271, - T_OPTIONAL = 272, - T_PROMPT = 273, - T_DEFAULT = 274, - T_TRISTATE = 275, - T_BOOLEAN = 276, - T_INT = 277, - T_HEX = 278, - T_WORD = 279, + T_MENUCONFIG = 266, + T_HELP = 267, + T_HELPTEXT = 268, + T_IF = 269, + T_ENDIF = 270, + T_DEPENDS = 271, + T_REQUIRES = 272, + T_OPTIONAL = 273, + T_PROMPT = 274, + T_DEFAULT = 275, + T_TRISTATE = 276, + T_DEF_TRISTATE = 277, + T_BOOLEAN = 278, + T_DEF_BOOLEAN = 279, T_STRING = 280, - T_UNEQUAL = 281, - T_EOF = 282, - T_EOL = 283, - T_CLOSE_PAREN = 284, - T_OPEN_PAREN = 285, - T_ON = 286, - T_OR = 287, - T_AND = 288, - T_EQUAL = 289, - T_NOT = 290 + T_INT = 281, + T_HEX = 282, + T_WORD = 283, + T_WORD_QUOTE = 284, + T_UNEQUAL = 285, + T_EOF = 286, + T_EOL = 287, + T_CLOSE_PAREN = 288, + T_OPEN_PAREN = 289, + T_ON = 290, + T_SELECT = 291, + T_RANGE = 292, + T_OR = 293, + T_AND = 294, + T_EQUAL = 295, + T_NOT = 296 }; #endif #define T_MAINMENU 258 @@ -102,37 +111,43 @@ #define T_ENDCHOICE 263 #define T_COMMENT 264 #define T_CONFIG 265 -#define T_HELP 266 -#define T_HELPTEXT 267 -#define T_IF 268 -#define T_ENDIF 269 -#define T_DEPENDS 270 -#define T_REQUIRES 271 -#define T_OPTIONAL 272 -#define T_PROMPT 273 -#define T_DEFAULT 274 -#define T_TRISTATE 275 -#define T_BOOLEAN 276 -#define T_INT 277 -#define T_HEX 278 -#define T_WORD 279 +#define T_MENUCONFIG 266 +#define T_HELP 267 +#define T_HELPTEXT 268 +#define T_IF 269 +#define T_ENDIF 270 +#define T_DEPENDS 271 +#define T_REQUIRES 272 +#define T_OPTIONAL 273 +#define T_PROMPT 274 +#define T_DEFAULT 275 +#define T_TRISTATE 276 +#define T_DEF_TRISTATE 277 +#define T_BOOLEAN 278 +#define T_DEF_BOOLEAN 279 #define T_STRING 280 -#define T_UNEQUAL 281 -#define T_EOF 282 -#define T_EOL 283 -#define T_CLOSE_PAREN 284 -#define T_OPEN_PAREN 285 -#define T_ON 286 -#define T_OR 287 -#define T_AND 288 -#define T_EQUAL 289 -#define T_NOT 290 +#define T_INT 281 +#define T_HEX 282 +#define T_WORD 283 +#define T_WORD_QUOTE 284 +#define T_UNEQUAL 285 +#define T_EOF 286 +#define T_EOL 287 +#define T_CLOSE_PAREN 288 +#define T_OPEN_PAREN 289 +#define T_ON 290 +#define T_SELECT 291 +#define T_RANGE 292 +#define T_OR 293 +#define T_AND 294 +#define T_EQUAL 295 +#define T_NOT 296 /* Copy the first part of user declarations. */ -#line 1 "zconf.y" + /* * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org> @@ -165,7 +180,7 @@ struct symbol *symbol_hash[257]; /* Enabling traces. */ #ifndef YYDEBUG -# define YYDEBUG 1 +# define YYDEBUG 0 #endif /* Enabling verbose error messages. */ @@ -176,42 +191,33 @@ struct symbol *symbol_hash[257]; # define YYERROR_VERBOSE 0 #endif -#ifndef YYSTYPE -#line 33 "zconf.y" -typedef union { +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) + +typedef union YYSTYPE { int token; char *string; struct symbol *symbol; struct expr *expr; struct menu *menu; -} yystype; -/* Line 193 of /usr/share/bison/yacc.c. */ -#line 190 "zconf.tab.c" -# define YYSTYPE yystype +} YYSTYPE; +/* Line 191 of yacc.c. */ + +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif -#ifndef YYLTYPE -typedef struct yyltype -{ - int first_line; - int first_column; - int last_line; - int last_column; -} yyltype; -# define YYLTYPE yyltype -# define YYLTYPE_IS_TRIVIAL 1 -#endif + /* Copy the second part of user declarations. */ -#line 83 "zconf.y" + #define LKC_DIRECT_LINK #include "lkc.h" -/* Line 213 of /usr/share/bison/yacc.c. */ -#line 215 "zconf.tab.c" +/* Line 214 of yacc.c. */ + #if ! defined (yyoverflow) || YYERROR_VERBOSE @@ -247,7 +253,7 @@ typedef struct yyltype #if (! defined (yyoverflow) \ && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@ -257,13 +263,13 @@ union yyalloc }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) + + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ @@ -277,7 +283,7 @@ union yyalloc { \ register YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ + (To)[yyi] = (From)[yyi]; \ } \ while (0) # endif @@ -294,7 +300,7 @@ union yyalloc YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) @@ -309,23 +315,24 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 -#define YYLAST 151 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 201 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 36 +#define YYNTOKENS 42 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 39 +#define YYNNTS 41 /* YYNRULES -- Number of rules. */ -#define YYNRULES 96 +#define YYNRULES 104 /* YYNRULES -- Number of states. */ -#define YYNSTATES 145 +#define YYNSTATES 182 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 290 +#define YYMAXUTOK 296 -#define YYTRANSLATE(X) \ - ((unsigned)(X) <= YYMAXUTOK ? yytranslate[X] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const unsigned char yytranslate[] = @@ -359,7 +366,7 @@ static const unsigned char yytranslate[] = 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35 + 35, 36, 37, 38, 39, 40, 41 }; #if YYDEBUG @@ -368,63 +375,69 @@ static const unsigned char yytranslate[] = static const unsigned short yyprhs[] = { 0, 0, 3, 4, 7, 9, 11, 13, 17, 19, - 21, 23, 26, 28, 30, 32, 34, 36, 39, 43, - 44, 48, 52, 55, 58, 61, 64, 67, 70, 73, - 77, 81, 83, 87, 89, 94, 97, 98, 102, 106, - 109, 112, 116, 118, 121, 122, 125, 128, 130, 136, - 140, 141, 144, 147, 150, 153, 157, 159, 164, 167, - 168, 171, 174, 177, 181, 184, 187, 190, 194, 197, - 200, 201, 205, 208, 212, 215, 218, 219, 221, 225, - 227, 229, 231, 233, 235, 237, 239, 240, 243, 245, - 249, 253, 257, 260, 264, 268, 270 + 21, 23, 26, 28, 30, 32, 34, 36, 38, 42, + 45, 49, 52, 53, 56, 59, 62, 65, 69, 74, + 78, 83, 87, 91, 95, 100, 105, 110, 116, 119, + 122, 124, 128, 131, 132, 135, 138, 141, 144, 149, + 153, 157, 160, 165, 166, 169, 173, 175, 179, 182, + 183, 186, 189, 192, 196, 199, 201, 205, 208, 209, + 212, 215, 218, 222, 226, 228, 232, 235, 238, 241, + 242, 245, 248, 253, 257, 261, 262, 265, 267, 269, + 272, 275, 278, 280, 282, 283, 286, 288, 292, 296, + 300, 303, 307, 311, 313 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yysigned_char yyrhs[] = { - 37, 0, -1, -1, 37, 38, -1, 39, -1, 47, - -1, 58, -1, 3, 69, 71, -1, 5, -1, 14, - -1, 8, -1, 1, 71, -1, 53, -1, 63, -1, - 41, -1, 61, -1, 71, -1, 10, 24, -1, 40, - 28, 42, -1, -1, 42, 43, 28, -1, 42, 67, - 28, -1, 42, 65, -1, 42, 28, -1, 20, 68, - -1, 21, 68, -1, 22, 68, -1, 23, 68, -1, - 25, 68, -1, 18, 69, 72, -1, 19, 74, 72, - -1, 7, -1, 44, 28, 48, -1, 70, -1, 45, - 50, 46, 28, -1, 45, 50, -1, -1, 48, 49, - 28, -1, 48, 67, 28, -1, 48, 65, -1, 48, - 28, -1, 18, 69, 72, -1, 17, -1, 19, 74, - -1, -1, 50, 39, -1, 13, 73, -1, 70, -1, - 51, 28, 54, 52, 28, -1, 51, 28, 54, -1, - -1, 54, 39, -1, 54, 58, -1, 54, 47, -1, - 4, 69, -1, 55, 28, 66, -1, 70, -1, 56, - 59, 57, 28, -1, 56, 59, -1, -1, 59, 39, - -1, 59, 58, -1, 59, 47, -1, 59, 1, 28, - -1, 6, 69, -1, 60, 28, -1, 9, 69, -1, - 62, 28, 66, -1, 11, 28, -1, 64, 12, -1, - -1, 66, 67, 28, -1, 66, 28, -1, 15, 31, - 73, -1, 15, 73, -1, 16, 73, -1, -1, 69, - -1, 69, 13, 73, -1, 24, -1, 25, -1, 5, - -1, 8, -1, 14, -1, 28, -1, 27, -1, -1, - 13, 73, -1, 74, -1, 74, 34, 74, -1, 74, - 26, 74, -1, 30, 73, 29, -1, 35, 73, -1, - 73, 32, 73, -1, 73, 33, 73, -1, 24, -1, - 25, -1 + 43, 0, -1, -1, 43, 44, -1, 45, -1, 55, + -1, 66, -1, 3, 77, 79, -1, 5, -1, 15, + -1, 8, -1, 1, 79, -1, 61, -1, 71, -1, + 47, -1, 49, -1, 69, -1, 79, -1, 10, 28, + 32, -1, 46, 50, -1, 11, 28, 32, -1, 48, + 50, -1, -1, 50, 51, -1, 50, 75, -1, 50, + 73, -1, 50, 32, -1, 21, 76, 32, -1, 22, + 81, 80, 32, -1, 23, 76, 32, -1, 24, 81, + 80, 32, -1, 26, 76, 32, -1, 27, 76, 32, + -1, 25, 76, 32, -1, 19, 77, 80, 32, -1, + 20, 81, 80, 32, -1, 36, 28, 80, 32, -1, + 37, 82, 82, 80, 32, -1, 7, 32, -1, 52, + 56, -1, 78, -1, 53, 58, 54, -1, 53, 58, + -1, -1, 56, 57, -1, 56, 75, -1, 56, 73, + -1, 56, 32, -1, 19, 77, 80, 32, -1, 21, + 76, 32, -1, 23, 76, 32, -1, 18, 32, -1, + 20, 28, 80, 32, -1, -1, 58, 45, -1, 14, + 81, 32, -1, 78, -1, 59, 62, 60, -1, 59, + 62, -1, -1, 62, 45, -1, 62, 66, -1, 62, + 55, -1, 4, 77, 32, -1, 63, 74, -1, 78, + -1, 64, 67, 65, -1, 64, 67, -1, -1, 67, + 45, -1, 67, 66, -1, 67, 55, -1, 67, 1, + 32, -1, 6, 77, 32, -1, 68, -1, 9, 77, + 32, -1, 70, 74, -1, 12, 32, -1, 72, 13, + -1, -1, 74, 75, -1, 74, 32, -1, 16, 35, + 81, 32, -1, 16, 81, 32, -1, 17, 81, 32, + -1, -1, 77, 80, -1, 28, -1, 29, -1, 5, + 79, -1, 8, 79, -1, 15, 79, -1, 32, -1, + 31, -1, -1, 14, 81, -1, 82, -1, 82, 40, + 82, -1, 82, 30, 82, -1, 34, 81, 33, -1, + 41, 81, -1, 81, 38, 81, -1, 81, 39, 81, + -1, 28, -1, 29, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short yyrline[] = { - 0, 88, 88, 89, 92, 93, 94, 95, 96, 97, - 98, 99, 102, 104, 105, 106, 107, 113, 121, 127, - 129, 130, 131, 132, 135, 141, 147, 153, 159, 165, - 171, 179, 188, 194, 202, 204, 210, 212, 213, 214, - 215, 218, 224, 230, 237, 239, 244, 254, 262, 264, - 270, 272, 273, 274, 279, 286, 292, 300, 302, 308, - 310, 311, 312, 313, 316, 322, 329, 336, 343, 349, - 356, 357, 358, 361, 366, 371, 379, 381, 385, 390, - 391, 394, 395, 396, 399, 400, 402, 403, 406, 407, - 408, 409, 410, 411, 412, 415, 416 + 0, 94, 94, 95, 98, 99, 100, 101, 102, 103, + 104, 105, 109, 110, 111, 112, 113, 114, 120, 128, + 134, 142, 152, 154, 155, 156, 157, 160, 166, 173, + 179, 186, 192, 198, 204, 210, 216, 222, 230, 239, + 245, 254, 255, 261, 263, 264, 265, 266, 269, 275, + 281, 287, 293, 299, 301, 306, 315, 324, 325, 331, + 333, 334, 335, 340, 347, 353, 362, 363, 369, 371, + 372, 373, 374, 377, 383, 390, 397, 404, 410, 417, + 418, 419, 422, 427, 432, 440, 442, 447, 448, 451, + 452, 453, 457, 457, 459, 460, 463, 464, 465, 466, + 467, 468, 469, 472, 473 }; #endif @@ -435,12 +448,14 @@ static const char *const yytname[] = { "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU", "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG", - "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS", "T_REQUIRES", - "T_OPTIONAL", "T_PROMPT", "T_DEFAULT", "T_TRISTATE", "T_BOOLEAN", - "T_INT", "T_HEX", "T_WORD", "T_STRING", "T_UNEQUAL", "T_EOF", "T_EOL", - "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_OR", "T_AND", "T_EQUAL", - "T_NOT", "$accept", "input", "block", "common_block", - "config_entry_start", "config_stmt", "config_option_list", + "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS", + "T_REQUIRES", "T_OPTIONAL", "T_PROMPT", "T_DEFAULT", "T_TRISTATE", + "T_DEF_TRISTATE", "T_BOOLEAN", "T_DEF_BOOLEAN", "T_STRING", "T_INT", + "T_HEX", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL", "T_EOF", "T_EOL", + "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_SELECT", "T_RANGE", "T_OR", + "T_AND", "T_EQUAL", "T_NOT", "$accept", "input", "block", + "common_block", "config_entry_start", "config_stmt", + "menuconfig_entry_start", "menuconfig_stmt", "config_option_list", "config_option", "choice", "choice_entry", "choice_end", "choice_stmt", "choice_option_list", "choice_option", "choice_block", "if", "if_end", "if_stmt", "if_block", "menu", "menu_entry", "menu_end", "menu_stmt", @@ -458,38 +473,41 @@ static const unsigned short yytoknum[] = 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290 + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const unsigned char yyr1[] = { - 0, 36, 37, 37, 38, 38, 38, 38, 38, 38, - 38, 38, 39, 39, 39, 39, 39, 40, 41, 42, - 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, - 43, 44, 45, 46, 47, 47, 48, 48, 48, 48, - 48, 49, 49, 49, 50, 50, 51, 52, 53, 53, - 54, 54, 54, 54, 55, 56, 57, 58, 58, 59, - 59, 59, 59, 59, 60, 61, 62, 63, 64, 65, - 66, 66, 66, 67, 67, 67, 68, 68, 68, 69, - 69, 70, 70, 70, 71, 71, 72, 72, 73, 73, - 73, 73, 73, 73, 73, 74, 74 + 0, 42, 43, 43, 44, 44, 44, 44, 44, 44, + 44, 44, 45, 45, 45, 45, 45, 45, 46, 47, + 48, 49, 50, 50, 50, 50, 50, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 52, 53, + 54, 55, 55, 56, 56, 56, 56, 56, 57, 57, + 57, 57, 57, 58, 58, 59, 60, 61, 61, 62, + 62, 62, 62, 63, 64, 65, 66, 66, 67, 67, + 67, 67, 67, 68, 69, 70, 71, 72, 73, 74, + 74, 74, 75, 75, 75, 76, 76, 77, 77, 78, + 78, 78, 79, 79, 80, 80, 81, 81, 81, 81, + 81, 81, 81, 82, 82 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const unsigned char yyr2[] = { 0, 2, 0, 2, 1, 1, 1, 3, 1, 1, - 1, 2, 1, 1, 1, 1, 1, 2, 3, 0, - 3, 3, 2, 2, 2, 2, 2, 2, 2, 3, - 3, 1, 3, 1, 4, 2, 0, 3, 3, 2, - 2, 3, 1, 2, 0, 2, 2, 1, 5, 3, - 0, 2, 2, 2, 2, 3, 1, 4, 2, 0, - 2, 2, 2, 3, 2, 2, 2, 3, 2, 2, - 0, 3, 2, 3, 2, 2, 0, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 0, 2, 1, 3, - 3, 3, 2, 3, 3, 1, 1 + 1, 2, 1, 1, 1, 1, 1, 1, 3, 2, + 3, 2, 0, 2, 2, 2, 2, 3, 4, 3, + 4, 3, 3, 3, 4, 4, 4, 5, 2, 2, + 1, 3, 2, 0, 2, 2, 2, 2, 4, 3, + 3, 2, 4, 0, 2, 3, 1, 3, 2, 0, + 2, 2, 2, 3, 2, 1, 3, 2, 0, 2, + 2, 2, 3, 3, 1, 3, 2, 2, 2, 0, + 2, 2, 4, 3, 3, 0, 2, 1, 1, 2, + 2, 2, 1, 1, 0, 2, 1, 3, 3, 3, + 2, 3, 3, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -497,127 +515,151 @@ static const unsigned char yyr2[] = means the default is an error. */ static const unsigned char yydefact[] = { - 2, 0, 1, 0, 0, 0, 8, 0, 31, 10, - 0, 0, 0, 9, 85, 84, 3, 4, 0, 14, - 0, 44, 5, 0, 12, 0, 59, 6, 0, 15, - 0, 13, 16, 11, 79, 80, 0, 54, 64, 66, - 17, 95, 96, 0, 0, 46, 88, 19, 36, 35, - 50, 70, 0, 65, 70, 7, 0, 92, 0, 0, - 0, 0, 18, 32, 81, 82, 83, 45, 0, 33, - 49, 55, 0, 60, 62, 0, 61, 56, 67, 91, - 93, 94, 90, 89, 0, 0, 0, 0, 0, 76, - 76, 76, 76, 76, 23, 0, 0, 22, 0, 42, - 0, 0, 40, 0, 39, 0, 34, 51, 53, 0, - 52, 47, 72, 0, 63, 57, 68, 0, 74, 75, - 86, 86, 24, 77, 25, 26, 27, 28, 20, 69, - 21, 86, 43, 37, 38, 48, 71, 73, 0, 29, - 30, 0, 41, 87, 78 + 2, 0, 1, 0, 0, 0, 8, 0, 0, 10, + 0, 0, 0, 0, 9, 93, 92, 3, 4, 22, + 14, 22, 15, 43, 53, 5, 59, 12, 79, 68, + 6, 74, 16, 79, 13, 17, 11, 87, 88, 0, + 0, 0, 38, 0, 0, 0, 103, 104, 0, 0, + 0, 96, 19, 21, 39, 42, 58, 64, 0, 76, + 7, 63, 73, 75, 18, 20, 0, 100, 55, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, + 85, 0, 85, 85, 85, 26, 0, 0, 23, 0, + 25, 24, 0, 0, 0, 85, 85, 47, 44, 46, + 45, 0, 0, 0, 54, 41, 40, 60, 62, 57, + 61, 56, 81, 80, 0, 69, 71, 66, 70, 65, + 99, 101, 102, 98, 97, 77, 0, 0, 0, 94, + 94, 0, 94, 94, 0, 94, 0, 0, 0, 94, + 0, 78, 51, 94, 94, 0, 0, 89, 90, 91, + 72, 0, 83, 84, 0, 0, 0, 27, 86, 0, + 29, 0, 33, 31, 32, 0, 94, 0, 0, 49, + 50, 82, 95, 34, 35, 28, 30, 36, 0, 48, + 52, 37 }; /* YYDEFGOTO[NTERM-NUM]. */ static const short yydefgoto[] = { - -1, 1, 16, 17, 18, 19, 62, 95, 20, 21, - 68, 22, 63, 103, 49, 23, 109, 24, 70, 25, - 26, 75, 27, 52, 28, 29, 30, 31, 96, 97, - 71, 113, 122, 123, 69, 32, 139, 45, 46 + -1, 1, 17, 18, 19, 20, 21, 22, 52, 88, + 23, 24, 105, 25, 54, 98, 55, 26, 109, 27, + 56, 28, 29, 117, 30, 58, 31, 32, 33, 34, + 89, 90, 57, 91, 131, 132, 106, 35, 155, 50, + 51 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -120 +#define YYPACT_NINF -99 static const short yypact[] = { - -120, 17, -120, 41, 48, 48, -120, 48, -120, -120, - 48, -11, 40, -120, -120, -120, -120, -120, 13, -120, - 23, -120, -120, 66, -120, 72, -120, -120, 77, -120, - 81, -120, -120, -120, -120, -120, 41, -120, -120, -120, - -120, -120, -120, 40, 40, 57, 59, -120, -120, 98, - -120, -120, 49, -120, -120, -120, 7, -120, 40, 40, - 67, 67, 99, 117, -120, -120, -120, -120, 85, -120, - 74, 18, 88, -120, -120, 95, -120, -120, 18, -120, - 96, -120, -120, -120, 102, 36, 40, 48, 67, 48, - 48, 48, 48, 48, -120, 103, 129, -120, 114, -120, - 48, 67, -120, 115, -120, 116, -120, -120, -120, 118, - -120, -120, -120, 119, -120, -120, -120, 40, 57, 57, - 135, 135, -120, 136, -120, -120, -120, -120, -120, -120, - -120, 135, -120, -120, -120, -120, -120, 57, 40, -120, - -120, 40, -120, 57, 57 + -99, 48, -99, 38, 46, 46, -99, 46, -29, -99, + 46, -17, -3, -11, -99, -99, -99, -99, -99, -99, + -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, + -99, -99, -99, -99, -99, -99, -99, -99, -99, 38, + 12, 15, -99, 18, 51, 62, -99, -99, -11, -11, + 4, -24, 138, 138, 160, 121, 110, -4, 81, -4, + -99, -99, -99, -99, -99, -99, -19, -99, -99, -11, + -11, 70, 70, 73, 32, -11, 46, -11, 46, -11, + 46, -11, 46, 46, 46, -99, 36, 70, -99, 95, + -99, -99, 96, 46, 106, 46, 46, -99, -99, -99, + -99, 38, 38, 38, -99, -99, -99, -99, -99, -99, + -99, -99, -99, -99, 112, -99, -99, -99, -99, -99, + -99, 117, -99, -99, -99, -99, -11, 33, 65, 131, + 1, 119, 131, 1, 136, 1, 153, 154, 155, 131, + 70, -99, -99, 131, 131, 156, 157, -99, -99, -99, + -99, 101, -99, -99, -11, 158, 159, -99, -99, 161, + -99, 162, -99, -99, -99, 163, 131, 164, 165, -99, + -99, -99, 99, -99, -99, -99, -99, -99, 166, -99, + -99, -99 }; /* YYPGOTO[NTERM-NUM]. */ -static const yysigned_char yypgoto[] = +static const short yypgoto[] = { - -120, -120, -120, -38, -120, -120, -120, -120, -120, -120, - -120, -42, -120, -120, -120, -120, -120, -120, -120, -120, - -120, -120, -33, -120, -120, -120, -120, -120, -120, 87, - 97, 34, 47, -1, -23, 2, -119, -43, -53 + -99, -99, -99, 111, -99, -99, -99, -99, 178, -99, + -99, -99, -99, 91, -99, -99, -99, -99, -99, -99, + -99, -99, -99, -99, 115, -99, -99, -99, -99, -99, + -99, 146, 168, 89, 27, 0, 126, -1, -98, -48, + -63 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, parse error. */ -#define YYTABLE_NINF -59 + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -68 static const short yytable[] = { - 56, 57, 140, 36, 37, 33, 38, 82, 83, 39, - 74, 67, 142, 40, 73, 80, 81, 2, 3, 76, - 4, 5, 6, 7, 8, 9, 10, 11, 108, 77, - 12, 13, 107, 85, 86, 121, 79, 110, 55, 58, - 59, 47, 118, 119, 14, 15, 112, 111, 132, -58, - 72, 48, -58, 5, 64, 7, 8, 65, 10, 11, - 41, 42, 12, 66, 41, 42, 43, 117, 14, 15, - 43, 44, 34, 35, 137, 44, 14, 15, 5, 64, - 7, 8, 65, 10, 11, 60, 120, 12, 66, 58, - 59, 41, 42, 61, 50, 143, 98, 105, 144, 131, - 51, 14, 15, 64, 7, 53, 65, 10, 11, 54, - 84, 12, 66, 106, 85, 86, 114, 87, 88, 89, - 90, 91, 92, 115, 93, 14, 15, 94, 84, 59, - 116, 128, 85, 86, 99, 100, 101, 124, 125, 126, - 127, 129, 130, 133, 134, 102, 135, 136, 138, 141, - 104, 78 + 66, 67, 36, 42, 39, 40, 71, 41, 123, 124, + 43, 44, 74, 75, 120, 154, 72, 46, 47, 69, + 70, 121, 122, 48, 140, 45, 127, 128, 112, 130, + 49, 133, 156, 135, 158, 159, 68, 161, 60, 69, + 70, 165, 69, 70, 61, 167, 168, 62, 2, 3, + 63, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 46, 47, 13, 14, 139, 152, 48, 126, 178, 15, + 16, 69, 70, 49, 37, 38, 129, 166, 151, 15, + 16, -67, 114, 64, -67, 5, 101, 7, 8, 102, + 10, 11, 12, 143, 65, 13, 103, 153, 46, 47, + 147, 148, 149, 69, 70, 125, 172, 134, 141, 136, + 137, 138, 15, 16, 5, 101, 7, 8, 102, 10, + 11, 12, 145, 146, 13, 103, 101, 7, 142, 102, + 10, 11, 12, 171, 144, 13, 103, 69, 70, 69, + 70, 15, 16, 100, 150, 154, 113, 108, 113, 116, + 73, 157, 15, 16, 74, 75, 70, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 104, 107, 160, 115, + 85, 110, 73, 118, 86, 87, 74, 75, 92, 93, + 94, 95, 111, 96, 119, 162, 163, 164, 169, 170, + 173, 174, 97, 175, 176, 177, 179, 180, 181, 53, + 99, 59 }; static const unsigned char yycheck[] = { - 43, 44, 121, 4, 5, 3, 7, 60, 61, 10, - 52, 49, 131, 24, 52, 58, 59, 0, 1, 52, - 3, 4, 5, 6, 7, 8, 9, 10, 70, 52, - 13, 14, 70, 15, 16, 88, 29, 70, 36, 32, - 33, 28, 85, 86, 27, 28, 28, 70, 101, 0, - 1, 28, 3, 4, 5, 6, 7, 8, 9, 10, - 24, 25, 13, 14, 24, 25, 30, 31, 27, 28, - 30, 35, 24, 25, 117, 35, 27, 28, 4, 5, - 6, 7, 8, 9, 10, 26, 87, 13, 14, 32, - 33, 24, 25, 34, 28, 138, 62, 63, 141, 100, - 28, 27, 28, 5, 6, 28, 8, 9, 10, 28, - 11, 13, 14, 28, 15, 16, 28, 18, 19, 20, - 21, 22, 23, 28, 25, 27, 28, 28, 11, 33, - 28, 28, 15, 16, 17, 18, 19, 90, 91, 92, - 93, 12, 28, 28, 28, 28, 28, 28, 13, 13, - 63, 54 + 48, 49, 3, 32, 4, 5, 30, 7, 71, 72, + 10, 28, 16, 17, 33, 14, 40, 28, 29, 38, + 39, 69, 70, 34, 87, 28, 74, 75, 32, 77, + 41, 79, 130, 81, 132, 133, 32, 135, 39, 38, + 39, 139, 38, 39, 32, 143, 144, 32, 0, 1, + 32, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 28, 29, 14, 15, 28, 32, 34, 35, 166, 31, + 32, 38, 39, 41, 28, 29, 76, 140, 126, 31, + 32, 0, 1, 32, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 93, 32, 14, 15, 32, 28, 29, + 101, 102, 103, 38, 39, 32, 154, 80, 13, 82, + 83, 84, 31, 32, 4, 5, 6, 7, 8, 9, + 10, 11, 95, 96, 14, 15, 5, 6, 32, 8, + 9, 10, 11, 32, 28, 14, 15, 38, 39, 38, + 39, 31, 32, 54, 32, 14, 57, 56, 59, 58, + 12, 32, 31, 32, 16, 17, 39, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 55, 56, 32, 58, + 32, 56, 12, 58, 36, 37, 16, 17, 18, 19, + 20, 21, 56, 23, 58, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 21, + 54, 33 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const unsigned char yystos[] = { - 0, 37, 0, 1, 3, 4, 5, 6, 7, 8, - 9, 10, 13, 14, 27, 28, 38, 39, 40, 41, - 44, 45, 47, 51, 53, 55, 56, 58, 60, 61, - 62, 63, 71, 71, 24, 25, 69, 69, 69, 69, - 24, 24, 25, 30, 35, 73, 74, 28, 28, 50, - 28, 28, 59, 28, 28, 71, 73, 73, 32, 33, - 26, 34, 42, 48, 5, 8, 14, 39, 46, 70, - 54, 66, 1, 39, 47, 57, 58, 70, 66, 29, - 73, 73, 74, 74, 11, 15, 16, 18, 19, 20, - 21, 22, 23, 25, 28, 43, 64, 65, 67, 17, - 18, 19, 28, 49, 65, 67, 28, 39, 47, 52, - 58, 70, 28, 67, 28, 28, 28, 31, 73, 73, - 69, 74, 68, 69, 68, 68, 68, 68, 28, 12, - 28, 69, 74, 28, 28, 28, 28, 73, 13, 72, - 72, 13, 72, 73, 73 + 0, 43, 0, 1, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 14, 15, 31, 32, 44, 45, 46, + 47, 48, 49, 52, 53, 55, 59, 61, 63, 64, + 66, 68, 69, 70, 71, 79, 79, 28, 29, 77, + 77, 77, 32, 77, 28, 28, 28, 29, 34, 41, + 81, 82, 50, 50, 56, 58, 62, 74, 67, 74, + 79, 32, 32, 32, 32, 32, 81, 81, 32, 38, + 39, 30, 40, 12, 16, 17, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 32, 36, 37, 51, 72, + 73, 75, 18, 19, 20, 21, 23, 32, 57, 73, + 75, 5, 8, 15, 45, 54, 78, 45, 55, 60, + 66, 78, 32, 75, 1, 45, 55, 65, 66, 78, + 33, 81, 81, 82, 82, 32, 35, 81, 81, 77, + 81, 76, 77, 81, 76, 81, 76, 76, 76, 28, + 82, 13, 32, 77, 28, 76, 76, 79, 79, 79, + 32, 81, 32, 32, 14, 80, 80, 32, 80, 80, + 32, 80, 32, 32, 32, 80, 82, 80, 80, 32, + 32, 32, 81, 32, 32, 32, 32, 32, 80, 32, + 32, 32 }; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) @@ -638,13 +680,14 @@ static const unsigned char yystos[] = #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 +#define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrlab1 + /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ @@ -659,13 +702,13 @@ do \ { \ yychar = (Token); \ yylval = (Value); \ - yychar1 = YYTRANSLATE (yychar); \ + yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { \ - yyerror ("syntax error: cannot back up"); \ + yyerror ("syntax error: cannot back up");\ YYERROR; \ } \ while (0) @@ -677,7 +720,7 @@ while (0) are run). */ #ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ +# define YYLLOC_DEFAULT(Current, Rhs, N) \ Current.first_line = Rhs[1].first_line; \ Current.first_column = Rhs[1].first_column; \ Current.last_line = Rhs[N].last_line; \ @@ -686,7 +729,11 @@ while (0) /* YYLEX -- calling `yylex' with the right arguments. */ -#define YYLEX yylex () +#ifdef YYLEX_PARAM +# define YYLEX yylex (YYLEX_PARAM) +#else +# define YYLEX yylex () +#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -701,19 +748,93 @@ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) + # define YYDSYMPRINT(Args) \ do { \ if (yydebug) \ yysymprint Args; \ } while (0) + +# define YYDSYMPRINTF(Title, Token, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yysymprint (stderr, \ + Token, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (cinluded). | +`------------------------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_stack_print (short *bottom, short *top) +#else +static void +yy_stack_print (bottom, top) + short *bottom; + short *top; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (/* Nothing. */; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_reduce_print (int yyrule) +#else +static void +yy_reduce_print (yyrule) + int yyrule; +#endif +{ + int yyi; + unsigned int yylineno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", + yyrule - 1, yylineno); + /* Print the symbols being reduced, and their result. */ + for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) + YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); + YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (Rule); \ +} while (0) + /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define YYDSYMPRINT(Args) +# define YYDSYMPRINTF(Title, Token, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ + /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 @@ -792,95 +913,85 @@ yystpcpy (yydest, yysrc) #if YYDEBUG -/*-----------------------------. -| Print this symbol on YYOUT. | -`-----------------------------*/ +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ -static void #if defined (__STDC__) || defined (__cplusplus) -yysymprint (FILE* yyout, int yytype, YYSTYPE yyvalue) +static void +yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) #else -yysymprint (yyout, yytype, yyvalue) - FILE* yyout; +static void +yysymprint (yyoutput, yytype, yyvaluep) + FILE *yyoutput; int yytype; - YYSTYPE yyvalue; + YYSTYPE *yyvaluep; #endif { /* Pacify ``unused variable'' warnings. */ - (void) yyvalue; + (void) yyvaluep; if (yytype < YYNTOKENS) { - YYFPRINTF (yyout, "token %s (", yytname[yytype]); + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); # ifdef YYPRINT - YYPRINT (yyout, yytoknum[yytype], yyvalue); + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # endif } else - YYFPRINTF (yyout, "nterm %s (", yytname[yytype]); + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); switch (yytype) { default: break; } - YYFPRINTF (yyout, ")"); + YYFPRINTF (yyoutput, ")"); } -#endif /* YYDEBUG. */ - +#endif /* ! YYDEBUG */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ -static void #if defined (__STDC__) || defined (__cplusplus) -yydestruct (int yytype, YYSTYPE yyvalue) +static void +yydestruct (int yytype, YYSTYPE *yyvaluep) #else -yydestruct (yytype, yyvalue) +static void +yydestruct (yytype, yyvaluep) int yytype; - YYSTYPE yyvalue; + YYSTYPE *yyvaluep; #endif { /* Pacify ``unused variable'' warnings. */ - (void) yyvalue; + (void) yyvaluep; switch (yytype) { + default: break; } } - -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ +/* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM # if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL +int yyparse (void *YYPARSE_PARAM); # else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; +int yyparse (); # endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) int yyparse (void); -# endif +#else +int yyparse (); #endif +#endif /* ! YYPARSE_PARAM */ + /* The lookahead symbol. */ @@ -889,13 +1000,32 @@ int yychar; /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; -/* Number of parse errors so far. */ +/* Number of syntax errors so far. */ int yynerrs; + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM) +# else +int yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL +yyparse (void) +#else +int +yyparse () + +#endif +#endif { register int yystate; @@ -904,7 +1034,7 @@ yyparse (YYPARSE_PARAM_ARG) /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Lookahead token as an internal (translated) token number. */ - int yychar1 = 0; + int yytoken = 0; /* Three stacks and their tools: `yyss': related to states, @@ -968,7 +1098,7 @@ yyparse (YYPARSE_PARAM_ARG) yysetstate: *yyssp = yystate; - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; @@ -1000,10 +1130,10 @@ yyparse (YYPARSE_PARAM_ARG) goto yyoverflowlab; # else /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) + if (YYMAXDEPTH <= yystacksize) goto yyoverflowlab; yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) + if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { @@ -1029,7 +1159,7 @@ yyparse (YYPARSE_PARAM_ARG) YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) YYABORT; } @@ -1054,39 +1184,28 @@ yybackup: /* Not known => get a lookahead token if don't already have one. */ - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } - /* Convert token to internal form (in yychar1) for indexing tables with. */ - - if (yychar <= 0) /* This means end of input. */ + if (yychar <= YYEOF) { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more. */ - + yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { - yychar1 = YYTRANSLATE (yychar); - - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ - YYDPRINTF ((stderr, "Next token is ")); - YYDSYMPRINT ((stderr, yychar1, yylval)); - YYDPRINTF ((stderr, "\n")); + yytoken = YYTRANSLATE (yychar); + YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); } - /* If the proper action on seeing token YYCHAR1 is to reduce or to + /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ - yyn += yychar1; - if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yychar1) + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) @@ -1101,8 +1220,7 @@ yybackup: YYACCEPT; /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); + YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) @@ -1148,435 +1266,463 @@ yyreduce: yyval = yyvsp[1-yylen]; - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - int yyi; - - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn - 1, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] >= 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif + YY_REDUCE_PRINT (yyn); switch (yyn) { case 8: -#line 96 "zconf.y" - { zconfprint("unexpected 'endmenu' statement"); } + + { zconfprint("unexpected 'endmenu' statement"); ;} break; case 9: -#line 97 "zconf.y" - { zconfprint("unexpected 'endif' statement"); } + + { zconfprint("unexpected 'endif' statement"); ;} break; case 10: -#line 98 "zconf.y" - { zconfprint("unexpected 'endchoice' statement"); } + + { zconfprint("unexpected 'endchoice' statement"); ;} break; case 11: -#line 99 "zconf.y" - { zconfprint("syntax error"); yyerrok; } + + { zconfprint("syntax error"); yyerrok; ;} break; - case 17: -#line 114 "zconf.y" + case 18: + { - struct symbol *sym = sym_lookup(yyvsp[0].string, 0); + struct symbol *sym = sym_lookup(yyvsp[-1].string, 0); sym->flags |= SYMBOL_OPTIONAL; menu_add_entry(sym); - printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), yyvsp[0].string); -} + printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), yyvsp[-1].string); +;} break; - case 18: -#line 122 "zconf.y" + case 19: + { menu_end_entry(); printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno()); -} +;} + break; + + case 20: + + { + struct symbol *sym = sym_lookup(yyvsp[-1].string, 0); + sym->flags |= SYMBOL_OPTIONAL; + menu_add_entry(sym); + printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), yyvsp[-1].string); +;} break; - case 23: -#line 133 "zconf.y" - { } + case 21: + + { + if (current_entry->prompt) + current_entry->prompt->type = P_MENU; + else + zconfprint("warning: menuconfig statement without prompt"); + menu_end_entry(); + printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno()); +;} break; - case 24: -#line 136 "zconf.y" + case 27: + { menu_set_type(S_TRISTATE); printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), zconf_lineno()); -} +;} + break; + + case 28: + + { + menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr); + menu_set_type(S_TRISTATE); + printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno()); +;} break; - case 25: -#line 142 "zconf.y" + case 29: + { menu_set_type(S_BOOLEAN); printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno()); -} +;} break; - case 26: -#line 148 "zconf.y" + case 30: + + { + menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr); + menu_set_type(S_BOOLEAN); + printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno()); +;} + break; + + case 31: + { menu_set_type(S_INT); printd(DEBUG_PARSE, "%s:%d:int\n", zconf_curname(), zconf_lineno()); -} +;} break; - case 27: -#line 154 "zconf.y" + case 32: + { menu_set_type(S_HEX); printd(DEBUG_PARSE, "%s:%d:hex\n", zconf_curname(), zconf_lineno()); -} +;} break; - case 28: -#line 160 "zconf.y" + case 33: + { menu_set_type(S_STRING); printd(DEBUG_PARSE, "%s:%d:string\n", zconf_curname(), zconf_lineno()); -} +;} break; - case 29: -#line 166 "zconf.y" + case 34: + { - menu_add_prop(P_PROMPT, yyvsp[-1].string, NULL, yyvsp[0].expr); + menu_add_prompt(P_PROMPT, yyvsp[-2].string, yyvsp[-1].expr); printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); -} +;} break; - case 30: -#line 172 "zconf.y" + case 35: + { - menu_add_prop(P_DEFAULT, NULL, yyvsp[-1].symbol, yyvsp[0].expr); + menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr); printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); -} +;} break; - case 31: -#line 180 "zconf.y" + case 36: + + { + menu_add_symbol(P_SELECT, sym_lookup(yyvsp[-2].string, 0), yyvsp[-1].expr); + printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno()); +;} + break; + + case 37: + + { + menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,yyvsp[-3].symbol, yyvsp[-2].symbol), yyvsp[-1].expr); + printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno()); +;} + break; + + case 38: + { struct symbol *sym = sym_lookup(NULL, 0); sym->flags |= SYMBOL_CHOICE; menu_add_entry(sym); - menu_add_prop(P_CHOICE, NULL, NULL, NULL); + menu_add_expr(P_CHOICE, NULL, NULL); printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno()); -} +;} break; - case 32: -#line 189 "zconf.y" + case 39: + { menu_end_entry(); menu_add_menu(); -} +;} break; - case 33: -#line 195 "zconf.y" + case 40: + { if (zconf_endtoken(yyvsp[0].token, T_CHOICE, T_ENDCHOICE)) { menu_end_menu(); printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno()); } -} +;} break; - case 35: -#line 205 "zconf.y" + case 42: + { printf("%s:%d: missing 'endchoice' for this 'choice' statement\n", current_menu->file->name, current_menu->lineno); zconfnerrs++; -} +;} break; - case 41: -#line 219 "zconf.y" + case 48: + { - menu_add_prop(P_PROMPT, yyvsp[-1].string, NULL, yyvsp[0].expr); + menu_add_prompt(P_PROMPT, yyvsp[-2].string, yyvsp[-1].expr); printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); -} +;} break; - case 42: -#line 225 "zconf.y" + case 49: + + { + menu_set_type(S_TRISTATE); + printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), zconf_lineno()); +;} + break; + + case 50: + + { + menu_set_type(S_BOOLEAN); + printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno()); +;} + break; + + case 51: + { current_entry->sym->flags |= SYMBOL_OPTIONAL; printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno()); -} +;} break; - case 43: -#line 231 "zconf.y" + case 52: + { - menu_add_prop(P_DEFAULT, NULL, yyvsp[0].symbol, NULL); - //current_choice->prop->def = ; + menu_add_symbol(P_DEFAULT, sym_lookup(yyvsp[-2].string, 0), yyvsp[-1].expr); printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); -} +;} break; - case 46: -#line 245 "zconf.y" + case 55: + { printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno()); menu_add_entry(NULL); - //current_entry->prompt = menu_add_prop(T_IF, NULL, NULL, ); - menu_add_dep(yyvsp[0].expr); + menu_add_dep(yyvsp[-1].expr); menu_end_entry(); menu_add_menu(); -} +;} break; - case 47: -#line 255 "zconf.y" + case 56: + { if (zconf_endtoken(yyvsp[0].token, T_IF, T_ENDIF)) { menu_end_menu(); printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno()); } -} +;} break; - case 49: -#line 265 "zconf.y" + case 58: + { printf("%s:%d: missing 'endif' for this 'if' statement\n", current_menu->file->name, current_menu->lineno); zconfnerrs++; -} +;} break; - case 54: -#line 280 "zconf.y" + case 63: + { menu_add_entry(NULL); - menu_add_prop(P_MENU, yyvsp[0].string, NULL, NULL); + menu_add_prop(P_MENU, yyvsp[-1].string, NULL, NULL); printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno()); -} +;} break; - case 55: -#line 287 "zconf.y" + case 64: + { menu_end_entry(); menu_add_menu(); -} +;} break; - case 56: -#line 293 "zconf.y" + case 65: + { if (zconf_endtoken(yyvsp[0].token, T_MENU, T_ENDMENU)) { menu_end_menu(); printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno()); } -} +;} break; - case 58: -#line 303 "zconf.y" + case 67: + { printf("%s:%d: missing 'endmenu' for this 'menu' statement\n", current_menu->file->name, current_menu->lineno); zconfnerrs++; -} +;} break; - case 63: -#line 313 "zconf.y" - { zconfprint("invalid menu option"); yyerrok; } + case 72: + + { zconfprint("invalid menu option"); yyerrok; ;} break; - case 64: -#line 317 "zconf.y" + case 73: + { - yyval.string = yyvsp[0].string; - printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), yyvsp[0].string); -} + yyval.string = yyvsp[-1].string; + printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), yyvsp[-1].string); +;} break; - case 65: -#line 323 "zconf.y" + case 74: + { - zconf_nextfile(yyvsp[-1].string); -} + zconf_nextfile(yyvsp[0].string); +;} break; - case 66: -#line 330 "zconf.y" + case 75: + { menu_add_entry(NULL); - menu_add_prop(P_COMMENT, yyvsp[0].string, NULL, NULL); + menu_add_prop(P_COMMENT, yyvsp[-1].string, NULL, NULL); printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno()); -} +;} break; - case 67: -#line 337 "zconf.y" + case 76: + { menu_end_entry(); -} +;} break; - case 68: -#line 344 "zconf.y" + case 77: + { printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno()); zconf_starthelp(); -} +;} break; - case 69: -#line 350 "zconf.y" + case 78: + { current_entry->sym->help = yyvsp[0].string; -} +;} break; - case 72: -#line 359 "zconf.y" - { } - break; + case 82: - case 73: -#line 362 "zconf.y" { - menu_add_dep(yyvsp[0].expr); + menu_add_dep(yyvsp[-1].expr); printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno()); -} +;} break; - case 74: -#line 367 "zconf.y" + case 83: + { - menu_add_dep(yyvsp[0].expr); + menu_add_dep(yyvsp[-1].expr); printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno()); -} +;} break; - case 75: -#line 372 "zconf.y" + case 84: + { - menu_add_dep(yyvsp[0].expr); + menu_add_dep(yyvsp[-1].expr); printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), zconf_lineno()); -} +;} break; - case 77: -#line 382 "zconf.y" - { - menu_add_prop(P_PROMPT, yyvsp[0].string, NULL, NULL); -} - break; + case 86: - case 78: -#line 386 "zconf.y" { - menu_add_prop(P_PROMPT, yyvsp[-2].string, NULL, yyvsp[0].expr); -} + menu_add_prop(P_PROMPT, yyvsp[-1].string, NULL, yyvsp[0].expr); +;} break; - case 81: -#line 394 "zconf.y" - { yyval.token = T_ENDMENU; } + case 89: + + { yyval.token = T_ENDMENU; ;} break; - case 82: -#line 395 "zconf.y" - { yyval.token = T_ENDCHOICE; } + case 90: + + { yyval.token = T_ENDCHOICE; ;} break; - case 83: -#line 396 "zconf.y" - { yyval.token = T_ENDIF; } + case 91: + + { yyval.token = T_ENDIF; ;} break; - case 86: -#line 402 "zconf.y" - { yyval.expr = NULL; } + case 94: + + { yyval.expr = NULL; ;} break; - case 87: -#line 403 "zconf.y" - { yyval.expr = yyvsp[0].expr; } + case 95: + + { yyval.expr = yyvsp[0].expr; ;} break; - case 88: -#line 406 "zconf.y" - { yyval.expr = expr_alloc_symbol(yyvsp[0].symbol); } + case 96: + + { yyval.expr = expr_alloc_symbol(yyvsp[0].symbol); ;} break; - case 89: -#line 407 "zconf.y" - { yyval.expr = expr_alloc_comp(E_EQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); } + case 97: + + { yyval.expr = expr_alloc_comp(E_EQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ;} break; - case 90: -#line 408 "zconf.y" - { yyval.expr = expr_alloc_comp(E_UNEQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); } + case 98: + + { yyval.expr = expr_alloc_comp(E_UNEQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ;} break; - case 91: -#line 409 "zconf.y" - { yyval.expr = yyvsp[-1].expr; } + case 99: + + { yyval.expr = yyvsp[-1].expr; ;} break; - case 92: -#line 410 "zconf.y" - { yyval.expr = expr_alloc_one(E_NOT, yyvsp[0].expr); } + case 100: + + { yyval.expr = expr_alloc_one(E_NOT, yyvsp[0].expr); ;} break; - case 93: -#line 411 "zconf.y" - { yyval.expr = expr_alloc_two(E_OR, yyvsp[-2].expr, yyvsp[0].expr); } + case 101: + + { yyval.expr = expr_alloc_two(E_OR, yyvsp[-2].expr, yyvsp[0].expr); ;} break; - case 94: -#line 412 "zconf.y" - { yyval.expr = expr_alloc_two(E_AND, yyvsp[-2].expr, yyvsp[0].expr); } + case 102: + + { yyval.expr = expr_alloc_two(E_AND, yyvsp[-2].expr, yyvsp[0].expr); ;} break; - case 95: -#line 415 "zconf.y" - { yyval.symbol = sym_lookup(yyvsp[0].string, 0); free(yyvsp[0].string); } + case 103: + + { yyval.symbol = sym_lookup(yyvsp[0].string, 0); free(yyvsp[0].string); ;} break; - case 96: -#line 416 "zconf.y" - { yyval.symbol = sym_lookup(yyvsp[0].string, 1); free(yyvsp[0].string); } + case 104: + + { yyval.symbol = sym_lookup(yyvsp[0].string, 1); free(yyvsp[0].string); ;} break; } -/* Line 1016 of /usr/share/bison/yacc.c. */ -#line 1565 "zconf.tab.c" +/* Line 999 of yacc.c. */ + yyvsp -= yylen; yyssp -= yylen; -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif + YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; @@ -1621,12 +1767,12 @@ yyerrlab: yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; + yysize += yystrlen ("syntax error, unexpected ") + 1; yysize += yystrlen (yytname[yytype]); yymsg = (char *) YYSTACK_ALLOC (yysize); if (yymsg != 0) { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); + char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); yyp = yystpcpy (yyp, yytname[yytype]); if (yycount < 5) @@ -1647,19 +1793,15 @@ yyerrlab: YYSTACK_FREE (yymsg); } else - yyerror ("parse error; also virtual memory exhausted"); + yyerror ("syntax error; also virtual memory exhausted"); } else #endif /* YYERROR_VERBOSE */ - yyerror ("parse error"); + yyerror ("syntax error"); } - goto yyerrlab1; -/*----------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action. | -`----------------------------------------------------*/ -yyerrlab1: + if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an @@ -1671,28 +1813,30 @@ yyerrlab1: /* Pop the error token. */ YYPOPSTACK; /* Pop the rest of the stack. */ - while (yyssp > yyss) + while (yyss < yyssp) { - YYDPRINTF ((stderr, "Error: popping ")); - YYDSYMPRINT ((stderr, - yystos[*yyssp], - *yyvsp)); - YYDPRINTF ((stderr, "\n")); - yydestruct (yystos[*yyssp], *yyvsp); + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); + yydestruct (yystos[*yyssp], yyvsp); YYPOPSTACK; } YYABORT; } - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); - yydestruct (yychar1, yylval); + YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); + yydestruct (yytoken, &yylval); yychar = YYEMPTY; + } /* Else will try to reuse lookahead token after shifting the error token. */ + goto yyerrlab1; + +/*----------------------------------------------------. +| yyerrlab1 -- error raised explicitly by an action. | +`----------------------------------------------------*/ +yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) @@ -1713,26 +1857,12 @@ yyerrlab1: if (yyssp == yyss) YYABORT; - YYDPRINTF ((stderr, "Error: popping ")); - YYDSYMPRINT ((stderr, - yystos[*yyssp], *yyvsp)); - YYDPRINTF ((stderr, "\n")); - - yydestruct (yystos[yystate], *yyvsp); + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); + yydestruct (yystos[yystate], yyvsp); yyvsp--; yystate = *--yyssp; - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif + YY_STACK_PRINT (yyss, yyssp); } if (yyn == YYFINAL) @@ -1780,24 +1910,32 @@ yyreturn: } -#line 419 "zconf.y" + void conf_parse(const char *name) { + struct symbol *sym; + int i; + zconf_initscan(name); sym_init(); menu_init(); - rootmenu.prompt = menu_add_prop(P_MENU, "BusyBox Configuration", NULL, NULL); + modules_sym = sym_lookup("MODULES", 0); + rootmenu.prompt = menu_add_prop(P_MENU, "Linux Kernel Configuration", NULL, NULL); //zconfdebug = 1; zconfparse(); if (zconfnerrs) exit(1); menu_finalize(&rootmenu); - - modules_sym = sym_lookup("MODULES", 0); + for_all_symbols(i, sym) { + if (!(sym->flags & SYMBOL_CHECKED) && sym_check_deps(sym)) + printf("\n"); + else + sym->flags |= SYMBOL_CHECK_DONE; + } sym_change_count = 1; } @@ -1813,7 +1951,7 @@ const char *zconf_tokenname(int token) case T_ENDIF: return "endif"; } return "<token>"; -} +} static bool zconf_endtoken(int token, int starttoken, int endtoken) { @@ -1835,7 +1973,7 @@ static void zconfprint(const char *err, ...) { va_list ap; - fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno()); + fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno() + 1); va_start(ap, err); vfprintf(stderr, err, ap); va_end(ap); @@ -1844,7 +1982,7 @@ static void zconfprint(const char *err, ...) static void zconferror(const char *err) { - fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno(), err); + fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err); } void print_quoted_string(FILE *out, const char *str) @@ -1869,8 +2007,6 @@ void print_symbol(FILE *out, struct menu *menu) struct symbol *sym = menu->sym; struct property *prop; - //sym->flags |= SYMBOL_PRINTED; - if (sym_is_choice(sym)) fprintf(out, "choice\n"); else @@ -1895,13 +2031,6 @@ void print_symbol(FILE *out, struct menu *menu) fputs(" ???\n", out); break; } -#if 0 - if (!expr_is_yes(sym->dep)) { - fputs(" depends ", out); - expr_fprint(sym->dep, out); - fputc('\n', out); - } -#endif for (prop = sym->prop; prop; prop = prop->next) { if (prop->menu != menu) continue; @@ -1909,25 +2038,18 @@ void print_symbol(FILE *out, struct menu *menu) case P_PROMPT: fputs(" prompt ", out); print_quoted_string(out, prop->text); - if (prop->def) { - fputc(' ', out); - if (prop->def->flags & SYMBOL_CONST) - print_quoted_string(out, prop->def->name); - else - fputs(prop->def->name, out); - } - if (!expr_is_yes(E_EXPR(prop->visible))) { + if (!expr_is_yes(prop->visible.expr)) { fputs(" if ", out); - expr_fprint(E_EXPR(prop->visible), out); + expr_fprint(prop->visible.expr, out); } fputc('\n', out); break; case P_DEFAULT: fputs( " default ", out); - print_quoted_string(out, prop->def->name); - if (!expr_is_yes(E_EXPR(prop->visible))) { + expr_fprint(prop->expr, out); + if (!expr_is_yes(prop->visible.expr)) { fputs(" if ", out); - expr_fprint(E_EXPR(prop->visible), out); + expr_fprint(prop->visible.expr, out); } fputc('\n', out); break; @@ -1950,7 +2072,6 @@ void print_symbol(FILE *out, struct menu *menu) void zconfdump(FILE *out) { - //struct file *file; struct property *prop; struct symbol *sym; struct menu *menu; @@ -1961,11 +2082,6 @@ void zconfdump(FILE *out) print_symbol(out, menu); else if ((prop = menu->prompt)) { switch (prop->type) { - //case T_MAINMENU: - // fputs("\nmainmenu ", out); - // print_quoted_string(out, prop->text); - // fputs("\n", out); - // break; case P_COMMENT: fputs("\ncomment ", out); print_quoted_string(out, prop->text); @@ -1976,19 +2092,12 @@ void zconfdump(FILE *out) print_quoted_string(out, prop->text); fputs("\n", out); break; - //case T_SOURCE: - // fputs("\nsource ", out); - // print_quoted_string(out, prop->text); - // fputs("\n", out); - // break; - //case T_IF: - // fputs("\nif\n", out); default: ; } - if (!expr_is_yes(E_EXPR(prop->visible))) { + if (!expr_is_yes(prop->visible.expr)) { fputs(" depends ", out); - expr_fprint(E_EXPR(prop->visible), out); + expr_fprint(prop->visible.expr, out); fputc('\n', out); } fputs("\n", out); @@ -2015,3 +2124,4 @@ void zconfdump(FILE *out) #include "symbol.c" #include "menu.c" + |