00001
00002
00003
00004 #define YYBISON 1
00005
00006 # define T_MATCH_LINE 257
00007 # define T_LINE 258
00008 # define T_INPUT 259
00009 # define T_AMPERSAND 260
00010 # define T_ASTERISK 261
00011 # define T_CASE 262
00012 # define T_CHARACTER_LITERAL 263
00013 # define T_CIRCUMFLEX 264
00014 # define T_COLON 265
00015 # define T_COMMA 266
00016 # define T_CONST 267
00017 # define T_DEFAULT 268
00018 # define T_ENUM 269
00019 # define T_EQUAL 270
00020 # define T_FALSE 271
00021 # define T_FLOATING_PT_LITERAL 272
00022 # define T_GREATER_THAN_SIGN 273
00023 # define T_IDENTIFIER 274
00024 # define T_IN 275
00025 # define T_INOUT 276
00026 # define T_INTEGER_LITERAL 277
00027 # define T_LEFT_CURLY_BRACKET 278
00028 # define T_LEFT_PARANTHESIS 279
00029 # define T_LEFT_SQUARE_BRACKET 280
00030 # define T_LESS_THAN_SIGN 281
00031 # define T_MINUS_SIGN 282
00032 # define T_OUT 283
00033 # define T_PERCENT_SIGN 284
00034 # define T_PLUS_SIGN 285
00035 # define T_RIGHT_CURLY_BRACKET 286
00036 # define T_RIGHT_PARANTHESIS 287
00037 # define T_RIGHT_SQUARE_BRACKET 288
00038 # define T_SCOPE 289
00039 # define T_SEMICOLON 290
00040 # define T_SHIFTLEFT 291
00041 # define T_SHIFTRIGHT 292
00042 # define T_SOLIDUS 293
00043 # define T_STRING_LITERAL 294
00044 # define T_STRUCT 295
00045 # define T_SWITCH 296
00046 # define T_TILDE 297
00047 # define T_TRUE 298
00048 # define T_VERTICAL_LINE 299
00049 # define T_LESS_OR_EQUAL 300
00050 # define T_GREATER_OR_EQUAL 301
00051 # define T_ASSIGN 302
00052 # define T_NOTEQUAL 303
00053 # define T_MEMBER 304
00054 # define T_WHILE 305
00055 # define T_IF 306
00056 # define T_ELSE 307
00057 # define T_FOR 308
00058 # define T_DO 309
00059 # define T_INCR 310
00060 # define T_DECR 311
00061 # define T_MAIN 312
00062 # define T_FOREACH 313
00063 # define T_SUBST 314
00064 # define T_MATCH 315
00065 # define T_NOT 316
00066 # define T_RETURN 317
00067 # define T_IMPORT 318
00068 # define T_VAR 319
00069 # define T_CATCH 320
00070 # define T_TRY 321
00071 # define T_RAISE 322
00072 # define T_RANGE 323
00073 # define T_CELL 324
00074 # define T_FROM 325
00075 # define T_PLUS_ASSIGN 326
00076 # define T_MINUS_ASSIGN 327
00077 # define T_AND 328
00078 # define T_OR 329
00079 # define T_DOLLAR 330
00080 # define T_UNKNOWN 331
00081
00082 #line 20 "yacc.yy"
00083
00084
00085 #include "koscript_parsenode.h"
00086 #include "koscript_parser.h"
00087 #include <stdlib.h>
00088
00089 #ifdef __DECCXX
00090 #include <alloca.h>
00091 #endif
00092
00093 #include <qstring.h>
00094
00095 extern int yylex();
00096
00097 extern QString idl_lexFile;
00098 extern int idl_line_no;
00099
00100 void kscriptInitFlex( const char *_code, int extension, KLocale* );
00101 void kscriptInitFlex( int extension, KLocale* );
00102 void kspread_mode();
00103
00104 void yyerror( const char *s )
00105 {
00106 theParser->parse_error( idl_lexFile.local8Bit(), s, idl_line_no );
00107 }
00108
00109
00110 #line 48 "yacc.yy"
00111 #ifndef YYSTYPE
00112 typedef union
00113 {
00114 QString *ident;
00115 KSParseNode *node;
00116 KScript::Long _int;
00117 QString *_str;
00118 ushort _char;
00119 KScript::Double _float;
00120 } yystype;
00121 # define YYSTYPE yystype
00122 # define YYSTYPE_IS_TRIVIAL 1
00123 #endif
00124 #ifndef YYDEBUG
00125 # define YYDEBUG 1
00126 #endif
00127
00128
00129
00130 #define YYFINAL 303
00131 #define YYFLAG -32768
00132 #define YYNTBASE 78
00133
00134
00135 #define YYTRANSLATE(x) ((unsigned)(x) <= 331 ? yytranslate[x] : 122)
00136
00137
00138 static const char yytranslate[] =
00139 {
00140 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00141 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00142 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00143 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00144 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00145 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00146 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00147 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00148 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00149 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00150 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00151 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00152 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00153 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00154 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00155 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00156 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00159 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00160 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00161 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00162 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00165 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
00166 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
00167 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
00168 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
00169 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
00170 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
00171 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
00172 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
00173 76, 77
00174 };
00175
00176 #if YYDEBUG
00177 static const short yyprhs[] =
00178 {
00179 0, 0, 1, 2, 6, 8, 10, 13, 16, 19,
00180 22, 26, 32, 38, 40, 42, 46, 51, 59, 61,
00181 64, 68, 72, 76, 78, 82, 84, 88, 90, 94,
00182 98, 102, 106, 110, 114, 116, 118, 122, 124, 128,
00183 130, 134, 136, 140, 144, 146, 150, 154, 156, 160,
00184 164, 168, 171, 174, 177, 180, 182, 187, 192, 196,
00185 201, 203, 207, 209, 213, 215, 218, 221, 224, 227,
00186 229, 232, 235, 237, 239, 241, 243, 245, 249, 253,
00187 255, 257, 259, 261, 263, 265, 267, 269, 272, 276,
00188 279, 283, 285, 288, 292, 294, 302, 308, 314, 316,
00189 319, 322, 326, 329, 331, 335, 341, 348, 350, 354,
00190 357, 362, 365, 368, 369, 371, 373, 376, 379, 385,
00191 388, 392, 394, 400, 404, 406, 409, 419, 429, 434,
00192 437, 447, 452, 459, 467, 477, 478, 486, 489, 494
00193 };
00194 static const short yyrhs[] =
00195 {
00196 -1, 0, 48, 79, 88, 0, 80, 0, 81, 0,
00197 81, 80, 0, 117, 36, 0, 105, 36, 0, 109,
00198 32, 0, 64, 20, 36, 0, 71, 20, 64, 7,
00199 36, 0, 71, 20, 64, 82, 36, 0, 83, 0,
00200 20, 0, 20, 12, 82, 0, 58, 24, 112, 32,
00201 0, 58, 25, 110, 33, 24, 112, 32, 0, 20,
00202 0, 35, 20, 0, 86, 48, 85, 0, 86, 72,
00203 85, 0, 86, 73, 85, 0, 86, 0, 87, 75,
00204 86, 0, 87, 0, 88, 74, 87, 0, 88, 0,
00205 89, 16, 88, 0, 89, 49, 88, 0, 89, 46,
00206 88, 0, 89, 47, 88, 0, 89, 27, 88, 0,
00207 89, 19, 88, 0, 89, 0, 90, 0, 89, 45,
00208 90, 0, 91, 0, 90, 10, 91, 0, 92, 0,
00209 91, 6, 92, 0, 93, 0, 92, 38, 93, 0,
00210 92, 37, 93, 0, 94, 0, 93, 31, 94, 0,
00211 93, 28, 94, 0, 95, 0, 94, 7, 95, 0,
00212 94, 39, 95, 0, 94, 30, 95, 0, 28, 96,
00213 0, 31, 96, 0, 43, 96, 0, 62, 96, 0,
00214 96, 0, 96, 26, 85, 34, 0, 96, 24, 85,
00215 32, 0, 96, 25, 33, 0, 96, 25, 97, 33,
00216 0, 98, 0, 85, 12, 97, 0, 85, 0, 96,
00217 50, 20, 0, 99, 0, 56, 100, 0, 57, 100,
00218 0, 100, 56, 0, 100, 57, 0, 100, 0, 101,
00219 61, 0, 101, 60, 0, 101, 0, 84, 0, 102,
00220 0, 5, 0, 3, 0, 27, 89, 19, 0, 25,
00221 85, 33, 0, 23, 0, 70, 0, 69, 0, 40,
00222 0, 9, 0, 18, 0, 44, 0, 17, 0, 26,
00223 34, 0, 26, 103, 34, 0, 24, 32, 0, 24,
00224 104, 32, 0, 4, 0, 76, 23, 0, 85, 12,
00225 103, 0, 85, 0, 25, 85, 12, 88, 33, 12,
00226 104, 0, 25, 85, 12, 88, 33, 0, 41, 20,
00227 24, 106, 32, 0, 107, 0, 107, 106, 0, 109,
00228 32, 0, 65, 108, 36, 0, 117, 36, 0, 20,
00229 0, 20, 12, 108, 0, 20, 25, 33, 24, 112,
00230 0, 20, 25, 110, 33, 24, 112, 0, 111, 0,
00231 111, 12, 110, 0, 21, 20, 0, 21, 20, 48,
00232 85, 0, 29, 20, 0, 22, 20, 0, 0, 113,
00233 0, 114, 0, 114, 113, 0, 85, 36, 0, 68,
00234 85, 12, 85, 36, 0, 63, 36, 0, 63, 85,
00235 36, 0, 118, 0, 67, 24, 113, 32, 115, 0,
00236 24, 113, 32, 0, 116, 0, 116, 115, 0, 66,
00237 25, 85, 12, 20, 33, 24, 113, 32, 0, 14,
00238 25, 20, 12, 20, 33, 24, 113, 32, 0, 13,
00239 20, 48, 88, 0, 120, 121, 0, 54, 25, 85,
00240 36, 85, 36, 85, 33, 121, 0, 55, 121, 120,
00241 36, 0, 52, 25, 85, 33, 121, 119, 0, 59,
00242 25, 20, 12, 85, 33, 121, 0, 59, 25, 20,
00243 12, 20, 12, 85, 33, 121, 0, 0, 53, 52,
00244 25, 85, 33, 121, 119, 0, 53, 121, 0, 51,
00245 25, 85, 33, 0, 24, 112, 32, 0
00246 };
00247
00248 #endif
00249
00250 #if YYDEBUG
00251
00252 static const short yyrline[] =
00253 {
00254 0, 181, 185, 185, 189, 196, 203, 227, 231, 235,
00255 239, 244, 250, 256, 263, 267, 276, 282, 291, 296,
00256 308, 312, 316, 320, 327, 331, 338, 342, 349, 353,
00257 357, 361, 365, 369, 373, 381, 385, 393, 397, 405,
00258 409, 417, 421, 425, 433, 437, 441, 449, 453, 457,
00259 461, 469, 473, 477, 481, 485, 492, 496, 500, 504,
00260 508, 515, 520, 527, 532, 539, 543, 547, 552, 557,
00261 564, 569, 574, 582, 586, 590, 594, 599, 600, 609,
00262 614, 619, 624, 629, 634, 639, 644, 649, 653, 657,
00263 661, 665, 669, 677, 681, 688, 692, 702, 711, 718,
00264 741, 745, 749, 756, 761, 769, 775, 783, 787, 794,
00265 799, 804, 809, 817, 821, 828, 832, 840, 844, 848,
00266 852, 856, 860, 864, 871, 875, 883, 889, 900, 908,
00267 912, 916, 920, 924, 929, 939, 943, 947, 954, 961
00268 };
00269 #endif
00270
00271
00272 #if (YYDEBUG) || defined YYERROR_VERBOSE
00273
00274
00275 static const char *const yytname[] =
00276 {
00277 "$", "error", "$undefined.", "T_MATCH_LINE", "T_LINE", "T_INPUT",
00278 "T_AMPERSAND", "T_ASTERISK", "T_CASE", "T_CHARACTER_LITERAL",
00279 "T_CIRCUMFLEX", "T_COLON", "T_COMMA", "T_CONST", "T_DEFAULT", "T_ENUM",
00280 "T_EQUAL", "T_FALSE", "T_FLOATING_PT_LITERAL", "T_GREATER_THAN_SIGN",
00281 "T_IDENTIFIER", "T_IN", "T_INOUT", "T_INTEGER_LITERAL",
00282 "T_LEFT_CURLY_BRACKET", "T_LEFT_PARANTHESIS", "T_LEFT_SQUARE_BRACKET",
00283 "T_LESS_THAN_SIGN", "T_MINUS_SIGN", "T_OUT", "T_PERCENT_SIGN",
00284 "T_PLUS_SIGN", "T_RIGHT_CURLY_BRACKET", "T_RIGHT_PARANTHESIS",
00285 "T_RIGHT_SQUARE_BRACKET", "T_SCOPE", "T_SEMICOLON", "T_SHIFTLEFT",
00286 "T_SHIFTRIGHT", "T_SOLIDUS", "T_STRING_LITERAL", "T_STRUCT", "T_SWITCH",
00287 "T_TILDE", "T_TRUE", "T_VERTICAL_LINE", "T_LESS_OR_EQUAL",
00288 "T_GREATER_OR_EQUAL", "T_ASSIGN", "T_NOTEQUAL", "T_MEMBER", "T_WHILE",
00289 "T_IF", "T_ELSE", "T_FOR", "T_DO", "T_INCR", "T_DECR", "T_MAIN",
00290 "T_FOREACH", "T_SUBST", "T_MATCH", "T_NOT", "T_RETURN", "T_IMPORT",
00291 "T_VAR", "T_CATCH", "T_TRY", "T_RAISE", "T_RANGE", "T_CELL", "T_FROM",
00292 "T_PLUS_ASSIGN", "T_MINUS_ASSIGN", "T_AND", "T_OR", "T_DOLLAR",
00293 "T_UNKNOWN", "specification", "@1", "definitions", "definition",
00294 "import_list", "main", "scoped_name", "assign_expr", "bool_or",
00295 "bool_and", "equal_expr", "or_expr", "xor_expr", "and_expr",
00296 "shift_expr", "add_expr", "mult_expr", "unary_expr", "index_expr",
00297 "func_call_params", "member_expr", "incr_expr", "match_expr",
00298 "primary_expr", "literal", "array_elements", "dict_elements",
00299 "struct_dcl", "struct_exports", "struct_export", "struct_members",
00300 "func_dcl", "func_params", "func_param", "func_body", "func_lines",
00301 "func_line", "catches", "single_catch", "const_dcl", "loops", "else",
00302 "while", "loop_body", 0
00303 };
00304 #endif
00305
00306
00307 static const short yyr1[] =
00308 {
00309 0, 78, 79, 78, 78, 80, 80, 81, 81, 81,
00310 81, 81, 81, 81, 82, 82, 83, 83, 84, 84,
00311 85, 85, 85, 85, 86, 86, 87, 87, 88, 88,
00312 88, 88, 88, 88, 88, 89, 89, 90, 90, 91,
00313 91, 92, 92, 92, 93, 93, 93, 94, 94, 94,
00314 94, 95, 95, 95, 95, 95, 96, 96, 96, 96,
00315 96, 97, 97, 98, 98, 99, 99, 99, 99, 99,
00316 100, 100, 100, 101, 101, 101, 101, 101, 101, 102,
00317 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
00318 102, 102, 102, 103, 103, 104, 104, 105, 106, 106,
00319 107, 107, 107, 108, 108, 109, 109, 110, 110, 111,
00320 111, 111, 111, 112, 112, 113, 113, 114, 114, 114,
00321 114, 114, 114, 114, 115, 115, 116, 116, 117, 118,
00322 118, 118, 118, 118, 118, 119, 119, 119, 120, 121
00323 };
00324
00325
00326 static const short yyr2[] =
00327 {
00328 0, 0, 0, 3, 1, 1, 2, 2, 2, 2,
00329 3, 5, 5, 1, 1, 3, 4, 7, 1, 2,
00330 3, 3, 3, 1, 3, 1, 3, 1, 3, 3,
00331 3, 3, 3, 3, 1, 1, 3, 1, 3, 1,
00332 3, 1, 3, 3, 1, 3, 3, 1, 3, 3,
00333 3, 2, 2, 2, 2, 1, 4, 4, 3, 4,
00334 1, 3, 1, 3, 1, 2, 2, 2, 2, 1,
00335 2, 2, 1, 1, 1, 1, 1, 3, 3, 1,
00336 1, 1, 1, 1, 1, 1, 1, 2, 3, 2,
00337 3, 1, 2, 3, 1, 7, 5, 5, 1, 2,
00338 2, 3, 2, 1, 3, 5, 6, 1, 3, 2,
00339 4, 2, 2, 0, 1, 1, 2, 2, 5, 2,
00340 3, 1, 5, 3, 1, 2, 9, 9, 4, 2,
00341 9, 4, 6, 7, 9, 0, 7, 2, 4, 3
00342 };
00343
00344
00345
00346
00347 static const short yydefact[] =
00348 {
00349 1, 0, 0, 0, 2, 0, 0, 0, 4, 5,
00350 13, 0, 0, 0, 0, 0, 0, 0, 113, 0,
00351 0, 0, 6, 8, 9, 7, 0, 0, 0, 0,
00352 0, 0, 107, 0, 76, 91, 75, 83, 86, 84,
00353 18, 79, 0, 0, 0, 0, 0, 0, 0, 82,
00354 0, 85, 0, 0, 0, 81, 80, 0, 73, 3,
00355 34, 35, 37, 39, 41, 44, 47, 55, 60, 64,
00356 69, 72, 74, 0, 0, 0, 0, 0, 0, 0,
00357 0, 0, 0, 23, 25, 27, 0, 114, 115, 121,
00358 0, 0, 10, 0, 128, 109, 112, 111, 113, 0,
00359 0, 0, 0, 98, 0, 0, 0, 89, 0, 0,
00360 87, 94, 0, 0, 51, 52, 19, 53, 65, 66,
00361 54, 92, 0, 0, 0, 0, 0, 0, 0, 0,
00362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00363 0, 0, 67, 68, 71, 70, 0, 0, 0, 0,
00364 0, 113, 0, 0, 119, 0, 0, 0, 117, 0,
00365 0, 0, 0, 0, 16, 116, 129, 0, 0, 14,
00366 0, 0, 105, 113, 108, 103, 0, 97, 99, 100,
00367 102, 0, 90, 78, 0, 88, 77, 28, 33, 32,
00368 36, 30, 31, 29, 38, 40, 43, 42, 46, 45,
00369 48, 50, 49, 0, 58, 62, 0, 0, 63, 0,
00370 123, 0, 0, 0, 0, 0, 0, 120, 0, 0,
00371 20, 21, 22, 24, 26, 113, 11, 0, 12, 110,
00372 106, 0, 101, 0, 93, 57, 0, 59, 56, 138,
00373 0, 0, 139, 131, 0, 0, 0, 0, 15, 104,
00374 0, 61, 135, 0, 18, 0, 0, 0, 122, 124,
00375 118, 17, 96, 0, 132, 0, 0, 0, 0, 0,
00376 125, 0, 0, 137, 0, 0, 133, 0, 0, 95,
00377 0, 0, 0, 0, 0, 0, 130, 134, 0, 0,
00378 0, 0, 0, 135, 0, 0, 136, 0, 0, 127,
00379 126, 0, 0, 0
00380 };
00381
00382 static const short yydefgoto[] =
00383 {
00384 301, 17, 8, 9, 170, 10, 58, 82, 83, 84,
00385 85, 60, 61, 62, 63, 64, 65, 66, 67, 206,
00386 68, 69, 70, 71, 72, 112, 108, 11, 102, 103,
00387 176, 12, 31, 32, 86, 87, 88, 258, 259, 13,
00388 89, 264, 90, 152
00389 };
00390
00391 static const short yypact[] =
00392 {
00393 -4, 21, -5, 39,-32768, 47, 41, 65,-32768, 10,
00394 -32768, -3, 55, 53, 46, 141, 78, 470, 292, 103,
00395 68, 44,-32768,-32768,-32768,-32768, 470, 92, 102, 111,
00396 109, 116, 123, -1,-32768,-32768,-32768,-32768,-32768,-32768,
00397 -32768,-32768, -10, 470, 22, 470, 133, 133, 132,-32768,
00398 133,-32768, 580, 580, 133,-32768,-32768, 131,-32768,-32768,
00399 74, 151, 169, -9, 42, 4,-32768, 119,-32768,-32768,
00400 26, 79,-32768, 224, 154, 155, 156, 159, 160, 360,
00401 162, 470, 148, 27, 112, 117, 163,-32768, 292,-32768,
00402 159, 161,-32768, 1,-32768, 140,-32768,-32768, 292, 168,
00403 103, 179, 172, -1, 174, 164, 470,-32768, 175, 177,
00404 -32768, 196, 178, 13, 119, 119,-32768, 119,-32768,-32768,
00405 119,-32768, 470, 470, 470, 470, 470, 470, 470, 470,
00406 470, 470, 470, 470, 470, 470, 470, 470, 470, 415,
00407 470, 191,-32768,-32768,-32768,-32768, 470, 181, 470, 470,
00408 470, 292, 165, 194,-32768, 182, 292, 203,-32768, 470,
00409 470, 470, 470, 470,-32768,-32768,-32768, 193, 183, 209,
00410 195, 470,-32768, 292,-32768, 218, 198,-32768,-32768,-32768,
00411 -32768, 220,-32768,-32768, 470,-32768,-32768,-32768,-32768,-32768,
00412 151,-32768,-32768,-32768, 169, -9, 42, 42, 4, 4,
00413 -32768,-32768,-32768, 204,-32768, 223, 205, 206,-32768, 2,
00414 -32768, 210, 212, 217, 207, 221, 234,-32768, 222, 470,
00415 -32768,-32768,-32768,-32768,-32768, 292,-32768, 238,-32768,-32768,
00416 -32768, 179,-32768, 470,-32768,-32768, 470,-32768,-32768,-32768,
00417 159, 470,-32768,-32768, 525, 3, 225, 228,-32768,-32768,
00418 229,-32768, 213, 227, 253, 236, 245, 246,-32768, 3,
00419 -32768,-32768, 260, 0,-32768, 470, 470, 159, 254, 470,
00420 -32768, 248, 252,-32768, 249, 251,-32768, 273, 276,-32768,
00421 470, 159, 159, 269, 270, 265,-32768,-32768, 266, 271,
00422 159, 278, 279, 213, 292, 292,-32768, 274, 275,-32768,
00423 -32768, 305, 308,-32768
00424 };
00425
00426 static const short yypgoto[] =
00427 {
00428 -32768,-32768, 302,-32768, 86,-32768,-32768, -43, 152, 158,
00429 -13, 277, 199, 197, 200, 33, 38, 11, 80, 89,
00430 -32768,-32768, 114,-32768,-32768, 144, 58,-32768, 230,-32768,
00431 100, -27, -12,-32768, -96, -70,-32768, 75,-32768, -23,
00432 -32768, 45, 185, -85
00433 };
00434
00435
00436 #define YYLAST 656
00437
00438
00439 static const short yytable[] =
00440 {
00441 109, 111, 172, 147, 59, 166, 104, 91, 168, 1,
00442 105, 135, 1, 94, 233, 106, 2, 256, 165, 2,
00443 15, 169, 107, 1, 151, 34, 35, 36, 131, 132,
00444 2, 37, 186, 23, 136, 183, 155, 3, 157, 38,
00445 39, 14, 40, 137, 4, 41, 42, 43, 44, 45,
00446 46, 3, 272, 47, 5, 214, 110, 48, 125, 16,
00447 6, 20, 49, 181, 101, 50, 51, 7, 5, 257,
00448 133, 18, 19, 134, 6, 159, 104, 230, 52, 53,
00449 105, 7, 142, 143, 54, 21, 218, 24, 174, 25,
00450 122, 55, 56, 123, 26, 203, 205, 207, 57, 160,
00451 161, 124, 33, 209, 92, 211, 212, 213, 93, 187,
00452 188, 189, 95, 191, 192, 193, 220, 221, 222, 125,
00453 126, 127, 96, 128, 27, 28, 114, 115, 229, 247,
00454 117, 97, 29, 98, 120, 100, 34, 35, 36, 144,
00455 145, 111, 37, 138, 139, 140, 200, 201, 202, 99,
00456 38, 39, 116, 40, 121, 252, 41, 42, 43, 44,
00457 45, 129, 27, 28, 196, 197, 118, 119, 48, 141,
00458 29, 198, 199, 49, 30, 130, 246, 51, 273, 148,
00459 149, 150, 276, 151, 158, 153, 156, 162, 171, 52,
00460 53, 163, 173, 205, 167, 164, 286, 287, 253, 175,
00461 180, 255, 55, 56, 177, 293, 179, 182, 184, 57,
00462 183, 208, 185, 210, 216, 219, 74, 225, 217, 226,
00463 250, 227, 274, 275, 297, 298, 278, 34, 35, 36,
00464 231, 228, 233, 37, 232, 236, 235, 285, 237, 242,
00465 238, 38, 39, 239, 40, 240, 244, 41, 73, 146,
00466 44, 45, 46, 241, 245, 47, 107, 243, 169, 48,
00467 261, 260, 262, 265, 49, 266, 263, 50, 51, 267,
00468 268, 269, 271, 106, 277, 74, 75, 280, 76, 77,
00469 52, 53, 281, 78, 282, 283, 54, 79, 284, 288,
00470 289, 80, 81, 55, 56, 34, 35, 36, 290, 291,
00471 57, 37, 294, 295, 292, 302, 299, 300, 303, 38,
00472 39, 22, 40, 248, 223, 41, 73, 43, 44, 45,
00473 46, 224, 113, 47, 190, 251, 194, 48, 234, 279,
00474 195, 249, 49, 178, 270, 50, 51, 215, 296, 0,
00475 0, 0, 0, 74, 75, 0, 76, 77, 52, 53,
00476 0, 78, 0, 0, 54, 79, 0, 0, 0, 80,
00477 81, 55, 56, 34, 35, 36, 0, 0, 57, 37,
00478 0, 0, 0, 0, 0, 0, 0, 38, 39, 0,
00479 40, 0, 0, 41, 42, 43, 44, 45, 46, 0,
00480 0, 47, 0, 0, 0, 48, 154, 0, 0, 0,
00481 49, 0, 0, 50, 51, 0, 0, 0, 0, 0,
00482 0, 0, 0, 0, 0, 0, 52, 53, 34, 35,
00483 36, 0, 54, 0, 37, 0, 0, 0, 0, 55,
00484 56, 0, 38, 39, 0, 40, 57, 0, 41, 42,
00485 43, 44, 45, 46, 0, 0, 47, 0, 204, 0,
00486 48, 0, 0, 0, 0, 49, 0, 0, 50, 51,
00487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00488 0, 52, 53, 34, 35, 36, 0, 54, 0, 37,
00489 0, 0, 0, 0, 55, 56, 0, 38, 39, 0,
00490 40, 57, 0, 41, 42, 43, 44, 45, 46, 0,
00491 0, 47, 0, 0, 0, 48, 0, 0, 0, 0,
00492 49, 0, 0, 50, 51, 0, 0, 0, 0, 0,
00493 0, 0, 0, 0, 0, 0, 52, 53, 34, 35,
00494 36, 0, 54, 0, 37, 0, 0, 0, 0, 55,
00495 56, 0, 38, 39, 0, 254, 57, 0, 41, 42,
00496 43, 44, 45, 46, 0, 0, 47, 0, 0, 0,
00497 48, 0, 0, 0, 0, 49, 0, 0, 50, 51,
00498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00499 0, 52, 53, 34, 35, 36, 0, 54, 0, 37,
00500 0, 0, 0, 0, 55, 56, 0, 38, 39, 0,
00501 40, 57, 0, 41, 42, 43, 44, 45, 0, 0,
00502 0, 0, 0, 0, 0, 48, 0, 0, 0, 0,
00503 49, 0, 0, 0, 51, 0, 0, 0, 0, 0,
00504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00505 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
00506 56, 0, 0, 0, 0, 0, 57
00507 };
00508
00509 static const short yycheck[] =
00510 {
00511 43, 44, 98, 73, 17, 90, 33, 19, 7, 13,
00512 33, 7, 13, 26, 12, 25, 20, 14, 88, 20,
00513 25, 20, 32, 13, 24, 3, 4, 5, 37, 38,
00514 20, 9, 19, 36, 30, 33, 79, 41, 81, 17,
00515 18, 20, 20, 39, 48, 23, 24, 25, 26, 27,
00516 28, 41, 52, 31, 58, 151, 34, 35, 45, 20,
00517 64, 20, 40, 106, 65, 43, 44, 71, 58, 66,
00518 28, 24, 25, 31, 64, 48, 103, 173, 56, 57,
00519 103, 71, 56, 57, 62, 20, 156, 32, 100, 36,
00520 16, 69, 70, 19, 48, 138, 139, 140, 76, 72,
00521 73, 27, 24, 146, 36, 148, 149, 150, 64, 122,
00522 123, 124, 20, 126, 127, 128, 159, 160, 161, 45,
00523 46, 47, 20, 49, 21, 22, 46, 47, 171, 225,
00524 50, 20, 29, 24, 54, 12, 3, 4, 5, 60,
00525 61, 184, 9, 24, 25, 26, 135, 136, 137, 33,
00526 17, 18, 20, 20, 23, 240, 23, 24, 25, 26,
00527 27, 10, 21, 22, 131, 132, 52, 53, 35, 50,
00528 29, 133, 134, 40, 33, 6, 219, 44, 263, 25,
00529 25, 25, 267, 24, 36, 25, 24, 75, 48, 56,
00530 57, 74, 24, 236, 33, 32, 281, 282, 241, 20,
00531 36, 244, 69, 70, 32, 290, 32, 32, 12, 76,
00532 33, 20, 34, 32, 20, 12, 51, 24, 36, 36,
00533 233, 12, 265, 266, 294, 295, 269, 3, 4, 5,
00534 12, 36, 12, 9, 36, 12, 32, 280, 33, 32,
00535 34, 17, 18, 33, 20, 33, 12, 23, 24, 25,
00536 26, 27, 28, 36, 32, 31, 32, 36, 20, 35,
00537 32, 36, 33, 36, 40, 12, 53, 43, 44, 33,
00538 25, 25, 12, 25, 20, 51, 52, 25, 54, 55,
00539 56, 57, 33, 59, 33, 12, 62, 63, 12, 20,
00540 20, 67, 68, 69, 70, 3, 4, 5, 33, 33,
00541 76, 9, 24, 24, 33, 0, 32, 32, 0, 17,
00542 18, 9, 20, 227, 162, 23, 24, 25, 26, 27,
00543 28, 163, 45, 31, 125, 236, 129, 35, 184, 271,
00544 130, 231, 40, 103, 259, 43, 44, 152, 293, -1,
00545 -1, -1, -1, 51, 52, -1, 54, 55, 56, 57,
00546 -1, 59, -1, -1, 62, 63, -1, -1, -1, 67,
00547 68, 69, 70, 3, 4, 5, -1, -1, 76, 9,
00548 -1, -1, -1, -1, -1, -1, -1, 17, 18, -1,
00549 20, -1, -1, 23, 24, 25, 26, 27, 28, -1,
00550 -1, 31, -1, -1, -1, 35, 36, -1, -1, -1,
00551 40, -1, -1, 43, 44, -1, -1, -1, -1, -1,
00552 -1, -1, -1, -1, -1, -1, 56, 57, 3, 4,
00553 5, -1, 62, -1, 9, -1, -1, -1, -1, 69,
00554 70, -1, 17, 18, -1, 20, 76, -1, 23, 24,
00555 25, 26, 27, 28, -1, -1, 31, -1, 33, -1,
00556 35, -1, -1, -1, -1, 40, -1, -1, 43, 44,
00557 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
00558 -1, 56, 57, 3, 4, 5, -1, 62, -1, 9,
00559 -1, -1, -1, -1, 69, 70, -1, 17, 18, -1,
00560 20, 76, -1, 23, 24, 25, 26, 27, 28, -1,
00561 -1, 31, -1, -1, -1, 35, -1, -1, -1, -1,
00562 40, -1, -1, 43, 44, -1, -1, -1, -1, -1,
00563 -1, -1, -1, -1, -1, -1, 56, 57, 3, 4,
00564 5, -1, 62, -1, 9, -1, -1, -1, -1, 69,
00565 70, -1, 17, 18, -1, 20, 76, -1, 23, 24,
00566 25, 26, 27, 28, -1, -1, 31, -1, -1, -1,
00567 35, -1, -1, -1, -1, 40, -1, -1, 43, 44,
00568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
00569 -1, 56, 57, 3, 4, 5, -1, 62, -1, 9,
00570 -1, -1, -1, -1, 69, 70, -1, 17, 18, -1,
00571 20, 76, -1, 23, 24, 25, 26, 27, -1, -1,
00572 -1, -1, -1, -1, -1, 35, -1, -1, -1, -1,
00573 40, -1, -1, -1, 44, -1, -1, -1, -1, -1,
00574 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
00575 -1, -1, -1, -1, -1, -1, -1, -1, -1, 69,
00576 70, -1, -1, -1, -1, -1, 76
00577 };
00578
00579 #line 3 "/usr/share/bison/bison.simple"
00580
00581
00582
00583
00584
00585
00586
00587
00588
00589
00590
00591
00592
00593
00594
00595
00596
00597
00598
00599
00600
00601
00602
00603
00604
00605
00606
00607
00608
00609
00610
00611
00612
00613
00614
00615
00616
00617
00618 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
00619
00620
00621
00622 # if YYSTACK_USE_ALLOCA
00623 # define YYSTACK_ALLOC alloca
00624 # else
00625 # ifndef YYSTACK_USE_ALLOCA
00626 # if defined (alloca) || defined (_ALLOCA_H)
00627 # define YYSTACK_ALLOC alloca
00628 # else
00629 # ifdef __GNUC__
00630 # define YYSTACK_ALLOC __builtin_alloca
00631 # endif
00632 # endif
00633 # endif
00634 # endif
00635
00636 # ifdef YYSTACK_ALLOC
00637
00638 # define YYSTACK_FREE(Ptr) do { ; } while (0)
00639 # else
00640 # if defined (__STDC__) || defined (__cplusplus)
00641 # include <stdlib.h>
00642 # define YYSIZE_T size_t
00643 # endif
00644 # define YYSTACK_ALLOC malloc
00645 # define YYSTACK_FREE free
00646 # endif
00647 #endif
00648
00649
00650 #if (! defined (yyoverflow) \
00651 && (! defined (__cplusplus) \
00652 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
00653
00654
00655 union yyalloc
00656 {
00657 short yyss;
00658 YYSTYPE yyvs;
00659 # if YYLSP_NEEDED
00660 YYLTYPE yyls;
00661 # endif
00662 };
00663
00664
00665 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
00666
00667
00668
00669 # if YYLSP_NEEDED
00670 # define YYSTACK_BYTES(N) \
00671 ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
00672 + 2 * YYSTACK_GAP_MAX)
00673 # else
00674 # define YYSTACK_BYTES(N) \
00675 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
00676 + YYSTACK_GAP_MAX)
00677 # endif
00678
00679
00680
00681 # ifndef YYCOPY
00682 # if 1 < __GNUC__
00683 # define YYCOPY(To, From, Count) \
00684 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00685 # else
00686 # define YYCOPY(To, From, Count) \
00687 do \
00688 { \
00689 register YYSIZE_T yyi; \
00690 for (yyi = 0; yyi < (Count); yyi++) \
00691 (To)[yyi] = (From)[yyi]; \
00692 } \
00693 while (0)
00694 # endif
00695 # endif
00696
00697
00698
00699
00700
00701
00702 # define YYSTACK_RELOCATE(Stack) \
00703 do \
00704 { \
00705 YYSIZE_T yynewbytes; \
00706 YYCOPY (&yyptr->Stack, Stack, yysize); \
00707 Stack = &yyptr->Stack; \
00708 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
00709 yyptr += yynewbytes / sizeof (*yyptr); \
00710 } \
00711 while (0)
00712
00713 #endif
00714
00715
00716 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
00717 # define YYSIZE_T __SIZE_TYPE__
00718 #endif
00719 #if ! defined (YYSIZE_T) && defined (size_t)
00720 # define YYSIZE_T size_t
00721 #endif
00722 #if ! defined (YYSIZE_T)
00723 # if defined (__STDC__) || defined (__cplusplus)
00724 # include <stddef.h>
00725 # define YYSIZE_T size_t
00726 # endif
00727 #endif
00728 #if ! defined (YYSIZE_T)
00729 # define YYSIZE_T unsigned int
00730 #endif
00731
00732 #define yyerrok (yyerrstatus = 0)
00733 #define yyclearin (yychar = YYEMPTY)
00734 #define YYEMPTY -2
00735 #define YYEOF 0
00736 #define YYACCEPT goto yyacceptlab
00737 #define YYABORT goto yyabortlab
00738 #define YYERROR goto yyerrlab1
00739
00740
00741
00742 #define YYFAIL goto yyerrlab
00743 #define YYRECOVERING() (!!yyerrstatus)
00744 #define YYBACKUP(Token, Value) \
00745 do \
00746 if (yychar == YYEMPTY && yylen == 1) \
00747 { \
00748 yychar = (Token); \
00749 yylval = (Value); \
00750 yychar1 = YYTRANSLATE (yychar); \
00751 YYPOPSTACK; \
00752 goto yybackup; \
00753 } \
00754 else \
00755 { \
00756 yyerror ("syntax error: cannot back up"); \
00757 YYERROR; \
00758 } \
00759 while (0)
00760
00761 #define YYTERROR 1
00762 #define YYERRCODE 256
00763
00764
00765
00766
00767
00768
00769
00770
00771
00772 #ifndef YYLLOC_DEFAULT
00773 # define YYLLOC_DEFAULT(Current, Rhs, N) \
00774 Current.last_line = Rhs[N].last_line; \
00775 Current.last_column = Rhs[N].last_column;
00776 #endif
00777
00778
00779
00780
00781 #if YYPURE
00782 # if YYLSP_NEEDED
00783 # ifdef YYLEX_PARAM
00784 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
00785 # else
00786 # define YYLEX yylex (&yylval, &yylloc)
00787 # endif
00788 # else
00789 # ifdef YYLEX_PARAM
00790 # define YYLEX yylex (&yylval, YYLEX_PARAM)
00791 # else
00792 # define YYLEX yylex (&yylval)
00793 # endif
00794 # endif
00795 #else
00796 # define YYLEX yylex ()
00797 #endif
00798
00799
00800
00801 #if YYDEBUG
00802
00803 # ifndef YYFPRINTF
00804 # include <stdio.h>
00805 # define YYFPRINTF fprintf
00806 # endif
00807
00808 # define YYDPRINTF(Args) \
00809 do { \
00810 if (yydebug) \
00811 YYFPRINTF Args; \
00812 } while (0)
00813
00814
00815 int yydebug;
00816 #else
00817 # define YYDPRINTF(Args)
00818 #endif
00819
00820
00821 #ifndef YYINITDEPTH
00822 # define YYINITDEPTH 200
00823 #endif
00824
00825
00826
00827
00828
00829
00830
00831
00832 #if YYMAXDEPTH == 0
00833 # undef YYMAXDEPTH
00834 #endif
00835
00836 #ifndef YYMAXDEPTH
00837 # define YYMAXDEPTH 10000
00838 #endif
00839
00840 #ifdef YYERROR_VERBOSE
00841
00842 # ifndef yystrlen
00843 # if defined (__GLIBC__) && defined (_STRING_H)
00844 # define yystrlen strlen
00845 # else
00846
00847 static YYSIZE_T
00848 # if defined (__STDC__) || defined (__cplusplus)
00849 yystrlen (const char *yystr)
00850 # else
00851 yystrlen (yystr)
00852 const char *yystr;
00853 # endif
00854 {
00855 register const char *yys = yystr;
00856
00857 while (*yys++ != '\0')
00858 continue;
00859
00860 return yys - yystr - 1;
00861 }
00862 # endif
00863 # endif
00864
00865 # ifndef yystpcpy
00866 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
00867 # define yystpcpy stpcpy
00868 # else
00869
00870
00871 static char *
00872 # if defined (__STDC__) || defined (__cplusplus)
00873 yystpcpy (char *yydest, const char *yysrc)
00874 # else
00875 yystpcpy (yydest, yysrc)
00876 char *yydest;
00877 const char *yysrc;
00878 # endif
00879 {
00880 register char *yyd = yydest;
00881 register const char *yys = yysrc;
00882
00883 while ((*yyd++ = *yys++) != '\0')
00884 continue;
00885
00886 return yyd - 1;
00887 }
00888 # endif
00889 # endif
00890 #endif
00891
00892 #line 315 "/usr/share/bison/bison.simple"
00893
00894
00895
00896
00897
00898
00899
00900
00901 #ifdef YYPARSE_PARAM
00902 # if defined (__STDC__) || defined (__cplusplus)
00903 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
00904 # define YYPARSE_PARAM_DECL
00905 # else
00906 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
00907 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
00908 # endif
00909 #else
00910 # define YYPARSE_PARAM_ARG
00911 # define YYPARSE_PARAM_DECL
00912 #endif
00913
00914
00915 #ifdef __GNUC__
00916 # ifdef YYPARSE_PARAM
00917 int yyparse (void *);
00918 # else
00919 int yyparse (void);
00920 # endif
00921 #endif
00922
00923
00924
00925
00926 #define YY_DECL_NON_LSP_VARIABLES \
00927 \
00928 int yychar; \
00929 \
00930 \
00931 YYSTYPE yylval; \
00932 \
00933 \
00934 int yynerrs;
00935
00936 #if YYLSP_NEEDED
00937 # define YY_DECL_VARIABLES \
00938 YY_DECL_NON_LSP_VARIABLES \
00939 \
00940 \
00941 YYLTYPE yylloc;
00942 #else
00943 # define YY_DECL_VARIABLES \
00944 YY_DECL_NON_LSP_VARIABLES
00945 #endif
00946
00947
00948
00949
00950 #if !YYPURE
00951 YY_DECL_VARIABLES
00952 #endif
00953
00954 int
00955 yyparse (YYPARSE_PARAM_ARG)
00956 YYPARSE_PARAM_DECL
00957 {
00958
00959 #if YYPURE
00960 YY_DECL_VARIABLES
00961 #endif
00962
00963 register int yystate;
00964 register int yyn;
00965 int yyresult;
00966
00967 int yyerrstatus;
00968
00969 int yychar1 = 0;
00970
00971
00972
00973
00974
00975
00976
00977
00978
00979
00980 short yyssa[YYINITDEPTH];
00981 short *yyss = yyssa;
00982 register short *yyssp;
00983
00984
00985 YYSTYPE yyvsa[YYINITDEPTH];
00986 YYSTYPE *yyvs = yyvsa;
00987 register YYSTYPE *yyvsp;
00988
00989 #if YYLSP_NEEDED
00990
00991 YYLTYPE yylsa[YYINITDEPTH];
00992 YYLTYPE *yyls = yylsa;
00993 YYLTYPE *yylsp;
00994 #endif
00995
00996 #if YYLSP_NEEDED
00997 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
00998 #else
00999 # define YYPOPSTACK (yyvsp--, yyssp--)
01000 #endif
01001
01002 YYSIZE_T yystacksize = YYINITDEPTH;
01003
01004
01005
01006
01007 YYSTYPE yyval;
01008 #if YYLSP_NEEDED
01009 YYLTYPE yyloc;
01010 #endif
01011
01012
01013
01014 int yylen;
01015
01016 YYDPRINTF ((stderr, "Starting parse\n"));
01017
01018 yystate = 0;
01019 yyerrstatus = 0;
01020 yynerrs = 0;
01021 yychar = YYEMPTY;
01022
01023
01024
01025
01026
01027
01028 yyssp = yyss;
01029 yyvsp = yyvs;
01030 #if YYLSP_NEEDED
01031 yylsp = yyls;
01032 #endif
01033 goto yysetstate;
01034
01035
01036
01037
01038 yynewstate:
01039
01040
01041
01042 yyssp++;
01043
01044 yysetstate:
01045 *yyssp = yystate;
01046
01047 if (yyssp >= yyss + yystacksize - 1)
01048 {
01049
01050 YYSIZE_T yysize = yyssp - yyss + 1;
01051
01052 #ifdef yyoverflow
01053 {
01054
01055
01056
01057 YYSTYPE *yyvs1 = yyvs;
01058 short *yyss1 = yyss;
01059
01060
01061
01062 # if YYLSP_NEEDED
01063 YYLTYPE *yyls1 = yyls;
01064
01065
01066 yyoverflow ("parser stack overflow",
01067 &yyss1, yysize * sizeof (*yyssp),
01068 &yyvs1, yysize * sizeof (*yyvsp),
01069 &yyls1, yysize * sizeof (*yylsp),
01070 &yystacksize);
01071 yyls = yyls1;
01072 # else
01073 yyoverflow ("parser stack overflow",
01074 &yyss1, yysize * sizeof (*yyssp),
01075 &yyvs1, yysize * sizeof (*yyvsp),
01076 &yystacksize);
01077 # endif
01078 yyss = yyss1;
01079 yyvs = yyvs1;
01080 }
01081 #else
01082 # ifndef YYSTACK_RELOCATE
01083 goto yyoverflowlab;
01084 # else
01085
01086 if (yystacksize >= YYMAXDEPTH)
01087 goto yyoverflowlab;
01088 yystacksize *= 2;
01089 if (yystacksize > YYMAXDEPTH)
01090 yystacksize = YYMAXDEPTH;
01091
01092 {
01093 short *yyss1 = yyss;
01094 union yyalloc *yyptr =
01095 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
01096 if (! yyptr)
01097 goto yyoverflowlab;
01098 YYSTACK_RELOCATE (yyss);
01099 YYSTACK_RELOCATE (yyvs);
01100 # if YYLSP_NEEDED
01101 YYSTACK_RELOCATE (yyls);
01102 # endif
01103 # undef YYSTACK_RELOCATE
01104 if (yyss1 != yyssa)
01105 YYSTACK_FREE (yyss1);
01106 }
01107 # endif
01108 #endif
01109
01110 yyssp = yyss + yysize - 1;
01111 yyvsp = yyvs + yysize - 1;
01112 #if YYLSP_NEEDED
01113 yylsp = yyls + yysize - 1;
01114 #endif
01115
01116 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
01117 (unsigned long int) yystacksize));
01118
01119 if (yyssp >= yyss + yystacksize - 1)
01120 YYABORT;
01121 }
01122
01123 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
01124
01125 goto yybackup;
01126
01127
01128
01129
01130
01131 yybackup:
01132
01133
01134
01135
01136
01137
01138
01139 yyn = yypact[yystate];
01140 if (yyn == YYFLAG)
01141 goto yydefault;
01142
01143
01144
01145
01146
01147
01148 if (yychar == YYEMPTY)
01149 {
01150 YYDPRINTF ((stderr, "Reading a token: "));
01151 yychar = YYLEX;
01152 }
01153
01154
01155
01156 if (yychar <= 0)
01157 {
01158 yychar1 = 0;
01159 yychar = YYEOF;
01160
01161 YYDPRINTF ((stderr, "Now at end of input.\n"));
01162 }
01163 else
01164 {
01165 yychar1 = YYTRANSLATE (yychar);
01166
01167 #if YYDEBUG
01168
01169
01170 if (yydebug)
01171 {
01172 YYFPRINTF (stderr, "Next token is %d (%s",
01173 yychar, yytname[yychar1]);
01174
01175
01176 # ifdef YYPRINT
01177 YYPRINT (stderr, yychar, yylval);
01178 # endif
01179 YYFPRINTF (stderr, ")\n");
01180 }
01181 #endif
01182 }
01183
01184 yyn += yychar1;
01185 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
01186 goto yydefault;
01187
01188 yyn = yytable[yyn];
01189
01190
01191
01192
01193
01194
01195
01196
01197 if (yyn < 0)
01198 {
01199 if (yyn == YYFLAG)
01200 goto yyerrlab;
01201 yyn = -yyn;
01202 goto yyreduce;
01203 }
01204 else if (yyn == 0)
01205 goto yyerrlab;
01206
01207 if (yyn == YYFINAL)
01208 YYACCEPT;
01209
01210
01211 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
01212 yychar, yytname[yychar1]));
01213
01214
01215 if (yychar != YYEOF)
01216 yychar = YYEMPTY;
01217
01218 *++yyvsp = yylval;
01219 #if YYLSP_NEEDED
01220 *++yylsp = yylloc;
01221 #endif
01222
01223
01224
01225 if (yyerrstatus)
01226 yyerrstatus--;
01227
01228 yystate = yyn;
01229 goto yynewstate;
01230
01231
01232
01233
01234
01235 yydefault:
01236 yyn = yydefact[yystate];
01237 if (yyn == 0)
01238 goto yyerrlab;
01239 goto yyreduce;
01240
01241
01242
01243
01244
01245 yyreduce:
01246
01247 yylen = yyr2[yyn];
01248
01249
01250
01251
01252
01253
01254
01255
01256
01257 yyval = yyvsp[1-yylen];
01258
01259 #if YYLSP_NEEDED
01260
01261
01262 yyloc = yylsp[1-yylen];
01263 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
01264 #endif
01265
01266 #if YYDEBUG
01267
01268
01269 if (yydebug)
01270 {
01271 int yyi;
01272
01273 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
01274 yyn, yyrline[yyn]);
01275
01276
01277 for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
01278 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
01279 YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
01280 }
01281 #endif
01282
01283 switch (yyn) {
01284
01285 case 1:
01286 #line 182 "yacc.yy"
01287 {
01288 theParser->setRootNode( NULL );
01289 ;
01290 break;}
01291 case 2:
01292 #line 185 "yacc.yy"
01293 { kspread_mode(); ;
01294 break;}
01295 case 3:
01296 #line 186 "yacc.yy"
01297 {
01298 theParser->setRootNode( yyvsp[0].node );
01299 ;
01300 break;}
01301 case 4:
01302 #line 190 "yacc.yy"
01303 {
01304 theParser->setRootNode( new KSParseNode( definitions, yyvsp[0].node ) );
01305 ;
01306 break;}
01307 case 5:
01308 #line 197 "yacc.yy"
01309 {
01310 if ( yyvsp[0].node != 0 )
01311 {
01312 yyval.node = new KSParseNode( definitions, yyvsp[0].node );
01313 }
01314 ;
01315 break;}
01316 case 6:
01317 #line 204 "yacc.yy"
01318 {
01319 if ( yyvsp[-1].node != 0 && yyvsp[0].node != 0 )
01320 {
01321 yyval.node = new KSParseNode( definitions, yyvsp[-1].node );
01322 yyval.node->setBranch( 2, yyvsp[0].node );
01323 }
01324 else if ( yyvsp[-1].node != 0 )
01325 {
01326 yyval.node = new KSParseNode( definitions, yyvsp[-1].node );
01327 }
01328 else if ( yyvsp[0].node != 0 )
01329 {
01330 yyval.node = new KSParseNode( definitions, yyvsp[0].node );
01331 }
01332 else
01333 {
01334 yyval.node = 0;
01335 }
01336 ;
01337 break;}
01338 case 7:
01339 #line 228 "yacc.yy"
01340 {
01341 yyval.node = yyvsp[-1].node;
01342 ;
01343 break;}
01344 case 8:
01345 #line 232 "yacc.yy"
01346 {
01347 yyval.node = yyvsp[-1].node;
01348 ;
01349 break;}
01350 case 9:
01351 #line 236 "yacc.yy"
01352 {
01353 yyval.node = yyvsp[-1].node;
01354 ;
01355 break;}
01356 case 10:
01357 #line 240 "yacc.yy"
01358 {
01359 yyval.node = new KSParseNode( import );
01360 yyval.node->setIdent( yyvsp[-1].ident );
01361 ;
01362 break;}
01363 case 11:
01364 #line 245 "yacc.yy"
01365 {
01366 yyval.node = new KSParseNode( from );
01367 yyval.node->setIdent( yyvsp[-3].ident );
01368 yyval.node->setStringLiteral( QString( "" ) );
01369 ;
01370 break;}
01371 case 12:
01372 #line 251 "yacc.yy"
01373 {
01374 yyval.node = new KSParseNode( from );
01375 yyval.node->setIdent( yyvsp[-3].ident );
01376 yyval.node->setStringLiteral( yyvsp[-1]._str );
01377 ;
01378 break;}
01379 case 13:
01380 #line 257 "yacc.yy"
01381 {
01382 yyval.node = yyvsp[0].node;
01383 ;
01384 break;}
01385 case 14:
01386 #line 264 "yacc.yy"
01387 {
01388 yyval._str = yyvsp[0].ident;
01389 ;
01390 break;}
01391 case 15:
01392 #line 268 "yacc.yy"
01393 {
01394 (*yyvsp[-2].ident) += "/";
01395 (*yyvsp[-2].ident) += (*yyvsp[0]._str);
01396 yyval._str = yyvsp[-2].ident;
01397 ;
01398 break;}
01399 case 16:
01400 #line 277 "yacc.yy"
01401 {
01402 yyval.node = new KSParseNode( func_dcl );
01403 yyval.node->setBranch( 2, yyvsp[-1].node );
01404 yyval.node->setIdent( "main" );
01405 ;
01406 break;}
01407 case 17:
01408 #line 283 "yacc.yy"
01409 {
01410 yyval.node = new KSParseNode( func_dcl, yyvsp[-4].node, yyvsp[-1].node );
01411 yyval.node->setIdent( "main" );
01412 ;
01413 break;}
01414 case 18:
01415 #line 292 "yacc.yy"
01416 {
01417 yyval.node = new KSParseNode( scoped_name );
01418 yyval.node->setIdent( yyvsp[0].ident );
01419 ;
01420 break;}
01421 case 19:
01422 #line 297 "yacc.yy"
01423 {
01424 yyval.node = new KSParseNode( scoped_name );
01425 QString name = "::";
01426 name += *(yyvsp[0].ident);
01427 delete yyvsp[0].ident;
01428 yyval.node->setIdent( name );
01429 ;
01430 break;}
01431 case 20:
01432 #line 309 "yacc.yy"
01433 {
01434 yyval.node = new KSParseNode( assign_expr, yyvsp[-2].node, yyvsp[0].node );
01435 ;
01436 break;}
01437 case 21:
01438 #line 313 "yacc.yy"
01439 {
01440 yyval.node = new KSParseNode( plus_assign, yyvsp[-2].node, yyvsp[0].node );
01441 ;
01442 break;}
01443 case 22:
01444 #line 317 "yacc.yy"
01445 {
01446 yyval.node = new KSParseNode( minus_assign, yyvsp[-2].node, yyvsp[0].node );
01447 ;
01448 break;}
01449 case 23:
01450 #line 321 "yacc.yy"
01451 {
01452 yyval.node = yyvsp[0].node;
01453 ;
01454 break;}
01455 case 24:
01456 #line 328 "yacc.yy"
01457 {
01458 yyval.node = new KSParseNode( bool_or, yyvsp[-2].node, yyvsp[0].node );
01459 ;
01460 break;}
01461 case 25:
01462 #line 332 "yacc.yy"
01463 {
01464 yyval.node = yyvsp[0].node;
01465 ;
01466 break;}
01467 case 26:
01468 #line 339 "yacc.yy"
01469 {
01470 yyval.node = new KSParseNode( bool_and, yyvsp[-2].node, yyvsp[0].node );
01471 ;
01472 break;}
01473 case 27:
01474 #line 343 "yacc.yy"
01475 {
01476 yyval.node = yyvsp[0].node;
01477 ;
01478 break;}
01479 case 28:
01480 #line 350 "yacc.yy"
01481 {
01482 yyval.node = new KSParseNode( t_equal, yyvsp[-2].node, yyvsp[0].node );
01483 ;
01484 break;}
01485 case 29:
01486 #line 354 "yacc.yy"
01487 {
01488 yyval.node = new KSParseNode( t_notequal, yyvsp[-2].node, yyvsp[0].node );
01489 ;
01490 break;}
01491 case 30:
01492 #line 358 "yacc.yy"
01493 {
01494 yyval.node = new KSParseNode( t_less_or_equal, yyvsp[-2].node, yyvsp[0].node );
01495 ;
01496 break;}
01497 case 31:
01498 #line 362 "yacc.yy"
01499 {
01500 yyval.node = new KSParseNode( t_greater_or_equal, yyvsp[-2].node, yyvsp[0].node );
01501 ;
01502 break;}
01503 case 32:
01504 #line 366 "yacc.yy"
01505 {
01506 yyval.node = new KSParseNode( t_less, yyvsp[-2].node, yyvsp[0].node );
01507 ;
01508 break;}
01509 case 33:
01510 #line 370 "yacc.yy"
01511 {
01512 yyval.node = new KSParseNode( t_greater, yyvsp[-2].node, yyvsp[0].node );
01513 ;
01514 break;}
01515 case 34:
01516 #line 374 "yacc.yy"
01517 {
01518 yyval.node = yyvsp[0].node;
01519 ;
01520 break;}
01521 case 35:
01522 #line 382 "yacc.yy"
01523 {
01524 yyval.node = yyvsp[0].node;
01525 ;
01526 break;}
01527 case 36:
01528 #line 386 "yacc.yy"
01529 {
01530 yyval.node = new KSParseNode( t_vertical_line, yyvsp[-2].node, yyvsp[0].node );
01531 ;
01532 break;}
01533 case 37:
01534 #line 394 "yacc.yy"
01535 {
01536 yyval.node = yyvsp[0].node;
01537 ;
01538 break;}
01539 case 38:
01540 #line 398 "yacc.yy"
01541 {
01542 yyval.node = new KSParseNode( t_circumflex, yyvsp[-2].node, yyvsp[0].node );
01543 ;
01544 break;}
01545 case 39:
01546 #line 406 "yacc.yy"
01547 {
01548 yyval.node = yyvsp[0].node;
01549 ;
01550 break;}
01551 case 40:
01552 #line 410 "yacc.yy"
01553 {
01554 yyval.node = new KSParseNode( t_ampersand, yyvsp[-2].node, yyvsp[0].node );
01555 ;
01556 break;}
01557 case 41:
01558 #line 418 "yacc.yy"
01559 {
01560 yyval.node = yyvsp[0].node;
01561 ;
01562 break;}
01563 case 42:
01564 #line 422 "yacc.yy"
01565 {
01566 yyval.node = new KSParseNode( t_shiftright, yyvsp[-2].node, yyvsp[0].node );
01567 ;
01568 break;}
01569 case 43:
01570 #line 426 "yacc.yy"
01571 {
01572 yyval.node = new KSParseNode( t_shiftleft, yyvsp[-2].node, yyvsp[0].node );
01573 ;
01574 break;}
01575 case 44:
01576 #line 434 "yacc.yy"
01577 {
01578 yyval.node = yyvsp[0].node;
01579 ;
01580 break;}
01581 case 45:
01582 #line 438 "yacc.yy"
01583 {
01584 yyval.node = new KSParseNode( t_plus_sign, yyvsp[-2].node, yyvsp[0].node );
01585 ;
01586 break;}
01587 case 46:
01588 #line 442 "yacc.yy"
01589 {
01590 yyval.node = new KSParseNode( t_minus_sign, yyvsp[-2].node, yyvsp[0].node );
01591 ;
01592 break;}
01593 case 47:
01594 #line 450 "yacc.yy"
01595 {
01596 yyval.node = yyvsp[0].node;
01597 ;
01598 break;}
01599 case 48:
01600 #line 454 "yacc.yy"
01601 {
01602 yyval.node = new KSParseNode( t_asterik, yyvsp[-2].node, yyvsp[0].node );
01603 ;
01604 break;}
01605 case 49:
01606 #line 458 "yacc.yy"
01607 {
01608 yyval.node = new KSParseNode( t_solidus, yyvsp[-2].node, yyvsp[0].node );
01609 ;
01610 break;}
01611 case 50:
01612 #line 462 "yacc.yy"
01613 {
01614 yyval.node = new KSParseNode( t_percent_sign, yyvsp[-2].node, yyvsp[0].node );
01615 ;
01616 break;}
01617 case 51:
01618 #line 470 "yacc.yy"
01619 {
01620 yyval.node = new KSParseNode( t_minus_sign, yyvsp[0].node );
01621 ;
01622 break;}
01623 case 52:
01624 #line 474 "yacc.yy"
01625 {
01626 yyval.node = new KSParseNode( t_plus_sign, yyvsp[0].node );
01627 ;
01628 break;}
01629 case 53:
01630 #line 478 "yacc.yy"
01631 {
01632 yyval.node = new KSParseNode( t_tilde, yyvsp[0].node );
01633 ;
01634 break;}
01635 case 54:
01636 #line 482 "yacc.yy"
01637 {
01638 yyval.node = new KSParseNode( t_not, yyvsp[0].node );
01639 ;
01640 break;}
01641 case 55:
01642 #line 486 "yacc.yy"
01643 {
01644 yyval.node = yyvsp[0].node;
01645 ;
01646 break;}
01647 case 56:
01648 #line 493 "yacc.yy"
01649 {
01650 yyval.node = new KSParseNode( t_array, yyvsp[-3].node, yyvsp[-1].node );
01651 ;
01652 break;}
01653 case 57:
01654 #line 497 "yacc.yy"
01655 {
01656 yyval.node = new KSParseNode( t_dict, yyvsp[-3].node, yyvsp[-1].node );
01657 ;
01658 break;}
01659 case 58:
01660 #line 501 "yacc.yy"
01661 {
01662 yyval.node = new KSParseNode( t_func_call, yyvsp[-2].node );
01663 ;
01664 break;}
01665 case 59:
01666 #line 505 "yacc.yy"
01667 {
01668 yyval.node = new KSParseNode( t_func_call, yyvsp[-3].node, yyvsp[-1].node );
01669 ;
01670 break;}
01671 case 60:
01672 #line 509 "yacc.yy"
01673 {
01674 yyval.node = yyvsp[0].node;
01675 ;
01676 break;}
01677 case 61:
01678 #line 516 "yacc.yy"
01679 {
01680 yyval.node = new KSParseNode( func_call_params, yyvsp[-2].node, yyvsp[0].node );
01681 ;
01682 break;}
01683 case 62:
01684 #line 521 "yacc.yy"
01685 {
01686 yyval.node = new KSParseNode( func_call_params, yyvsp[0].node );
01687 ;
01688 break;}
01689 case 63:
01690 #line 528 "yacc.yy"
01691 {
01692 yyval.node = new KSParseNode( member_expr, yyvsp[-2].node );
01693 yyval.node->setIdent( yyvsp[0].ident );
01694 ;
01695 break;}
01696 case 64:
01697 #line 533 "yacc.yy"
01698 {
01699 yyval.node = yyvsp[0].node;
01700 ;
01701 break;}
01702 case 65:
01703 #line 540 "yacc.yy"
01704 {
01705 yyval.node = new KSParseNode( t_incr, yyvsp[0].node );
01706 ;
01707 break;}
01708 case 66:
01709 #line 544 "yacc.yy"
01710 {
01711 yyval.node = new KSParseNode( t_decr, yyvsp[0].node );
01712 ;
01713 break;}
01714 case 67:
01715 #line 548 "yacc.yy"
01716 {
01717
01718 yyval.node = new KSParseNode( t_incr, yyvsp[-1].node, yyvsp[-1].node );
01719 ;
01720 break;}
01721 case 68:
01722 #line 553 "yacc.yy"
01723 {
01724
01725 yyval.node = new KSParseNode( t_decr, yyvsp[-1].node, yyvsp[-1].node );
01726 ;
01727 break;}
01728 case 69:
01729 #line 558 "yacc.yy"
01730 {
01731 yyval.node = yyvsp[0].node;
01732 ;
01733 break;}
01734 case 70:
01735 #line 565 "yacc.yy"
01736 {
01737 yyval.node = new KSParseNode( t_match, yyvsp[-1].node );
01738 yyval.node->setIdent( yyvsp[0]._str );
01739 ;
01740 break;}
01741 case 71:
01742 #line 570 "yacc.yy"
01743 {
01744 yyval.node = new KSParseNode( t_subst, yyvsp[-1].node );
01745 yyval.node->setIdent( yyvsp[0].ident );
01746 ;
01747 break;}
01748 case 72:
01749 #line 575 "yacc.yy"
01750 {
01751 yyval.node = yyvsp[0].node;
01752 ;
01753 break;}
01754 case 73:
01755 #line 583 "yacc.yy"
01756 {
01757 yyval.node = yyvsp[0].node;
01758 ;
01759 break;}
01760 case 74:
01761 #line 587 "yacc.yy"
01762 {
01763 yyval.node = yyvsp[0].node;
01764 ;
01765 break;}
01766 case 75:
01767 #line 591 "yacc.yy"
01768 {
01769 yyval.node = new KSParseNode( t_input );
01770 ;
01771 break;}
01772 case 76:
01773 #line 595 "yacc.yy"
01774 {
01775 yyval.node = new KSParseNode( t_match_line );
01776 yyval.node->setIdent( yyvsp[0]._str );
01777 ;
01778 break;}
01779 case 77:
01780 #line 599 "yacc.yy"
01781 { ;
01782 break;}
01783 case 78:
01784 #line 601 "yacc.yy"
01785 {
01786 yyval.node = yyvsp[-1].node;
01787 ;
01788 break;}
01789 case 79:
01790 #line 610 "yacc.yy"
01791 {
01792 yyval.node = new KSParseNode( t_integer_literal );
01793 yyval.node->setIntegerLiteral( yyvsp[0]._int );
01794 ;
01795 break;}
01796 case 80:
01797 #line 615 "yacc.yy"
01798 {
01799 yyval.node = new KSParseNode( t_cell );
01800 yyval.node->setStringLiteral( yyvsp[0]._str );
01801 ;
01802 break;}
01803 case 81:
01804 #line 620 "yacc.yy"
01805 {
01806 yyval.node = new KSParseNode( t_range );
01807 yyval.node->setStringLiteral( yyvsp[0]._str );
01808 ;
01809 break;}
01810 case 82:
01811 #line 625 "yacc.yy"
01812 {
01813 yyval.node = new KSParseNode( t_string_literal );
01814 yyval.node->setStringLiteral( yyvsp[0]._str );
01815 ;
01816 break;}
01817 case 83:
01818 #line 630 "yacc.yy"
01819 {
01820 yyval.node = new KSParseNode( t_character_literal );
01821 yyval.node->setCharacterLiteral( yyvsp[0]._char );
01822 ;
01823 break;}
01824 case 84:
01825 #line 635 "yacc.yy"
01826 {
01827 yyval.node = new KSParseNode( t_floating_pt_literal );
01828 yyval.node->setFloatingPtLiteral( yyvsp[0]._float );
01829 ;
01830 break;}
01831 case 85:
01832 #line 640 "yacc.yy"
01833 {
01834 yyval.node = new KSParseNode( t_boolean_literal );
01835 yyval.node->setBooleanLiteral( true );
01836 ;
01837 break;}
01838 case 86:
01839 #line 645 "yacc.yy"
01840 {
01841 yyval.node = new KSParseNode( t_boolean_literal );
01842 yyval.node->setBooleanLiteral( false );
01843 ;
01844 break;}
01845 case 87:
01846 #line 650 "yacc.yy"
01847 {
01848 yyval.node = new KSParseNode( t_array_const );
01849 ;
01850 break;}
01851 case 88:
01852 #line 654 "yacc.yy"
01853 {
01854 yyval.node = new KSParseNode( t_array_const, yyvsp[-1].node );
01855 ;
01856 break;}
01857 case 89:
01858 #line 658 "yacc.yy"
01859 {
01860 yyval.node = new KSParseNode( t_dict_const );
01861 ;
01862 break;}
01863 case 90:
01864 #line 662 "yacc.yy"
01865 {
01866 yyval.node = new KSParseNode( t_dict_const, yyvsp[-1].node );
01867 ;
01868 break;}
01869 case 91:
01870 #line 666 "yacc.yy"
01871 {
01872 yyval.node = new KSParseNode( t_line );
01873 ;
01874 break;}
01875 case 92:
01876 #line 670 "yacc.yy"
01877 {
01878 yyval.node = new KSParseNode( t_regexp_group );
01879 yyval.node->setIntegerLiteral( yyvsp[0]._int );
01880 ;
01881 break;}
01882 case 93:
01883 #line 678 "yacc.yy"
01884 {
01885 yyval.node = new KSParseNode( t_array_element, yyvsp[-2].node, yyvsp[0].node );
01886 ;
01887 break;}
01888 case 94:
01889 #line 682 "yacc.yy"
01890 {
01891 yyval.node = new KSParseNode( t_array_element, yyvsp[0].node );
01892 ;
01893 break;}
01894 case 95:
01895 #line 689 "yacc.yy"
01896 {
01897 yyval.node = new KSParseNode( t_dict_element, yyvsp[-5].node, yyvsp[-3].node, yyvsp[0].node );
01898 ;
01899 break;}
01900 case 96:
01901 #line 693 "yacc.yy"
01902 {
01903 yyval.node = new KSParseNode( t_dict_element, yyvsp[-3].node, yyvsp[-1].node );
01904 ;
01905 break;}
01906 case 97:
01907 #line 703 "yacc.yy"
01908 {
01909 yyval.node = new KSParseNode( t_struct, yyvsp[-1].node );
01910 yyval.node->setIdent( yyvsp[-3].ident );
01911 ;
01912 break;}
01913 case 98:
01914 #line 712 "yacc.yy"
01915 {
01916 if ( yyvsp[0].node != 0 )
01917 {
01918 yyval.node = new KSParseNode( exports, yyvsp[0].node );
01919 }
01920 ;
01921 break;}
01922 case 99:
01923 #line 719 "yacc.yy"
01924 {
01925 if ( yyvsp[-1].node != 0 && yyvsp[0].node != 0 )
01926 {
01927 yyval.node = new KSParseNode( exports, yyvsp[-1].node );
01928 yyval.node->setBranch( 2, yyvsp[0].node );
01929 }
01930 else if ( yyvsp[-1].node != 0 )
01931 {
01932 yyval.node = new KSParseNode( exports, yyvsp[-1].node );
01933 }
01934 else if ( yyvsp[0].node != 0 )
01935 {
01936 yyval.node = new KSParseNode( exports, yyvsp[0].node );
01937 }
01938 else
01939 {
01940 yyval.node = 0;
01941 }
01942 ;
01943 break;}
01944 case 100:
01945 #line 742 "yacc.yy"
01946 {
01947 yyval.node = yyvsp[-1].node;
01948 ;
01949 break;}
01950 case 101:
01951 #line 746 "yacc.yy"
01952 {
01953 yyval.node = yyvsp[-1].node;
01954 ;
01955 break;}
01956 case 102:
01957 #line 750 "yacc.yy"
01958 {
01959 yyval.node = yyvsp[-1].node;
01960 ;
01961 break;}
01962 case 103:
01963 #line 757 "yacc.yy"
01964 {
01965 yyval.node = new KSParseNode( t_struct_members );
01966 yyval.node->setIdent( yyvsp[0].ident );
01967 ;
01968 break;}
01969 case 104:
01970 #line 762 "yacc.yy"
01971 {
01972 yyval.node = new KSParseNode( t_struct_members, yyvsp[0].node );
01973 yyval.node->setIdent( yyvsp[-2].ident );
01974 ;
01975 break;}
01976 case 105:
01977 #line 770 "yacc.yy"
01978 {
01979 yyval.node = new KSParseNode( func_dcl );
01980 yyval.node->setBranch( 2, yyvsp[0].node );
01981 yyval.node->setIdent( yyvsp[-4].ident );
01982 ;
01983 break;}
01984 case 106:
01985 #line 776 "yacc.yy"
01986 {
01987 yyval.node = new KSParseNode( func_dcl, yyvsp[-3].node, yyvsp[0].node );
01988 yyval.node->setIdent( yyvsp[-5].ident );
01989 ;
01990 break;}
01991 case 107:
01992 #line 784 "yacc.yy"
01993 {
01994 yyval.node = new KSParseNode( func_params, yyvsp[0].node );
01995 ;
01996 break;}
01997 case 108:
01998 #line 788 "yacc.yy"
01999 {
02000 yyval.node = new KSParseNode( func_params, yyvsp[-2].node, yyvsp[0].node );
02001 ;
02002 break;}
02003 case 109:
02004 #line 795 "yacc.yy"
02005 {
02006 yyval.node = new KSParseNode( func_param_in );
02007 yyval.node->setIdent( yyvsp[0].ident );
02008 ;
02009 break;}
02010 case 110:
02011 #line 800 "yacc.yy"
02012 {
02013 yyval.node = new KSParseNode( func_param_in, yyvsp[0].node );
02014 yyval.node->setIdent( yyvsp[-2].ident );
02015 ;
02016 break;}
02017 case 111:
02018 #line 805 "yacc.yy"
02019 {
02020 yyval.node = new KSParseNode( func_param_out );
02021 yyval.node->setIdent( yyvsp[0].ident );
02022 ;
02023 break;}
02024 case 112:
02025 #line 810 "yacc.yy"
02026 {
02027 yyval.node = new KSParseNode( func_param_inout );
02028 yyval.node->setIdent( yyvsp[0].ident );
02029 ;
02030 break;}
02031 case 113:
02032 #line 818 "yacc.yy"
02033 {
02034 yyval.node = NULL;
02035 ;
02036 break;}
02037 case 114:
02038 #line 822 "yacc.yy"
02039 {
02040 yyval.node = yyvsp[0].node;
02041 ;
02042 break;}
02043 case 115:
02044 #line 829 "yacc.yy"
02045 {
02046 yyval.node = new KSParseNode( func_lines, yyvsp[0].node );
02047 ;
02048 break;}
02049 case 116:
02050 #line 833 "yacc.yy"
02051 {
02052 yyval.node = new KSParseNode( func_lines, yyvsp[-1].node );
02053 yyval.node->setBranch( 2, yyvsp[0].node );
02054 ;
02055 break;}
02056 case 117:
02057 #line 841 "yacc.yy"
02058 {
02059 yyval.node = yyvsp[-1].node;
02060 ;
02061 break;}
02062 case 118:
02063 #line 845 "yacc.yy"
02064 {
02065 yyval.node = new KSParseNode( t_raise, yyvsp[-3].node, yyvsp[-1].node );
02066 ;
02067 break;}
02068 case 119:
02069 #line 849 "yacc.yy"
02070 {
02071 yyval.node = new KSParseNode( t_return );
02072 ;
02073 break;}
02074 case 120:
02075 #line 853 "yacc.yy"
02076 {
02077 yyval.node = new KSParseNode( t_return, yyvsp[-1].node );
02078 ;
02079 break;}
02080 case 121:
02081 #line 857 "yacc.yy"
02082 {
02083 yyval.node = yyvsp[0].node;
02084 ;
02085 break;}
02086 case 122:
02087 #line 861 "yacc.yy"
02088 {
02089 yyval.node = new KSParseNode( t_try, yyvsp[-2].node, yyvsp[0].node );
02090 ;
02091 break;}
02092 case 123:
02093 #line 865 "yacc.yy"
02094 {
02095 yyval.node = new KSParseNode( t_scope, yyvsp[-1].node );
02096 ;
02097 break;}
02098 case 124:
02099 #line 872 "yacc.yy"
02100 {
02101 yyval.node = yyvsp[0].node;
02102 ;
02103 break;}
02104 case 125:
02105 #line 876 "yacc.yy"
02106 {
02107 yyval.node = yyvsp[-1].node;
02108 yyval.node->setBranch( 4, yyvsp[0].node );
02109 ;
02110 break;}
02111 case 126:
02112 #line 885 "yacc.yy"
02113 {
02114 yyval.node = new KSParseNode( t_catch, yyvsp[-6].node, yyvsp[-1].node );
02115 yyval.node->setIdent( yyvsp[-4].ident );
02116 ;
02117 break;}
02118 case 127:
02119 #line 891 "yacc.yy"
02120 {
02121 KSParseNode* x = new KSParseNode( scoped_name );
02122 x->setIdent( yyvsp[-6].ident );
02123 yyval.node = new KSParseNode( t_catch_default, x, yyvsp[-1].node );
02124 yyval.node->setIdent( yyvsp[-4].ident );
02125 ;
02126 break;}
02127 case 128:
02128 #line 901 "yacc.yy"
02129 {
02130 yyval.node = new KSParseNode( const_dcl, yyvsp[0].node );
02131 yyval.node->setIdent( yyvsp[-2].ident );
02132 ;
02133 break;}
02134 case 129:
02135 #line 909 "yacc.yy"
02136 {
02137 yyval.node = new KSParseNode( t_while, yyvsp[-1].node, yyvsp[0].node );
02138 ;
02139 break;}
02140 case 130:
02141 #line 913 "yacc.yy"
02142 {
02143 yyval.node = new KSParseNode( t_for, yyvsp[-6].node, yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node );
02144 ;
02145 break;}
02146 case 131:
02147 #line 917 "yacc.yy"
02148 {
02149 yyval.node = new KSParseNode( t_do, yyvsp[-2].node, yyvsp[-1].node );
02150 ;
02151 break;}
02152 case 132:
02153 #line 921 "yacc.yy"
02154 {
02155 yyval.node = new KSParseNode( t_if, yyvsp[-3].node, yyvsp[-1].node, yyvsp[0].node );
02156 ;
02157 break;}
02158 case 133:
02159 #line 925 "yacc.yy"
02160 {
02161 yyval.node = new KSParseNode( t_foreach, yyvsp[-2].node, yyvsp[0].node );
02162 yyval.node->setIdent( yyvsp[-4].ident );
02163 ;
02164 break;}
02165 case 134:
02166 #line 930 "yacc.yy"
02167 {
02168
02169 yyval.node = new KSParseNode( t_foreach, yyvsp[-2].node, yyvsp[0].node, yyvsp[0].node );
02170 yyval.node->setIdent( yyvsp[-6].ident );
02171 yyval.node->setStringLiteral( yyvsp[-4].ident );
02172 ;
02173 break;}
02174 case 135:
02175 #line 940 "yacc.yy"
02176 {
02177 yyval.node = NULL;
02178 ;
02179 break;}
02180 case 136:
02181 #line 944 "yacc.yy"
02182 {
02183 yyval.node = new KSParseNode( t_if, yyvsp[-3].node, yyvsp[-1].node, yyvsp[0].node );
02184 ;
02185 break;}
02186 case 137:
02187 #line 948 "yacc.yy"
02188 {
02189 yyval.node = yyvsp[0].node;
02190 ;
02191 break;}
02192 case 138:
02193 #line 955 "yacc.yy"
02194 {
02195 yyval.node = yyvsp[-1].node;
02196 ;
02197 break;}
02198 case 139:
02199 #line 962 "yacc.yy"
02200 {
02201 yyval.node = new KSParseNode( t_scope, yyvsp[-1].node );
02202 ;
02203 break;}
02204 }
02205
02206 #line 705 "/usr/share/bison/bison.simple"
02207
02208
02209 yyvsp -= yylen;
02210 yyssp -= yylen;
02211 #if YYLSP_NEEDED
02212 yylsp -= yylen;
02213 #endif
02214
02215 #if YYDEBUG
02216 if (yydebug)
02217 {
02218 short *yyssp1 = yyss - 1;
02219 YYFPRINTF (stderr, "state stack now");
02220 while (yyssp1 != yyssp)
02221 YYFPRINTF (stderr, " %d", *++yyssp1);
02222 YYFPRINTF (stderr, "\n");
02223 }
02224 #endif
02225
02226 *++yyvsp = yyval;
02227 #if YYLSP_NEEDED
02228 *++yylsp = yyloc;
02229 #endif
02230
02231
02232
02233
02234
02235 yyn = yyr1[yyn];
02236
02237 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
02238 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
02239 yystate = yytable[yystate];
02240 else
02241 yystate = yydefgoto[yyn - YYNTBASE];
02242
02243 goto yynewstate;
02244
02245
02246
02247
02248
02249 yyerrlab:
02250
02251 if (!yyerrstatus)
02252 {
02253 ++yynerrs;
02254
02255 #ifdef YYERROR_VERBOSE
02256 yyn = yypact[yystate];
02257
02258 if (yyn > YYFLAG && yyn < YYLAST)
02259 {
02260 YYSIZE_T yysize = 0;
02261 char *yymsg;
02262 int yyx, yycount;
02263
02264 yycount = 0;
02265
02266
02267 for (yyx = yyn < 0 ? -yyn : 0;
02268 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
02269 if (yycheck[yyx + yyn] == yyx)
02270 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
02271 yysize += yystrlen ("parse error, unexpected ") + 1;
02272 yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
02273 yymsg = (char *) YYSTACK_ALLOC (yysize);
02274 if (yymsg != 0)
02275 {
02276 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
02277 yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
02278
02279 if (yycount < 5)
02280 {
02281 yycount = 0;
02282 for (yyx = yyn < 0 ? -yyn : 0;
02283 yyx < (int) (sizeof (yytname) / sizeof (char *));
02284 yyx++)
02285 if (yycheck[yyx + yyn] == yyx)
02286 {
02287 const char *yyq = ! yycount ? ", expecting " : " or ";
02288 yyp = yystpcpy (yyp, yyq);
02289 yyp = yystpcpy (yyp, yytname[yyx]);
02290 yycount++;
02291 }
02292 }
02293 yyerror (yymsg);
02294 YYSTACK_FREE (yymsg);
02295 }
02296 else
02297 yyerror ("parse error; also virtual memory exhausted");
02298 }
02299 else
02300 #endif
02301 yyerror ("parse error");
02302 }
02303 goto yyerrlab1;
02304
02305
02306
02307
02308
02309 yyerrlab1:
02310 if (yyerrstatus == 3)
02311 {
02312
02313
02314
02315
02316 if (yychar == YYEOF)
02317 YYABORT;
02318 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
02319 yychar, yytname[yychar1]));
02320 yychar = YYEMPTY;
02321 }
02322
02323
02324
02325
02326 yyerrstatus = 3;
02327
02328 goto yyerrhandle;
02329
02330
02331
02332
02333
02334
02335 yyerrdefault:
02336 #if 0
02337
02338
02339
02340
02341 yyn = yydefact[yystate];
02342 if (yyn)
02343 goto yydefault;
02344 #endif
02345
02346
02347
02348
02349
02350
02351 yyerrpop:
02352 if (yyssp == yyss)
02353 YYABORT;
02354 yyvsp--;
02355 yystate = *--yyssp;
02356 #if YYLSP_NEEDED
02357 yylsp--;
02358 #endif
02359
02360 #if YYDEBUG
02361 if (yydebug)
02362 {
02363 short *yyssp1 = yyss - 1;
02364 YYFPRINTF (stderr, "Error: state stack now");
02365 while (yyssp1 != yyssp)
02366 YYFPRINTF (stderr, " %d", *++yyssp1);
02367 YYFPRINTF (stderr, "\n");
02368 }
02369 #endif
02370
02371
02372
02373
02374 yyerrhandle:
02375 yyn = yypact[yystate];
02376 if (yyn == YYFLAG)
02377 goto yyerrdefault;
02378
02379 yyn += YYTERROR;
02380 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
02381 goto yyerrdefault;
02382
02383 yyn = yytable[yyn];
02384 if (yyn < 0)
02385 {
02386 if (yyn == YYFLAG)
02387 goto yyerrpop;
02388 yyn = -yyn;
02389 goto yyreduce;
02390 }
02391 else if (yyn == 0)
02392 goto yyerrpop;
02393
02394 if (yyn == YYFINAL)
02395 YYACCEPT;
02396
02397 YYDPRINTF ((stderr, "Shifting error token, "));
02398
02399 *++yyvsp = yylval;
02400 #if YYLSP_NEEDED
02401 *++yylsp = yylloc;
02402 #endif
02403
02404 yystate = yyn;
02405 goto yynewstate;
02406
02407
02408
02409
02410
02411 yyacceptlab:
02412 yyresult = 0;
02413 goto yyreturn;
02414
02415
02416
02417
02418 yyabortlab:
02419 yyresult = 1;
02420 goto yyreturn;
02421
02422
02423
02424
02425 yyoverflowlab:
02426 yyerror ("parser stack overflow");
02427 yyresult = 2;
02428
02429
02430 yyreturn:
02431 #ifndef yyoverflow
02432 if (yyss != yyssa)
02433 YYSTACK_FREE (yyss);
02434 #endif
02435 return yyresult;
02436 }
02437 #line 966 "yacc.yy"
02438
02439
02440 void kscriptParse( const char *_code, int extension, KLocale* locale )
02441 {
02442 kscriptInitFlex( _code, extension, locale );
02443 yyparse();
02444 }
02445
02446 void kscriptParse( int extension, KLocale* locale )
02447 {
02448 kscriptInitFlex( extension, locale );
02449 yyparse();
02450 }