yacc.cc
00001 /* A Bison parser, made by GNU Bison 1.875d. */ 00002 00003 /* Skeleton parser for Yacc-like parsing with Bison, 00004 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. 00005 00006 This program is free software; you can redistribute it and/or modify 00007 it under the terms of the GNU General Public License as published by 00008 the Free Software Foundation; either version 2, or (at your option) 00009 any later version. 00010 00011 This program is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU General Public License for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with this program; if not, write to the Free Software 00018 Foundation, Inc., 51 Franklin Street, Fifth Floor, 00019 Boston, MA 02110-1301, USA. */ 00020 00021 /* As a special exception, when this file is copied by Bison into a 00022 Bison output file, you may use that output file without restriction. 00023 This special exception was added by the Free Software Foundation 00024 in version 1.24 of Bison. */ 00025 00026 /* Written by Richard Stallman by simplifying the original so called 00027 ``semantic'' parser. */ 00028 00029 /* All symbols defined below should begin with yy or YY, to avoid 00030 infringing on user name space. This should be done even for local 00031 variables, as they might otherwise be expanded by user macros. 00032 There are some unavoidable exceptions within include files to 00033 define necessary library symbols; they are noted "INFRINGES ON 00034 USER NAME SPACE" below. */ 00035 00036 /* Identify Bison output. */ 00037 #define YYBISON 1 00038 00039 /* Skeleton name. */ 00040 #define YYSKELETON_NAME "yacc.c" 00041 00042 /* Pure parsers. */ 00043 #define YYPURE 0 00044 00045 /* Using locations. */ 00046 #define YYLSP_NEEDED 0 00047 00048 00049 00050 /* Tokens. */ 00051 #ifndef YYTOKENTYPE 00052 # define YYTOKENTYPE 00053 /* Put the tokens into the symbol table, so that GDB and other debuggers 00054 know about them. */ 00055 enum yytokentype { 00056 T_UNIMPORTANT = 258, 00057 T_CHARACTER_LITERAL = 259, 00058 T_DOUBLE_LITERAL = 260, 00059 T_IDENTIFIER = 261, 00060 T_INTEGER_LITERAL = 262, 00061 T_STRING_LITERAL = 263, 00062 T_INCLUDE = 264, 00063 T_CLASS = 265, 00064 T_STRUCT = 266, 00065 T_LEFT_CURLY_BRACKET = 267, 00066 T_LEFT_PARANTHESIS = 268, 00067 T_RIGHT_CURLY_BRACKET = 269, 00068 T_RIGHT_PARANTHESIS = 270, 00069 T_COLON = 271, 00070 T_SEMICOLON = 272, 00071 T_PUBLIC = 273, 00072 T_PROTECTED = 274, 00073 T_TRIPE_DOT = 275, 00074 T_PRIVATE = 276, 00075 T_VIRTUAL = 277, 00076 T_CONST = 278, 00077 T_INLINE = 279, 00078 T_FRIEND = 280, 00079 T_RETURN = 281, 00080 T_SIGNAL = 282, 00081 T_SLOT = 283, 00082 T_TYPEDEF = 284, 00083 T_PLUS = 285, 00084 T_MINUS = 286, 00085 T_COMMA = 287, 00086 T_ASTERISK = 288, 00087 T_TILDE = 289, 00088 T_LESS = 290, 00089 T_GREATER = 291, 00090 T_AMPERSAND = 292, 00091 T_EXTERN = 293, 00092 T_EXTERN_C = 294, 00093 T_ACCESS = 295, 00094 T_ENUM = 296, 00095 T_NAMESPACE = 297, 00096 T_USING = 298, 00097 T_UNKNOWN = 299, 00098 T_TRIPLE_DOT = 300, 00099 T_TRUE = 301, 00100 T_FALSE = 302, 00101 T_STATIC = 303, 00102 T_MUTABLE = 304, 00103 T_EQUAL = 305, 00104 T_SCOPE = 306, 00105 T_NULL = 307, 00106 T_INT = 308, 00107 T_ARRAY_OPEN = 309, 00108 T_ARRAY_CLOSE = 310, 00109 T_CHAR = 311, 00110 T_DCOP = 312, 00111 T_DCOP_AREA = 313, 00112 T_DCOP_SIGNAL_AREA = 314, 00113 T_SIGNED = 315, 00114 T_UNSIGNED = 316, 00115 T_LONG = 317, 00116 T_SHORT = 318, 00117 T_FUNOPERATOR = 319, 00118 T_MISCOPERATOR = 320, 00119 T_SHIFT = 321 00120 }; 00121 #endif 00122 #define T_UNIMPORTANT 258 00123 #define T_CHARACTER_LITERAL 259 00124 #define T_DOUBLE_LITERAL 260 00125 #define T_IDENTIFIER 261 00126 #define T_INTEGER_LITERAL 262 00127 #define T_STRING_LITERAL 263 00128 #define T_INCLUDE 264 00129 #define T_CLASS 265 00130 #define T_STRUCT 266 00131 #define T_LEFT_CURLY_BRACKET 267 00132 #define T_LEFT_PARANTHESIS 268 00133 #define T_RIGHT_CURLY_BRACKET 269 00134 #define T_RIGHT_PARANTHESIS 270 00135 #define T_COLON 271 00136 #define T_SEMICOLON 272 00137 #define T_PUBLIC 273 00138 #define T_PROTECTED 274 00139 #define T_TRIPE_DOT 275 00140 #define T_PRIVATE 276 00141 #define T_VIRTUAL 277 00142 #define T_CONST 278 00143 #define T_INLINE 279 00144 #define T_FRIEND 280 00145 #define T_RETURN 281 00146 #define T_SIGNAL 282 00147 #define T_SLOT 283 00148 #define T_TYPEDEF 284 00149 #define T_PLUS 285 00150 #define T_MINUS 286 00151 #define T_COMMA 287 00152 #define T_ASTERISK 288 00153 #define T_TILDE 289 00154 #define T_LESS 290 00155 #define T_GREATER 291 00156 #define T_AMPERSAND 292 00157 #define T_EXTERN 293 00158 #define T_EXTERN_C 294 00159 #define T_ACCESS 295 00160 #define T_ENUM 296 00161 #define T_NAMESPACE 297 00162 #define T_USING 298 00163 #define T_UNKNOWN 299 00164 #define T_TRIPLE_DOT 300 00165 #define T_TRUE 301 00166 #define T_FALSE 302 00167 #define T_STATIC 303 00168 #define T_MUTABLE 304 00169 #define T_EQUAL 305 00170 #define T_SCOPE 306 00171 #define T_NULL 307 00172 #define T_INT 308 00173 #define T_ARRAY_OPEN 309 00174 #define T_ARRAY_CLOSE 310 00175 #define T_CHAR 311 00176 #define T_DCOP 312 00177 #define T_DCOP_AREA 313 00178 #define T_DCOP_SIGNAL_AREA 314 00179 #define T_SIGNED 315 00180 #define T_UNSIGNED 316 00181 #define T_LONG 317 00182 #define T_SHORT 318 00183 #define T_FUNOPERATOR 319 00184 #define T_MISCOPERATOR 320 00185 #define T_SHIFT 321 00186 00187 00188 00189 00190 /* Copy the first part of user declarations. */ 00191 #line 1 "yacc.yy" 00192 00193 /***************************************************************** 00194 Copyright (c) 1999 Torben Weis <weis@kde.org> 00195 Copyright (c) 2000 Matthias Ettrich <ettrich@kde.org> 00196 00197 Permission is hereby granted, free of charge, to any person obtaining a copy 00198 of this software and associated documentation files (the "Software"), to deal 00199 in the Software without restriction, including without limitation the rights 00200 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 00201 copies of the Software, and to permit persons to whom the Software is 00202 furnished to do so, subject to the following conditions: 00203 00204 The above copyright notice and this permission notice shall be included in 00205 all copies or substantial portions of the Software. 00206 00207 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00208 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00209 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 00210 AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 00211 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 00212 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 00213 00214 ******************************************************************/ 00215 00216 #include <config.h> 00217 00218 // Workaround for a bison issue: 00219 // bison.simple concludes from _GNU_SOURCE that stpcpy is available, 00220 // while GNU string.h only exposes it if __USE_GNU is set. 00221 #ifdef _GNU_SOURCE 00222 #define __USE_GNU 1 00223 #endif 00224 00225 #include <stdlib.h> 00226 #include <stdio.h> 00227 #include <assert.h> 00228 00229 #include <qstring.h> 00230 00231 #define AMP_ENTITY "&" 00232 #define YYERROR_VERBOSE 00233 00234 extern int yylex(); 00235 00236 // extern QString idl_lexFile; 00237 extern int idl_line_no; 00238 extern int function_mode; 00239 00240 static int dcop_area = 0; 00241 static int dcop_signal_area = 0; 00242 00243 static QString in_namespace( "" ); 00244 00245 void dcopidlInitFlex( const char *_code ); 00246 00247 void yyerror( const char *s ) 00248 { 00249 qDebug( "In line %i : %s", idl_line_no, s ); 00250 exit(1); 00251 // theParser->parse_error( idl_lexFile, s, idl_line_no ); 00252 } 00253 00254 00255 00256 /* Enabling traces. */ 00257 #ifndef YYDEBUG 00258 # define YYDEBUG 1 00259 #endif 00260 00261 /* Enabling verbose error messages. */ 00262 #ifdef YYERROR_VERBOSE 00263 # undef YYERROR_VERBOSE 00264 # define YYERROR_VERBOSE 1 00265 #else 00266 # define YYERROR_VERBOSE 0 00267 #endif 00268 00269 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) 00270 #line 67 "yacc.yy" 00271 typedef union YYSTYPE { 00272 long _int; 00273 QString *_str; 00274 unsigned short _char; 00275 double _float; 00276 } YYSTYPE; 00277 /* Line 191 of yacc.c. */ 00278 #line 279 "yacc.cc" 00279 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 00280 # define YYSTYPE_IS_DECLARED 1 00281 # define YYSTYPE_IS_TRIVIAL 1 00282 #endif 00283 00284 00285 00286 /* Copy the second part of user declarations. */ 00287 00288 00289 /* Line 214 of yacc.c. */ 00290 #line 291 "yacc.cc" 00291 00292 #if ! defined (yyoverflow) || YYERROR_VERBOSE 00293 00294 # ifndef YYFREE 00295 # define YYFREE free 00296 # endif 00297 # ifndef YYMALLOC 00298 # define YYMALLOC malloc 00299 # endif 00300 00301 /* The parser invokes alloca or malloc; define the necessary symbols. */ 00302 00303 # ifdef YYSTACK_USE_ALLOCA 00304 # if YYSTACK_USE_ALLOCA 00305 # define YYSTACK_ALLOC alloca 00306 # endif 00307 # else 00308 # if defined (alloca) || defined (_ALLOCA_H) 00309 # define YYSTACK_ALLOC alloca 00310 # else 00311 # ifdef __GNUC__ 00312 # define YYSTACK_ALLOC __builtin_alloca 00313 # endif 00314 # endif 00315 # endif 00316 00317 # ifdef YYSTACK_ALLOC 00318 /* Pacify GCC's `empty if-body' warning. */ 00319 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 00320 # else 00321 # if defined (__STDC__) || defined (__cplusplus) 00322 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 00323 # define YYSIZE_T size_t 00324 # endif 00325 # define YYSTACK_ALLOC YYMALLOC 00326 # define YYSTACK_FREE YYFREE 00327 # endif 00328 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ 00329 00330 00331 #if (! defined (yyoverflow) \ 00332 && (! defined (__cplusplus) \ 00333 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) 00334 00335 /* A type that is properly aligned for any stack member. */ 00336 union yyalloc 00337 { 00338 short int yyss; 00339 YYSTYPE yyvs; 00340 }; 00341 00342 /* The size of the maximum gap between one aligned stack and the next. */ 00343 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 00344 00345 /* The size of an array large to enough to hold all stacks, each with 00346 N elements. */ 00347 # define YYSTACK_BYTES(N) \ 00348 ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ 00349 + YYSTACK_GAP_MAXIMUM) 00350 00351 /* Copy COUNT objects from FROM to TO. The source and destination do 00352 not overlap. */ 00353 # ifndef YYCOPY 00354 # if defined (__GNUC__) && 1 < __GNUC__ 00355 # define YYCOPY(To, From, Count) \ 00356 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 00357 # else 00358 # define YYCOPY(To, From, Count) \ 00359 do \ 00360 { \ 00361 register YYSIZE_T yyi; \ 00362 for (yyi = 0; yyi < (Count); yyi++) \ 00363 (To)[yyi] = (From)[yyi]; \ 00364 } \ 00365 while (0) 00366 # endif 00367 # endif 00368 00369 /* Relocate STACK from its old location to the new one. The 00370 local variables YYSIZE and YYSTACKSIZE give the old and new number of 00371 elements in the stack, and YYPTR gives the new location of the 00372 stack. Advance YYPTR to a properly aligned location for the next 00373 stack. */ 00374 # define YYSTACK_RELOCATE(Stack) \ 00375 do \ 00376 { \ 00377 YYSIZE_T yynewbytes; \ 00378 YYCOPY (&yyptr->Stack, Stack, yysize); \ 00379 Stack = &yyptr->Stack; \ 00380 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 00381 yyptr += yynewbytes / sizeof (*yyptr); \ 00382 } \ 00383 while (0) 00384 00385 #endif 00386 00387 #if defined (__STDC__) || defined (__cplusplus) 00388 typedef signed char yysigned_char; 00389 #else 00390 typedef short int yysigned_char; 00391 #endif 00392 00393 /* YYFINAL -- State number of the termination state. */ 00394 #define YYFINAL 5 00395 /* YYLAST -- Last index in YYTABLE. */ 00396 #define YYLAST 559 00397 00398 /* YYNTOKENS -- Number of terminals. */ 00399 #define YYNTOKENS 67 00400 /* YYNNTS -- Number of nonterminals. */ 00401 #define YYNNTS 53 00402 /* YYNRULES -- Number of rules. */ 00403 #define YYNRULES 185 00404 /* YYNRULES -- Number of states. */ 00405 #define YYNSTATES 374 00406 00407 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 00408 #define YYUNDEFTOK 2 00409 #define YYMAXUTOK 321 00410 00411 #define YYTRANSLATE(YYX) \ 00412 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 00413 00414 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 00415 static const unsigned char yytranslate[] = 00416 { 00417 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00418 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00419 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00420 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00421 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00422 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00423 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00424 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00425 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00426 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00427 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00428 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00429 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00430 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00431 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00432 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00433 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00434 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00435 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00436 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00437 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00438 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00439 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00440 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00441 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 00442 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 00443 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 00444 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 00445 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 00446 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 00447 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 00448 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 00449 65, 66 00450 }; 00451 00452 #if YYDEBUG 00453 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 00454 YYRHS. */ 00455 static const unsigned short int yyprhs[] = 00456 { 00457 0, 0, 3, 7, 8, 11, 16, 17, 19, 20, 00458 27, 35, 39, 43, 49, 50, 58, 63, 69, 72, 00459 77, 85, 94, 97, 99, 101, 103, 106, 107, 109, 00460 111, 113, 115, 117, 119, 121, 122, 126, 129, 132, 00461 135, 137, 141, 143, 148, 152, 154, 157, 161, 164, 00462 166, 167, 169, 171, 174, 178, 181, 184, 187, 190, 00463 193, 196, 202, 207, 212, 217, 224, 229, 236, 243, 00464 251, 258, 265, 271, 275, 277, 281, 283, 285, 287, 00465 290, 292, 294, 296, 300, 304, 312, 322, 323, 325, 00466 327, 330, 332, 335, 338, 342, 345, 349, 352, 356, 00467 359, 363, 365, 367, 370, 372, 375, 377, 380, 383, 00468 386, 388, 389, 391, 395, 397, 399, 402, 405, 410, 00469 417, 421, 423, 426, 428, 432, 436, 439, 442, 446, 00470 449, 451, 454, 458, 460, 464, 467, 469, 470, 473, 00471 479, 481, 483, 485, 487, 492, 493, 495, 497, 499, 00472 501, 503, 505, 512, 520, 522, 526, 527, 532, 534, 00473 538, 541, 547, 551, 557, 565, 572, 576, 578, 580, 00474 584, 589, 592, 593, 595, 598, 599, 601, 605, 608, 00475 611, 615, 621, 627, 633, 640 00476 }; 00477 00478 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 00479 static const yysigned_char yyrhs[] = 00480 { 00481 68, 0, -1, 69, 71, 68, -1, -1, 69, 9, 00482 -1, 39, 12, 68, 14, -1, -1, 57, -1, -1, 00483 10, 80, 84, 70, 86, 17, -1, 10, 6, 80, 00484 84, 70, 86, 17, -1, 10, 80, 17, -1, 11, 00485 80, 17, -1, 11, 80, 84, 86, 17, -1, -1, 00486 42, 6, 12, 72, 68, 14, 85, -1, 43, 42, 00487 6, 17, -1, 43, 6, 51, 6, 17, -1, 38, 00488 17, -1, 29, 100, 80, 17, -1, 29, 11, 12, 00489 73, 14, 80, 17, -1, 29, 11, 80, 12, 73, 00490 14, 80, 17, -1, 24, 111, -1, 111, -1, 119, 00491 -1, 87, -1, 119, 73, -1, -1, 46, -1, 47, 00492 -1, 21, -1, 19, -1, 18, -1, 27, -1, 28, 00493 -1, -1, 75, 76, 16, -1, 76, 16, -1, 58, 00494 16, -1, 59, 16, -1, 6, -1, 6, 51, 80, 00495 -1, 80, -1, 80, 35, 101, 36, -1, 105, 18, 00496 81, -1, 81, -1, 82, 12, -1, 82, 32, 83, 00497 -1, 16, 83, -1, 12, -1, -1, 17, -1, 14, 00498 -1, 92, 86, -1, 24, 111, 86, -1, 111, 86, 00499 -1, 79, 86, -1, 87, 86, -1, 78, 86, -1, 00500 77, 86, -1, 119, 86, -1, 25, 10, 80, 17, 00501 86, -1, 25, 80, 17, 86, -1, 25, 107, 17, 00502 86, -1, 10, 80, 17, 86, -1, 10, 80, 84, 00503 86, 17, 86, -1, 11, 80, 17, 86, -1, 11, 00504 80, 84, 86, 17, 86, -1, 43, 6, 51, 6, 00505 17, 86, -1, 41, 6, 12, 88, 14, 6, 17, 00506 -1, 41, 6, 12, 88, 14, 17, -1, 41, 12, 00507 88, 14, 6, 17, -1, 41, 12, 88, 14, 17, 00508 -1, 89, 32, 88, -1, 89, -1, 6, 50, 91, 00509 -1, 6, -1, 4, -1, 7, -1, 31, 7, -1, 00510 52, -1, 80, -1, 90, -1, 90, 30, 90, -1, 00511 90, 66, 90, -1, 29, 80, 35, 101, 36, 80, 00512 17, -1, 29, 80, 35, 101, 36, 51, 6, 80, 00513 17, -1, -1, 23, -1, 60, -1, 60, 53, -1, 00514 61, -1, 61, 53, -1, 60, 63, -1, 60, 63, 00515 53, -1, 60, 62, -1, 60, 62, 53, -1, 61, 00516 63, -1, 61, 63, 53, -1, 61, 62, -1, 61, 00517 62, 53, -1, 53, -1, 62, -1, 62, 53, -1, 00518 63, -1, 63, 53, -1, 56, -1, 60, 56, -1, 00519 61, 56, -1, 33, 95, -1, 33, -1, -1, 102, 00520 -1, 96, 32, 102, -1, 94, -1, 80, -1, 11, 00521 80, -1, 10, 80, -1, 80, 35, 98, 36, -1, 00522 80, 35, 98, 36, 51, 80, -1, 99, 32, 98, 00523 -1, 99, -1, 97, 95, -1, 97, -1, 23, 97, 00524 95, -1, 23, 97, 37, -1, 23, 97, -1, 97, 00525 23, -1, 97, 23, 37, -1, 97, 37, -1, 97, 00526 -1, 97, 95, -1, 100, 32, 101, -1, 100, -1, 00527 100, 80, 103, -1, 100, 103, -1, 45, -1, -1, 00528 50, 104, -1, 50, 13, 100, 15, 104, -1, 8, 00529 -1, 91, -1, 5, -1, 74, -1, 80, 13, 96, 00530 15, -1, -1, 22, -1, 65, -1, 66, -1, 36, 00531 -1, 35, -1, 50, -1, 100, 80, 13, 96, 15, 00532 93, -1, 100, 64, 106, 13, 96, 15, 93, -1, 00533 104, -1, 104, 32, 108, -1, -1, 6, 13, 108, 00534 15, -1, 109, -1, 109, 32, 110, -1, 107, 113, 00535 -1, 22, 107, 50, 52, 113, -1, 22, 107, 113, 00536 -1, 80, 13, 96, 15, 113, -1, 80, 13, 96, 00537 15, 16, 110, 113, -1, 105, 34, 80, 13, 15, 00538 113, -1, 48, 107, 113, -1, 12, -1, 17, -1, 00539 112, 114, 14, -1, 112, 114, 14, 17, -1, 115, 00540 114, -1, -1, 17, -1, 32, 118, -1, -1, 6, 00541 -1, 6, 50, 104, -1, 95, 6, -1, 117, 116, 00542 -1, 100, 118, 17, -1, 100, 80, 16, 7, 17, 00543 -1, 48, 100, 6, 103, 17, -1, 49, 100, 6, 00544 103, 17, -1, 100, 6, 54, 91, 55, 17, -1, 00545 48, 100, 6, 54, 91, 55, 17, -1 00546 }; 00547 00548 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 00549 static const unsigned short int yyrline[] = 00550 { 00551 0, 164, 164, 167, 171, 175, 179, 184, 185, 189, 00552 198, 207, 210, 213, 217, 216, 228, 231, 234, 237, 00553 240, 243, 246, 249, 252, 255, 261, 262, 265, 265, 00554 267, 267, 267, 269, 269, 269, 272, 277, 285, 293, 00555 305, 308, 316, 322, 331, 335, 342, 346, 354, 358, 00556 366, 368, 372, 376, 380, 384, 388, 392, 396, 400, 00557 404, 408, 412, 416, 420, 424, 428, 432, 436, 443, 00558 444, 445, 446, 450, 451, 455, 456, 460, 461, 462, 00559 463, 464, 468, 469, 470, 474, 484, 493, 496, 503, 00560 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 00561 514, 515, 516, 517, 518, 519, 520, 521, 522, 526, 00562 527, 532, 535, 536, 544, 545, 546, 547, 548, 554, 00563 565, 569, 577, 582, 591, 596, 603, 608, 613, 620, 00564 625, 630, 638, 642, 649, 658, 666, 676, 678, 681, 00565 688, 691, 694, 697, 700, 706, 707, 711, 711, 711, 00566 711, 711, 715, 737, 748, 749, 750, 755, 760, 761, 00567 765, 769, 773, 777, 783, 789, 795, 808, 815, 816, 00568 817, 821, 822, 826, 830, 831, 834, 835, 836, 839, 00569 843, 844, 845, 846, 847, 848 00570 }; 00571 #endif 00572 00573 #if YYDEBUG || YYERROR_VERBOSE 00574 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 00575 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 00576 static const char *const yytname[] = 00577 { 00578 "$end", "error", "$undefined", "T_UNIMPORTANT", "T_CHARACTER_LITERAL", 00579 "T_DOUBLE_LITERAL", "T_IDENTIFIER", "T_INTEGER_LITERAL", 00580 "T_STRING_LITERAL", "T_INCLUDE", "T_CLASS", "T_STRUCT", 00581 "T_LEFT_CURLY_BRACKET", "T_LEFT_PARANTHESIS", "T_RIGHT_CURLY_BRACKET", 00582 "T_RIGHT_PARANTHESIS", "T_COLON", "T_SEMICOLON", "T_PUBLIC", 00583 "T_PROTECTED", "T_TRIPE_DOT", "T_PRIVATE", "T_VIRTUAL", "T_CONST", 00584 "T_INLINE", "T_FRIEND", "T_RETURN", "T_SIGNAL", "T_SLOT", "T_TYPEDEF", 00585 "T_PLUS", "T_MINUS", "T_COMMA", "T_ASTERISK", "T_TILDE", "T_LESS", 00586 "T_GREATER", "T_AMPERSAND", "T_EXTERN", "T_EXTERN_C", "T_ACCESS", 00587 "T_ENUM", "T_NAMESPACE", "T_USING", "T_UNKNOWN", "T_TRIPLE_DOT", 00588 "T_TRUE", "T_FALSE", "T_STATIC", "T_MUTABLE", "T_EQUAL", "T_SCOPE", 00589 "T_NULL", "T_INT", "T_ARRAY_OPEN", "T_ARRAY_CLOSE", "T_CHAR", "T_DCOP", 00590 "T_DCOP_AREA", "T_DCOP_SIGNAL_AREA", "T_SIGNED", "T_UNSIGNED", "T_LONG", 00591 "T_SHORT", "T_FUNOPERATOR", "T_MISCOPERATOR", "T_SHIFT", "$accept", 00592 "main", "includes", "dcoptag", "declaration", "@1", "member_list", 00593 "bool_value", "nodcop_area", "sigslot", "nodcop_area_begin", 00594 "dcop_area_begin", "dcop_signal_area_begin", "Identifier", 00595 "super_class_name", "super_class", "super_classes", "class_header", 00596 "opt_semicolon", "body", "enum", "enum_list", "enum_item", "number", 00597 "int_expression", "typedef", "const_qualifier", "int_type", "asterisks", 00598 "params", "type_name", "templ_type_list", "templ_type", "type", 00599 "type_list", "param", "default", "value", "virtual_qualifier", 00600 "operator", "function_header", "values", "init_item", "init_list", 00601 "function", "function_begin", "function_body", "function_lines", 00602 "function_line", "Identifier_list_rest", "Identifier_list_entry", 00603 "Identifier_list", "member", 0 00604 }; 00605 #endif 00606 00607 # ifdef YYPRINT 00608 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 00609 token YYLEX-NUM. */ 00610 static const unsigned short int yytoknum[] = 00611 { 00612 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 00613 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 00614 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 00615 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 00616 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 00617 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 00618 315, 316, 317, 318, 319, 320, 321 00619 }; 00620 # endif 00621 00622 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 00623 static const unsigned char yyr1[] = 00624 { 00625 0, 67, 68, 68, 69, 69, 69, 70, 70, 71, 00626 71, 71, 71, 71, 72, 71, 71, 71, 71, 71, 00627 71, 71, 71, 71, 71, 71, 73, 73, 74, 74, 00628 75, 75, 75, 76, 76, 76, 77, 77, 78, 79, 00629 80, 80, 81, 81, 82, 82, 83, 83, 84, 84, 00630 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 00631 86, 86, 86, 86, 86, 86, 86, 86, 86, 87, 00632 87, 87, 87, 88, 88, 89, 89, 90, 90, 90, 00633 90, 90, 91, 91, 91, 92, 92, 93, 93, 94, 00634 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 00635 94, 94, 94, 94, 94, 94, 94, 94, 94, 95, 00636 95, 96, 96, 96, 97, 97, 97, 97, 97, 97, 00637 98, 98, 99, 99, 100, 100, 100, 100, 100, 100, 00638 100, 100, 101, 101, 102, 102, 102, 103, 103, 103, 00639 104, 104, 104, 104, 104, 105, 105, 106, 106, 106, 00640 106, 106, 107, 107, 108, 108, 108, 109, 110, 110, 00641 111, 111, 111, 111, 111, 111, 111, 112, 113, 113, 00642 113, 114, 114, 115, 116, 116, 117, 117, 117, 118, 00643 119, 119, 119, 119, 119, 119 00644 }; 00645 00646 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 00647 static const unsigned char yyr2[] = 00648 { 00649 0, 2, 3, 0, 2, 4, 0, 1, 0, 6, 00650 7, 3, 3, 5, 0, 7, 4, 5, 2, 4, 00651 7, 8, 2, 1, 1, 1, 2, 0, 1, 1, 00652 1, 1, 1, 1, 1, 0, 3, 2, 2, 2, 00653 1, 3, 1, 4, 3, 1, 2, 3, 2, 1, 00654 0, 1, 1, 2, 3, 2, 2, 2, 2, 2, 00655 2, 5, 4, 4, 4, 6, 4, 6, 6, 7, 00656 6, 6, 5, 3, 1, 3, 1, 1, 1, 2, 00657 1, 1, 1, 3, 3, 7, 9, 0, 1, 1, 00658 2, 1, 2, 2, 3, 2, 3, 2, 3, 2, 00659 3, 1, 1, 2, 1, 2, 1, 2, 2, 2, 00660 1, 0, 1, 3, 1, 1, 2, 2, 4, 6, 00661 3, 1, 2, 1, 3, 3, 2, 2, 3, 2, 00662 1, 2, 3, 1, 3, 2, 1, 0, 2, 5, 00663 1, 1, 1, 1, 4, 0, 1, 1, 1, 1, 00664 1, 1, 6, 7, 1, 3, 0, 4, 1, 3, 00665 2, 5, 3, 5, 7, 6, 3, 1, 1, 3, 00666 4, 2, 0, 1, 2, 0, 1, 3, 2, 2, 00667 3, 5, 5, 5, 6, 7 00668 }; 00669 00670 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state 00671 STATE-NUM when YYTABLE doesn't specify something else to do. Zero 00672 means the default is an error. */ 00673 static const unsigned char yydefact[] = 00674 { 00675 6, 0, 0, 145, 6, 1, 40, 4, 0, 0, 00676 146, 0, 145, 0, 0, 0, 0, 0, 0, 0, 00677 101, 106, 89, 91, 102, 104, 6, 115, 25, 114, 00678 130, 0, 0, 0, 23, 24, 0, 0, 40, 117, 00679 116, 0, 0, 115, 0, 0, 126, 0, 22, 0, 00680 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 00681 90, 107, 95, 93, 92, 108, 99, 97, 103, 105, 00682 2, 111, 0, 127, 110, 129, 131, 40, 0, 0, 00683 0, 175, 0, 0, 167, 168, 172, 160, 5, 41, 00684 0, 49, 145, 11, 8, 12, 35, 117, 116, 0, 00685 0, 162, 125, 124, 27, 116, 0, 0, 76, 0, 00686 74, 14, 0, 0, 40, 166, 137, 96, 94, 100, 00687 98, 136, 0, 137, 112, 123, 0, 121, 128, 109, 00688 0, 0, 150, 149, 151, 147, 148, 0, 111, 0, 00689 178, 0, 179, 180, 0, 173, 0, 172, 8, 146, 00690 42, 45, 0, 48, 0, 7, 35, 0, 0, 52, 00691 32, 31, 30, 145, 0, 33, 34, 0, 0, 0, 00692 0, 35, 0, 35, 35, 35, 0, 35, 35, 35, 00693 35, 0, 0, 0, 0, 27, 27, 19, 0, 0, 00694 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, 00695 0, 137, 135, 122, 118, 0, 77, 142, 78, 140, 00696 0, 28, 29, 80, 143, 81, 82, 141, 177, 81, 00697 0, 111, 0, 0, 176, 174, 0, 169, 171, 35, 00698 0, 46, 145, 0, 0, 117, 116, 35, 0, 115, 00699 0, 0, 0, 38, 39, 0, 37, 59, 58, 56, 00700 13, 57, 53, 55, 60, 161, 0, 0, 0, 26, 00701 0, 0, 75, 0, 72, 73, 0, 17, 0, 138, 00702 0, 182, 183, 0, 163, 113, 134, 0, 120, 79, 00703 111, 0, 0, 0, 0, 87, 181, 0, 170, 0, 00704 133, 0, 47, 44, 9, 35, 35, 35, 35, 54, 00705 117, 35, 35, 0, 0, 36, 137, 0, 0, 0, 00706 70, 71, 50, 0, 0, 0, 158, 0, 119, 0, 00707 83, 84, 184, 87, 88, 152, 165, 10, 0, 43, 00708 64, 0, 66, 0, 35, 62, 63, 0, 0, 20, 00709 0, 69, 51, 15, 0, 185, 156, 0, 164, 144, 00710 153, 132, 35, 35, 61, 0, 35, 21, 139, 154, 00711 0, 159, 65, 67, 0, 0, 68, 156, 157, 0, 00712 85, 155, 0, 86 00713 }; 00714 00715 /* YYDEFGOTO[NTERM-NUM]. */ 00716 static const short int yydefgoto[] = 00717 { 00718 -1, 2, 3, 156, 26, 192, 183, 214, 171, 172, 00719 173, 174, 175, 27, 151, 152, 153, 94, 343, 176, 00720 177, 109, 110, 216, 217, 178, 325, 29, 80, 122, 00721 30, 126, 127, 31, 291, 124, 197, 359, 32, 137, 00722 33, 360, 316, 317, 179, 86, 87, 146, 147, 142, 00723 81, 82, 180 00724 }; 00725 00726 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 00727 STATE-NUM. */ 00728 #define YYPACT_NINF -191 00729 static const short int yypact[] = 00730 { 00731 28, 78, 99, 342, 80, -191, 67, -191, 115, 159, 00732 205, 81, 386, 463, 153, 44, 190, 32, 205, 205, 00733 -191, -191, 181, 287, 154, 161, 47, 66, -191, -191, 00734 138, 19, 185, 143, -191, -191, 207, 159, 21, 183, 00735 219, 159, 159, 194, 16, 31, 152, 205, -191, 91, 00736 159, -191, 228, 236, 233, 202, 264, 18, 143, 272, 00737 -191, -191, 231, 232, -191, -191, 246, 248, -191, -191, 00738 -191, 445, 81, 249, 256, -191, -191, 85, 182, 42, 00739 296, 273, 290, 159, -191, -191, 291, -191, -191, -191, 00740 196, -191, 146, -191, 262, -191, 269, -191, -191, 300, 00741 252, -191, -191, -191, 404, 311, 307, 236, 276, 319, 00742 302, -191, 329, 320, 60, -191, 289, -191, -191, -191, 00743 -191, -191, 114, 39, -191, 256, 305, 310, -191, -191, 00744 507, 101, -191, -191, -191, -191, -191, 332, 445, 339, 00745 -191, 62, -191, -191, 341, -191, 343, 291, 262, -191, 00746 321, -191, 34, -191, 337, -191, 269, 159, 159, -191, 00747 -191, -191, -191, 386, 474, -191, -191, 159, 352, 344, 00748 346, 211, 347, 269, 269, 269, 350, 269, 269, 269, 00749 269, 143, 205, 354, 87, 404, 404, -191, 356, 101, 00750 156, 236, 80, 359, -191, 120, 101, 360, 364, 247, 00751 445, 289, -191, -191, 331, 81, -191, -191, -191, -191, 00752 379, -191, -191, -191, -191, 374, 40, -191, -191, -191, 00753 333, 445, 116, 372, 349, -191, 378, 377, -191, 269, 00754 205, -191, 146, 159, 383, 265, 299, 269, 159, 27, 00755 384, 371, 361, -191, -191, 391, -191, -191, -191, -191, 00756 -191, -191, -191, -191, -191, -191, 407, 159, 400, -191, 00757 403, 176, -191, 401, -191, -191, 405, -191, 205, -191, 00758 365, -191, -191, 415, -191, -191, -191, 159, -191, -191, 00759 445, 101, 101, 406, 132, 399, -191, 143, -191, 408, 00760 392, 390, -191, -191, -191, 269, 269, 269, 269, -191, 00761 411, 269, 269, 205, 425, -191, 144, 418, 159, 419, 00762 -191, -191, 420, 417, 421, 427, 409, 143, -191, 148, 00763 -191, -191, -191, 399, -191, -191, -191, -191, 205, -191, 00764 -191, 426, -191, 428, 269, -191, -191, 414, 437, -191, 00765 441, -191, -191, -191, 507, -191, 507, 415, -191, -191, 00766 -191, -191, 269, 269, -191, 25, 269, -191, -191, 412, 00767 444, -191, -191, -191, 455, 446, -191, 507, -191, 159, 00768 -191, -191, 453, -191 00769 }; 00770 00771 /* YYPGOTO[NTERM-NUM]. */ 00772 static const short int yypgoto[] = 00773 { 00774 -191, 9, -191, 314, -191, -191, -2, -191, -191, 301, 00775 -191, -191, -191, -8, 238, -191, 243, -33, -191, 77, 00776 473, -91, -191, -72, -111, -191, 155, -191, -9, -123, 00777 1, 274, -191, 41, -190, 277, -97, -124, -78, -191, 00778 22, 121, -191, 134, 6, -191, -41, 335, -191, -191, 00779 -191, 348, 5 00780 }; 00781 00782 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 00783 positive, shift that token. If negative, reduce the rule which 00784 number is the opposite. If zero, do what YYDEFACT says. 00785 If YYTABLE_NINF, syntax error. */ 00786 #define YYTABLE_NINF -177 00787 static const short int yytable[] = 00788 { 00789 39, 40, 43, 43, 101, 43, 218, 96, 35, 34, 00790 43, 43, 46, 36, 154, 222, 188, 115, 48, 198, 00791 220, 76, 6, 79, 114, 77, 202, 6, -3, 89, 00792 90, 6, 45, 97, 98, 70, 99, 103, 55, 43, 00793 58, 105, 106, 84, 301, 6, 231, -3, 85, 99, 00794 52, 44, 74, 44, 50, 138, 53, 148, 139, 57, 00795 59, -3, 72, 43, 43, 129, 232, 1, 224, 58, 00796 281, 269, 37, 125, 56, 144, 364, -137, 262, 71, 00797 78, 100, 78, 78, 150, 270, 1, 6, 44, 195, 00798 4, 41, 42, 77, -3, 74, 43, 6, 284, 5, 00799 265, 72, -176, 104, 276, 206, 282, 6, 208, 185, 00800 195, 37, 123, 337, 196, 201, 203, -176, 37, 1, 00801 74, 38, 215, 219, 206, 207, 6, 208, 209, 199, 00802 43, 285, 210, 268, 20, 130, 37, 21, 351, 131, 00803 255, 22, 23, 24, 25, 184, 200, 323, 200, 235, 00804 236, 210, 6, 213, 154, 84, 239, 319, 274, 241, 00805 85, 73, 263, 349, 200, 6, 211, 212, 149, 237, 00806 51, 74, 213, 264, 43, 75, 258, 43, 43, 123, 00807 200, 219, 309, 259, 260, 74, 240, 215, 219, 102, 00808 185, 185, 43, 310, 195, 91, 54, 43, 196, 92, 00809 93, 266, 296, 298, 44, 44, 125, 68, 91, 320, 00810 321, 6, 92, 43, 69, 41, 42, 132, 133, 83, 00811 358, 88, 43, 256, 150, 150, 184, 184, 11, 72, 00812 300, 91, 134, 234, 60, 92, 95, 61, 165, 166, 00813 107, 123, 108, 62, 63, 111, 326, 135, 136, 307, 00814 247, 248, 249, 112, 251, 252, 253, 254, 20, 84, 00815 43, 21, 123, 273, 85, 22, 23, 24, 25, 318, 00816 113, 290, 43, 219, 219, 6, 348, 91, 116, 157, 00817 158, 92, 295, 159, 117, 118, 128, 160, 161, 74, 00818 162, 10, 11, 163, 164, 43, 165, 166, 167, 119, 00819 340, 120, 140, -145, 181, 141, 289, 143, 145, 313, 00820 15, 91, 168, 138, 299, 92, 297, 18, 19, 155, 00821 43, 123, 20, 186, 187, 21, 189, 169, 170, 22, 00822 23, 24, 25, 190, 191, 193, 215, 194, 215, 195, 00823 64, 204, 205, 65, 290, 221, 223, 365, 6, 66, 00824 67, 7, 8, 9, 226, 233, 230, 227, 242, 215, 00825 243, 372, 244, 246, 10, 11, 12, 250, 257, 290, 00826 261, 13, 330, 331, 332, 333, 267, 271, 335, 336, 00827 14, 272, 277, 15, 16, 17, 279, 280, 283, 286, 00828 18, 19, 6, 287, 288, 20, 41, 42, 21, 130, 00829 294, 302, 22, 23, 24, 25, 303, 305, 10, 11, 00830 6, 354, 304, 306, 41, 42, 139, 308, 311, 312, 00831 314, 315, 324, 322, 328, 327, 329, 11, 334, 362, 00832 363, 338, 344, 366, 47, 339, 341, 342, 345, 20, 00833 346, 347, 21, 352, 367, 353, 22, 23, 24, 25, 00834 355, 6, 182, 19, 356, 41, 42, 20, 357, 368, 00835 21, 369, 229, 370, 22, 23, 24, 25, 11, 6, 00836 373, 293, 245, 41, 49, 292, 28, 275, 350, 278, 00837 6, 361, 228, 0, 238, 42, 11, 0, 371, 225, 00838 121, 0, 0, 0, 0, 0, 0, 11, 20, 0, 00839 0, 21, 0, 0, 0, 22, 23, 24, 25, 0, 00840 0, 206, 207, 6, 208, 209, 20, 0, 0, 21, 00841 0, 0, 0, 22, 23, 24, 25, 20, 0, 0, 00842 21, 0, 0, 0, 22, 23, 24, 25, 210, 0, 00843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 00844 0, 0, 0, 211, 212, 0, 0, 0, 0, 213 00845 }; 00846 00847 static const short int yycheck[] = 00848 { 00849 8, 9, 10, 11, 45, 13, 130, 40, 3, 3, 00850 18, 19, 11, 4, 92, 138, 107, 58, 12, 116, 00851 131, 30, 6, 31, 6, 6, 123, 6, 0, 37, 00852 38, 6, 10, 41, 42, 26, 44, 46, 6, 47, 00853 18, 49, 50, 12, 17, 6, 12, 0, 17, 57, 00854 6, 10, 33, 12, 13, 13, 12, 90, 16, 18, 00855 19, 14, 35, 71, 72, 74, 32, 39, 6, 47, 00856 30, 195, 51, 72, 42, 83, 51, 17, 189, 13, 00857 64, 50, 64, 64, 92, 196, 39, 6, 47, 50, 00858 12, 10, 11, 6, 14, 33, 104, 6, 221, 0, 00859 191, 35, 17, 12, 201, 4, 66, 6, 7, 104, 00860 50, 51, 71, 303, 54, 123, 125, 32, 51, 39, 00861 33, 6, 130, 131, 4, 5, 6, 7, 8, 15, 00862 138, 15, 31, 13, 53, 50, 51, 56, 328, 54, 00863 181, 60, 61, 62, 63, 104, 32, 15, 32, 157, 00864 158, 31, 6, 52, 232, 12, 164, 280, 199, 167, 00865 17, 23, 6, 15, 32, 6, 46, 47, 22, 163, 00866 17, 33, 52, 17, 182, 37, 184, 185, 186, 138, 00867 32, 189, 6, 185, 186, 33, 164, 195, 196, 37, 00868 185, 186, 200, 17, 50, 12, 6, 205, 54, 16, 00869 17, 192, 235, 236, 163, 164, 205, 53, 12, 281, 00870 282, 6, 16, 221, 53, 10, 11, 35, 36, 34, 00871 344, 14, 230, 182, 232, 233, 185, 186, 23, 35, 00872 238, 12, 50, 156, 53, 16, 17, 56, 27, 28, 00873 12, 200, 6, 62, 63, 12, 287, 65, 66, 257, 00874 173, 174, 175, 51, 177, 178, 179, 180, 53, 12, 00875 268, 56, 221, 16, 17, 60, 61, 62, 63, 277, 00876 6, 230, 280, 281, 282, 6, 317, 12, 6, 10, 00877 11, 16, 17, 14, 53, 53, 37, 18, 19, 33, 00878 21, 22, 23, 24, 25, 303, 27, 28, 29, 53, 00879 308, 53, 6, 34, 52, 32, 229, 17, 17, 268, 00880 41, 12, 43, 13, 237, 16, 17, 48, 49, 57, 00881 328, 280, 53, 12, 17, 56, 50, 58, 59, 60, 00882 61, 62, 63, 14, 32, 6, 344, 17, 346, 50, 00883 53, 36, 32, 56, 303, 13, 7, 355, 6, 62, 00884 63, 9, 10, 11, 13, 18, 35, 14, 6, 367, 00885 16, 369, 16, 16, 22, 23, 24, 17, 14, 328, 00886 14, 29, 295, 296, 297, 298, 17, 17, 301, 302, 00887 38, 17, 51, 41, 42, 43, 7, 13, 55, 17, 00888 48, 49, 6, 15, 17, 53, 10, 11, 56, 50, 00889 17, 17, 60, 61, 62, 63, 35, 16, 22, 23, 00890 6, 334, 51, 6, 10, 11, 16, 14, 17, 14, 00891 55, 6, 23, 17, 32, 17, 36, 23, 17, 352, 00892 353, 6, 15, 356, 48, 17, 17, 17, 17, 53, 00893 13, 32, 56, 17, 32, 17, 60, 61, 62, 63, 00894 36, 6, 48, 49, 17, 10, 11, 53, 17, 15, 00895 56, 6, 148, 17, 60, 61, 62, 63, 23, 6, 00896 17, 233, 171, 10, 11, 232, 3, 200, 323, 205, 00897 6, 347, 147, -1, 10, 11, 23, -1, 367, 141, 00898 45, -1, -1, -1, -1, -1, -1, 23, 53, -1, 00899 -1, 56, -1, -1, -1, 60, 61, 62, 63, -1, 00900 -1, 4, 5, 6, 7, 8, 53, -1, -1, 56, 00901 -1, -1, -1, 60, 61, 62, 63, 53, -1, -1, 00902 56, -1, -1, -1, 60, 61, 62, 63, 31, -1, 00903 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 00904 -1, -1, -1, 46, 47, -1, -1, -1, -1, 52 00905 }; 00906 00907 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 00908 symbol of state STATE-NUM. */ 00909 static const unsigned char yystos[] = 00910 { 00911 0, 39, 68, 69, 12, 0, 6, 9, 10, 11, 00912 22, 23, 24, 29, 38, 41, 42, 43, 48, 49, 00913 53, 56, 60, 61, 62, 63, 71, 80, 87, 94, 00914 97, 100, 105, 107, 111, 119, 68, 51, 6, 80, 00915 80, 10, 11, 80, 100, 107, 97, 48, 111, 11, 00916 100, 17, 6, 12, 6, 6, 42, 100, 107, 100, 00917 53, 56, 62, 63, 53, 56, 62, 63, 53, 53, 00918 68, 13, 35, 23, 33, 37, 95, 6, 64, 80, 00919 95, 117, 118, 34, 12, 17, 112, 113, 14, 80, 00920 80, 12, 16, 17, 84, 17, 84, 80, 80, 80, 00921 50, 113, 37, 95, 12, 80, 80, 12, 6, 88, 00922 89, 12, 51, 6, 6, 113, 6, 53, 53, 53, 00923 53, 45, 96, 100, 102, 97, 98, 99, 37, 95, 00924 50, 54, 35, 36, 50, 65, 66, 106, 13, 16, 00925 6, 32, 116, 17, 80, 17, 114, 115, 84, 22, 00926 80, 81, 82, 83, 105, 57, 70, 10, 11, 14, 00927 18, 19, 21, 24, 25, 27, 28, 29, 43, 58, 00928 59, 75, 76, 77, 78, 79, 86, 87, 92, 111, 00929 119, 52, 48, 73, 100, 119, 12, 17, 88, 50, 00930 14, 32, 72, 6, 17, 50, 54, 103, 103, 15, 00931 32, 80, 103, 95, 36, 32, 4, 5, 7, 8, 00932 31, 46, 47, 52, 74, 80, 90, 91, 104, 80, 00933 91, 13, 96, 7, 6, 118, 13, 14, 114, 70, 00934 35, 12, 32, 18, 86, 80, 80, 111, 10, 80, 00935 107, 80, 6, 16, 16, 76, 16, 86, 86, 86, 00936 17, 86, 86, 86, 86, 113, 100, 14, 80, 73, 00937 73, 14, 91, 6, 17, 88, 68, 17, 13, 104, 00938 91, 17, 17, 16, 113, 102, 103, 51, 98, 7, 00939 13, 30, 66, 55, 96, 15, 17, 15, 17, 86, 00940 100, 101, 83, 81, 17, 17, 84, 17, 84, 86, 00941 80, 17, 17, 35, 51, 16, 6, 80, 14, 6, 00942 17, 17, 14, 100, 55, 6, 109, 110, 80, 96, 00943 90, 90, 17, 15, 23, 93, 113, 17, 32, 36, 00944 86, 86, 86, 86, 17, 86, 86, 101, 6, 17, 00945 80, 17, 17, 85, 15, 17, 13, 32, 113, 15, 00946 93, 101, 17, 17, 86, 36, 17, 17, 104, 104, 00947 108, 110, 86, 86, 51, 80, 86, 32, 15, 6, 00948 17, 108, 80, 17 00949 }; 00950 00951 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) 00952 # define YYSIZE_T __SIZE_TYPE__ 00953 #endif 00954 #if ! defined (YYSIZE_T) && defined (size_t) 00955 # define YYSIZE_T size_t 00956 #endif 00957 #if ! defined (YYSIZE_T) 00958 # if defined (__STDC__) || defined (__cplusplus) 00959 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 00960 # define YYSIZE_T size_t 00961 # endif 00962 #endif 00963 #if ! defined (YYSIZE_T) 00964 # define YYSIZE_T unsigned int 00965 #endif 00966 00967 #define yyerrok (yyerrstatus = 0) 00968 #define yyclearin (yychar = YYEMPTY) 00969 #define YYEMPTY (-2) 00970 #define YYEOF 0 00971 00972 #define YYACCEPT goto yyacceptlab 00973 #define YYABORT goto yyabortlab 00974 #define YYERROR goto yyerrorlab 00975 00976 00977 /* Like YYERROR except do call yyerror. This remains here temporarily 00978 to ease the transition to the new meaning of YYERROR, for GCC. 00979 Once GCC version 2 has supplanted version 1, this can go. */ 00980 00981 #define YYFAIL goto yyerrlab 00982 00983 #define YYRECOVERING() (!!yyerrstatus) 00984 00985 #define YYBACKUP(Token, Value) \ 00986 do \ 00987 if (yychar == YYEMPTY && yylen == 1) \ 00988 { \ 00989 yychar = (Token); \ 00990 yylval = (Value); \ 00991 yytoken = YYTRANSLATE (yychar); \ 00992 YYPOPSTACK; \ 00993 goto yybackup; \ 00994 } \ 00995 else \ 00996 { \ 00997 yyerror ("syntax error: cannot back up");\ 00998 YYERROR; \ 00999 } \ 01000 while (0) 01001 01002 #define YYTERROR 1 01003 #define YYERRCODE 256 01004 01005 /* YYLLOC_DEFAULT -- Compute the default location (before the actions 01006 are run). */ 01007 01008 #ifndef YYLLOC_DEFAULT 01009 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 01010 ((Current).first_line = (Rhs)[1].first_line, \ 01011 (Current).first_column = (Rhs)[1].first_column, \ 01012 (Current).last_line = (Rhs)[N].last_line, \ 01013 (Current).last_column = (Rhs)[N].last_column) 01014 #endif 01015 01016 /* YYLEX -- calling `yylex' with the right arguments. */ 01017 01018 #ifdef YYLEX_PARAM 01019 # define YYLEX yylex (YYLEX_PARAM) 01020 #else 01021 # define YYLEX yylex () 01022 #endif 01023 01024 /* Enable debugging if requested. */ 01025 #if YYDEBUG 01026 01027 # ifndef YYFPRINTF 01028 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 01029 # define YYFPRINTF fprintf 01030 # endif 01031 01032 # define YYDPRINTF(Args) \ 01033 do { \ 01034 if (yydebug) \ 01035 YYFPRINTF Args; \ 01036 } while (0) 01037 01038 # define YYDSYMPRINT(Args) \ 01039 do { \ 01040 if (yydebug) \ 01041 yysymprint Args; \ 01042 } while (0) 01043 01044 # define YYDSYMPRINTF(Title, Token, Value, Location) \ 01045 do { \ 01046 if (yydebug) \ 01047 { \ 01048 YYFPRINTF (stderr, "%s ", Title); \ 01049 yysymprint (stderr, \ 01050 Token, Value); \ 01051 YYFPRINTF (stderr, "\n"); \ 01052 } \ 01053 } while (0) 01054 01055 /*------------------------------------------------------------------. 01056 | yy_stack_print -- Print the state stack from its BOTTOM up to its | 01057 | TOP (included). | 01058 `------------------------------------------------------------------*/ 01059 01060 #if defined (__STDC__) || defined (__cplusplus) 01061 static void 01062 yy_stack_print (short int *bottom, short int *top) 01063 #else 01064 static void 01065 yy_stack_print (bottom, top) 01066 short int *bottom; 01067 short int *top; 01068 #endif 01069 { 01070 YYFPRINTF (stderr, "Stack now"); 01071 for (/* Nothing. */; bottom <= top; ++bottom) 01072 YYFPRINTF (stderr, " %d", *bottom); 01073 YYFPRINTF (stderr, "\n"); 01074 } 01075 01076 # define YY_STACK_PRINT(Bottom, Top) \ 01077 do { \ 01078 if (yydebug) \ 01079 yy_stack_print ((Bottom), (Top)); \ 01080 } while (0) 01081 01082 01083 /*------------------------------------------------. 01084 | Report that the YYRULE is going to be reduced. | 01085 `------------------------------------------------*/ 01086 01087 #if defined (__STDC__) || defined (__cplusplus) 01088 static void 01089 yy_reduce_print (int yyrule) 01090 #else 01091 static void 01092 yy_reduce_print (yyrule) 01093 int yyrule; 01094 #endif 01095 { 01096 int yyi; 01097 unsigned int yylno = yyrline[yyrule]; 01098 YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", 01099 yyrule - 1, yylno); 01100 /* Print the symbols being reduced, and their result. */ 01101 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) 01102 YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); 01103 YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); 01104 } 01105 01106 # define YY_REDUCE_PRINT(Rule) \ 01107 do { \ 01108 if (yydebug) \ 01109 yy_reduce_print (Rule); \ 01110 } while (0) 01111 01112 /* Nonzero means print parse trace. It is left uninitialized so that 01113 multiple parsers can coexist. */ 01114 int yydebug; 01115 #else /* !YYDEBUG */ 01116 # define YYDPRINTF(Args) 01117 # define YYDSYMPRINT(Args) 01118 # define YYDSYMPRINTF(Title, Token, Value, Location) 01119 # define YY_STACK_PRINT(Bottom, Top) 01120 # define YY_REDUCE_PRINT(Rule) 01121 #endif /* !YYDEBUG */ 01122 01123 01124 /* YYINITDEPTH -- initial size of the parser's stacks. */ 01125 #ifndef YYINITDEPTH 01126 # define YYINITDEPTH 200 01127 #endif 01128 01129 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 01130 if the built-in stack extension method is used). 01131 01132 Do not make this value too large; the results are undefined if 01133 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) 01134 evaluated with infinite-precision integer arithmetic. */ 01135 01136 #if defined (YYMAXDEPTH) && YYMAXDEPTH == 0 01137 # undef YYMAXDEPTH 01138 #endif 01139 01140 #ifndef YYMAXDEPTH 01141 # define YYMAXDEPTH 10000 01142 #endif 01143 01144 01145 01146 #if YYERROR_VERBOSE 01147 01148 # ifndef yystrlen 01149 # if defined (__GLIBC__) && defined (_STRING_H) 01150 # define yystrlen strlen 01151 # else 01152 /* Return the length of YYSTR. */ 01153 static YYSIZE_T 01154 # if defined (__STDC__) || defined (__cplusplus) 01155 yystrlen (const char *yystr) 01156 # else 01157 yystrlen (yystr) 01158 const char *yystr; 01159 # endif 01160 { 01161 register const char *yys = yystr; 01162 01163 while (*yys++ != '\0') 01164 continue; 01165 01166 return yys - yystr - 1; 01167 } 01168 # endif 01169 # endif 01170 01171 # ifndef yystpcpy 01172 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) 01173 # define yystpcpy stpcpy 01174 # else 01175 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 01176 YYDEST. */ 01177 static char * 01178 # if defined (__STDC__) || defined (__cplusplus) 01179 yystpcpy (char *yydest, const char *yysrc) 01180 # else 01181 yystpcpy (yydest, yysrc) 01182 char *yydest; 01183 const char *yysrc; 01184 # endif 01185 { 01186 register char *yyd = yydest; 01187 register const char *yys = yysrc; 01188 01189 while ((*yyd++ = *yys++) != '\0') 01190 continue; 01191 01192 return yyd - 1; 01193 } 01194 # endif 01195 # endif 01196 01197 #endif /* !YYERROR_VERBOSE */ 01198 01199 01200 01201 #if YYDEBUG 01202 /*--------------------------------. 01203 | Print this symbol on YYOUTPUT. | 01204 `--------------------------------*/ 01205 01206 #if defined (__STDC__) || defined (__cplusplus) 01207 static void 01208 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) 01209 #else 01210 static void 01211 yysymprint (yyoutput, yytype, yyvaluep) 01212 FILE *yyoutput; 01213 int yytype; 01214 YYSTYPE *yyvaluep; 01215 #endif 01216 { 01217 /* Pacify ``unused variable'' warnings. */ 01218 (void) yyvaluep; 01219 01220 if (yytype < YYNTOKENS) 01221 { 01222 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 01223 # ifdef YYPRINT 01224 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 01225 # endif 01226 } 01227 else 01228 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 01229 01230 switch (yytype) 01231 { 01232 default: 01233 break; 01234 } 01235 YYFPRINTF (yyoutput, ")"); 01236 } 01237 01238 #endif /* ! YYDEBUG */ 01239 /*-----------------------------------------------. 01240 | Release the memory associated to this symbol. | 01241 `-----------------------------------------------*/ 01242 01243 #if defined (__STDC__) || defined (__cplusplus) 01244 static void 01245 yydestruct (int yytype, YYSTYPE *yyvaluep) 01246 #else 01247 static void 01248 yydestruct (yytype, yyvaluep) 01249 int yytype; 01250 YYSTYPE *yyvaluep; 01251 #endif 01252 { 01253 /* Pacify ``unused variable'' warnings. */ 01254 (void) yyvaluep; 01255 01256 switch (yytype) 01257 { 01258 01259 default: 01260 break; 01261 } 01262 } 01263 01264 01265 /* Prevent warnings from -Wmissing-prototypes. */ 01266 01267 #ifdef YYPARSE_PARAM 01268 # if defined (__STDC__) || defined (__cplusplus) 01269 int yyparse (void *YYPARSE_PARAM); 01270 # else 01271 int yyparse (); 01272 # endif 01273 #else /* ! YYPARSE_PARAM */ 01274 #if defined (__STDC__) || defined (__cplusplus) 01275 int yyparse (void); 01276 #else 01277 int yyparse (); 01278 #endif 01279 #endif /* ! YYPARSE_PARAM */ 01280 01281 01282 01283 /* The lookahead symbol. */ 01284 int yychar; 01285 01286 /* The semantic value of the lookahead symbol. */ 01287 YYSTYPE yylval; 01288 01289 /* Number of syntax errors so far. */ 01290 int yynerrs; 01291 01292 01293 01294 /*----------. 01295 | yyparse. | 01296 `----------*/ 01297 01298 #ifdef YYPARSE_PARAM 01299 # if defined (__STDC__) || defined (__cplusplus) 01300 int yyparse (void *YYPARSE_PARAM) 01301 # else 01302 int yyparse (YYPARSE_PARAM) 01303 void *YYPARSE_PARAM; 01304 # endif 01305 #else /* ! YYPARSE_PARAM */ 01306 #if defined (__STDC__) || defined (__cplusplus) 01307 int 01308 yyparse (void) 01309 #else 01310 int 01311 yyparse () 01312 01313 #endif 01314 #endif 01315 { 01316 01317 register int yystate; 01318 register int yyn; 01319 int yyresult; 01320 /* Number of tokens to shift before error messages enabled. */ 01321 int yyerrstatus; 01322 /* Lookahead token as an internal (translated) token number. */ 01323 int yytoken = 0; 01324 01325 /* Three stacks and their tools: 01326 `yyss': related to states, 01327 `yyvs': related to semantic values, 01328 `yyls': related to locations. 01329 01330 Refer to the stacks thru separate pointers, to allow yyoverflow 01331 to reallocate them elsewhere. */ 01332 01333 /* The state stack. */ 01334 short int yyssa[YYINITDEPTH]; 01335 short int *yyss = yyssa; 01336 register short int *yyssp; 01337 01338 /* The semantic value stack. */ 01339 YYSTYPE yyvsa[YYINITDEPTH]; 01340 YYSTYPE *yyvs = yyvsa; 01341 register YYSTYPE *yyvsp; 01342 01343 01344 01345 #define YYPOPSTACK (yyvsp--, yyssp--) 01346 01347 YYSIZE_T yystacksize = YYINITDEPTH; 01348 01349 /* The variables used to return semantic value and location from the 01350 action routines. */ 01351 YYSTYPE yyval; 01352 01353 01354 /* When reducing, the number of symbols on the RHS of the reduced 01355 rule. */ 01356 int yylen; 01357 01358 YYDPRINTF ((stderr, "Starting parse\n")); 01359 01360 yystate = 0; 01361 yyerrstatus = 0; 01362 yynerrs = 0; 01363 yychar = YYEMPTY; /* Cause a token to be read. */ 01364 01365 /* Initialize stack pointers. 01366 Waste one element of value and location stack 01367 so that they stay on the same level as the state stack. 01368 The wasted elements are never initialized. */ 01369 01370 yyssp = yyss; 01371 yyvsp = yyvs; 01372 01373 01374 goto yysetstate; 01375 01376 /*------------------------------------------------------------. 01377 | yynewstate -- Push a new state, which is found in yystate. | 01378 `------------------------------------------------------------*/ 01379 yynewstate: 01380 /* In all cases, when you get here, the value and location stacks 01381 have just been pushed. so pushing a state here evens the stacks. 01382 */ 01383 yyssp++; 01384 01385 yysetstate: 01386 *yyssp = yystate; 01387 01388 if (yyss + yystacksize - 1 <= yyssp) 01389 { 01390 /* Get the current used size of the three stacks, in elements. */ 01391 YYSIZE_T yysize = yyssp - yyss + 1; 01392 01393 #ifdef yyoverflow 01394 { 01395 /* Give user a chance to reallocate the stack. Use copies of 01396 these so that the &'s don't force the real ones into 01397 memory. */ 01398 YYSTYPE *yyvs1 = yyvs; 01399 short int *yyss1 = yyss; 01400 01401 01402 /* Each stack pointer address is followed by the size of the 01403 data in use in that stack, in bytes. This used to be a 01404 conditional around just the two extra args, but that might 01405 be undefined if yyoverflow is a macro. */ 01406 yyoverflow ("parser stack overflow", 01407 &yyss1, yysize * sizeof (*yyssp), 01408 &yyvs1, yysize * sizeof (*yyvsp), 01409 01410 &yystacksize); 01411 01412 yyss = yyss1; 01413 yyvs = yyvs1; 01414 } 01415 #else /* no yyoverflow */ 01416 # ifndef YYSTACK_RELOCATE 01417 goto yyoverflowlab; 01418 # else 01419 /* Extend the stack our own way. */ 01420 if (YYMAXDEPTH <= yystacksize) 01421 goto yyoverflowlab; 01422 yystacksize *= 2; 01423 if (YYMAXDEPTH < yystacksize) 01424 yystacksize = YYMAXDEPTH; 01425 01426 { 01427 short int *yyss1 = yyss; 01428 union yyalloc *yyptr = 01429 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 01430 if (! yyptr) 01431 goto yyoverflowlab; 01432 YYSTACK_RELOCATE (yyss); 01433 YYSTACK_RELOCATE (yyvs); 01434 01435 # undef YYSTACK_RELOCATE 01436 if (yyss1 != yyssa) 01437 YYSTACK_FREE (yyss1); 01438 } 01439 # endif 01440 #endif /* no yyoverflow */ 01441 01442 yyssp = yyss + yysize - 1; 01443 yyvsp = yyvs + yysize - 1; 01444 01445 01446 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 01447 (unsigned long int) yystacksize)); 01448 01449 if (yyss + yystacksize - 1 <= yyssp) 01450 YYABORT; 01451 } 01452 01453 YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 01454 01455 goto yybackup; 01456 01457 /*-----------. 01458 | yybackup. | 01459 `-----------*/ 01460 yybackup: 01461 01462 /* Do appropriate processing given the current state. */ 01463 /* Read a lookahead token if we need one and don't already have one. */ 01464 /* yyresume: */ 01465 01466 /* First try to decide what to do without reference to lookahead token. */ 01467 01468 yyn = yypact[yystate]; 01469 if (yyn == YYPACT_NINF) 01470 goto yydefault; 01471 01472 /* Not known => get a lookahead token if don't already have one. */ 01473 01474 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 01475 if (yychar == YYEMPTY) 01476 { 01477 YYDPRINTF ((stderr, "Reading a token: ")); 01478 yychar = YYLEX; 01479 } 01480 01481 if (yychar <= YYEOF) 01482 { 01483 yychar = yytoken = YYEOF; 01484 YYDPRINTF ((stderr, "Now at end of input.\n")); 01485 } 01486 else 01487 { 01488 yytoken = YYTRANSLATE (yychar); 01489 YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); 01490 } 01491 01492 /* If the proper action on seeing token YYTOKEN is to reduce or to 01493 detect an error, take that action. */ 01494 yyn += yytoken; 01495 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 01496 goto yydefault; 01497 yyn = yytable[yyn]; 01498 if (yyn <= 0) 01499 { 01500 if (yyn == 0 || yyn == YYTABLE_NINF) 01501 goto yyerrlab; 01502 yyn = -yyn; 01503 goto yyreduce; 01504 } 01505 01506 if (yyn == YYFINAL) 01507 YYACCEPT; 01508 01509 /* Shift the lookahead token. */ 01510 YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); 01511 01512 /* Discard the token being shifted unless it is eof. */ 01513 if (yychar != YYEOF) 01514 yychar = YYEMPTY; 01515 01516 *++yyvsp = yylval; 01517 01518 01519 /* Count tokens shifted since error; after three, turn off error 01520 status. */ 01521 if (yyerrstatus) 01522 yyerrstatus--; 01523 01524 yystate = yyn; 01525 goto yynewstate; 01526 01527 01528 /*-----------------------------------------------------------. 01529 | yydefault -- do the default action for the current state. | 01530 `-----------------------------------------------------------*/ 01531 yydefault: 01532 yyn = yydefact[yystate]; 01533 if (yyn == 0) 01534 goto yyerrlab; 01535 goto yyreduce; 01536 01537 01538 /*-----------------------------. 01539 | yyreduce -- Do a reduction. | 01540 `-----------------------------*/ 01541 yyreduce: 01542 /* yyn is the number of a rule to reduce with. */ 01543 yylen = yyr2[yyn]; 01544 01545 /* If YYLEN is nonzero, implement the default value of the action: 01546 `$$ = $1'. 01547 01548 Otherwise, the following line sets YYVAL to garbage. 01549 This behavior is undocumented and Bison 01550 users should not rely upon it. Assigning to YYVAL 01551 unconditionally makes the parser a bit smaller, and it avoids a 01552 GCC warning that YYVAL may be used uninitialized. */ 01553 yyval = yyvsp[1-yylen]; 01554 01555 01556 YY_REDUCE_PRINT (yyn); 01557 switch (yyn) 01558 { 01559 case 2: 01560 #line 165 "yacc.yy" 01561 { 01562 ;} 01563 break; 01564 01565 case 4: 01566 #line 172 "yacc.yy" 01567 { 01568 printf("<INCLUDE>%s</INCLUDE>\n", yyvsp[0]._str->latin1() ); 01569 ;} 01570 break; 01571 01572 case 5: 01573 #line 176 "yacc.yy" 01574 { 01575 ;} 01576 break; 01577 01578 case 6: 01579 #line 179 "yacc.yy" 01580 { 01581 ;} 01582 break; 01583 01584 case 7: 01585 #line 184 "yacc.yy" 01586 { yyval._int = 1; ;} 01587 break; 01588 01589 case 8: 01590 #line 185 "yacc.yy" 01591 { yyval._int = 0; ;} 01592 break; 01593 01594 case 9: 01595 #line 190 "yacc.yy" 01596 { 01597 if (yyvsp[-2]._int) 01598 printf("<CLASS>\n <NAME>%s</NAME>\n%s%s</CLASS>\n", ( in_namespace + *yyvsp[-4]._str ).latin1(), yyvsp[-3]._str->latin1(), yyvsp[-1]._str->latin1() ); 01599 // default C++ visibility specifier is 'private' 01600 dcop_area = 0; 01601 dcop_signal_area = 0; 01602 01603 ;} 01604 break; 01605 01606 case 10: 01607 #line 199 "yacc.yy" 01608 { 01609 if (yyvsp[-2]._int) 01610 printf("<CLASS>\n <NAME>%s</NAME>\n <LINK_SCOPE>%s</LINK_SCOPE>\n%s%s</CLASS>\n", ( in_namespace + *yyvsp[-4]._str ).latin1(),yyvsp[-5]._str->latin1(), yyvsp[-3]._str->latin1(), yyvsp[-1]._str->latin1() ); 01611 // default C++ visibility specifier is 'private' 01612 dcop_area = 0; 01613 dcop_signal_area = 0; 01614 01615 ;} 01616 break; 01617 01618 case 11: 01619 #line 208 "yacc.yy" 01620 { 01621 ;} 01622 break; 01623 01624 case 12: 01625 #line 211 "yacc.yy" 01626 { 01627 ;} 01628 break; 01629 01630 case 13: 01631 #line 214 "yacc.yy" 01632 { 01633 ;} 01634 break; 01635 01636 case 14: 01637 #line 217 "yacc.yy" 01638 { 01639 in_namespace += *yyvsp[-1]._str; in_namespace += "::"; 01640 ;} 01641 break; 01642 01643 case 15: 01644 #line 221 "yacc.yy" 01645 { 01646 int pos = in_namespace.findRev( "::", -3 ); 01647 if( pos >= 0 ) 01648 in_namespace = in_namespace.left( pos + 2 ); 01649 else 01650 in_namespace = ""; 01651 ;} 01652 break; 01653 01654 case 16: 01655 #line 229 "yacc.yy" 01656 { 01657 ;} 01658 break; 01659 01660 case 17: 01661 #line 232 "yacc.yy" 01662 { 01663 ;} 01664 break; 01665 01666 case 18: 01667 #line 235 "yacc.yy" 01668 { 01669 ;} 01670 break; 01671 01672 case 19: 01673 #line 238 "yacc.yy" 01674 { 01675 ;} 01676 break; 01677 01678 case 20: 01679 #line 241 "yacc.yy" 01680 { 01681 ;} 01682 break; 01683 01684 case 21: 01685 #line 244 "yacc.yy" 01686 { 01687 ;} 01688 break; 01689 01690 case 22: 01691 #line 247 "yacc.yy" 01692 { 01693 ;} 01694 break; 01695 01696 case 23: 01697 #line 250 "yacc.yy" 01698 { 01699 ;} 01700 break; 01701 01702 case 24: 01703 #line 253 "yacc.yy" 01704 { 01705 ;} 01706 break; 01707 01708 case 25: 01709 #line 256 "yacc.yy" 01710 { 01711 ;} 01712 break; 01713 01714 case 36: 01715 #line 273 "yacc.yy" 01716 { 01717 dcop_area = 0; 01718 dcop_signal_area = 0; 01719 ;} 01720 break; 01721 01722 case 37: 01723 #line 278 "yacc.yy" 01724 { 01725 dcop_area = 0; 01726 dcop_signal_area = 0; 01727 ;} 01728 break; 01729 01730 case 38: 01731 #line 286 "yacc.yy" 01732 { 01733 dcop_area = 1; 01734 dcop_signal_area = 0; 01735 ;} 01736 break; 01737 01738 case 39: 01739 #line 294 "yacc.yy" 01740 { 01741 /* 01742 A dcop signals area needs all dcop area capabilities, 01743 e.g. parsing of function parameters. 01744 */ 01745 dcop_area = 1; 01746 dcop_signal_area = 1; 01747 ;} 01748 break; 01749 01750 case 40: 01751 #line 305 "yacc.yy" 01752 { 01753 yyval._str = yyvsp[0]._str; 01754 ;} 01755 break; 01756 01757 case 41: 01758 #line 308 "yacc.yy" 01759 { 01760 QString* tmp = new QString( "%1::%2" ); 01761 *tmp = tmp->arg(*(yyvsp[-2]._str)).arg(*(yyvsp[0]._str)); 01762 yyval._str = tmp; 01763 ;} 01764 break; 01765 01766 case 42: 01767 #line 317 "yacc.yy" 01768 { 01769 QString* tmp = new QString( " <SUPER>%1</SUPER>\n" ); 01770 *tmp = tmp->arg( *(yyvsp[0]._str) ); 01771 yyval._str = tmp; 01772 ;} 01773 break; 01774 01775 case 43: 01776 #line 323 "yacc.yy" 01777 { 01778 QString* tmp = new QString( " <SUPER>%1</SUPER>\n" ); 01779 *tmp = tmp->arg( *(yyvsp[-3]._str) + "<" + *(yyvsp[-1]._str) + ">" ); 01780 yyval._str = tmp; 01781 ;} 01782 break; 01783 01784 case 44: 01785 #line 332 "yacc.yy" 01786 { 01787 yyval._str = yyvsp[0]._str; 01788 ;} 01789 break; 01790 01791 case 45: 01792 #line 336 "yacc.yy" 01793 { 01794 yyval._str = yyvsp[0]._str; 01795 ;} 01796 break; 01797 01798 case 46: 01799 #line 343 "yacc.yy" 01800 { 01801 yyval._str = yyvsp[-1]._str; 01802 ;} 01803 break; 01804 01805 case 47: 01806 #line 347 "yacc.yy" 01807 { 01808 /* $$ = $1; */ 01809 yyval._str = new QString( *(yyvsp[-2]._str) + *(yyvsp[0]._str) ); 01810 ;} 01811 break; 01812 01813 case 48: 01814 #line 355 "yacc.yy" 01815 { 01816 yyval._str = yyvsp[0]._str; 01817 ;} 01818 break; 01819 01820 case 49: 01821 #line 359 "yacc.yy" 01822 { 01823 yyval._str = new QString( "" ); 01824 ;} 01825 break; 01826 01827 case 50: 01828 #line 366 "yacc.yy" 01829 { 01830 ;} 01831 break; 01832 01833 case 52: 01834 #line 373 "yacc.yy" 01835 { 01836 yyval._str = new QString( "" ); 01837 ;} 01838 break; 01839 01840 case 53: 01841 #line 377 "yacc.yy" 01842 { 01843 yyval._str = new QString( *(yyvsp[-1]._str) + *(yyvsp[0]._str) ); 01844 ;} 01845 break; 01846 01847 case 54: 01848 #line 381 "yacc.yy" 01849 { 01850 yyval._str = new QString( *(yyvsp[-1]._str) + *(yyvsp[0]._str) ); 01851 ;} 01852 break; 01853 01854 case 55: 01855 #line 385 "yacc.yy" 01856 { 01857 yyval._str = new QString( *(yyvsp[-1]._str) + *(yyvsp[0]._str) ); 01858 ;} 01859 break; 01860 01861 case 56: 01862 #line 389 "yacc.yy" 01863 { 01864 yyval._str = yyvsp[0]._str; 01865 ;} 01866 break; 01867 01868 case 57: 01869 #line 393 "yacc.yy" 01870 { 01871 yyval._str = yyvsp[0]._str; 01872 ;} 01873 break; 01874 01875 case 58: 01876 #line 397 "yacc.yy" 01877 { 01878 yyval._str = yyvsp[0]._str; 01879 ;} 01880 break; 01881 01882 case 59: 01883 #line 401 "yacc.yy" 01884 { 01885 yyval._str = yyvsp[0]._str; 01886 ;} 01887 break; 01888 01889 case 60: 01890 #line 405 "yacc.yy" 01891 { 01892 yyval._str = yyvsp[0]._str; 01893 ;} 01894 break; 01895 01896 case 61: 01897 #line 409 "yacc.yy" 01898 { 01899 yyval._str = yyvsp[0]._str; 01900 ;} 01901 break; 01902 01903 case 62: 01904 #line 413 "yacc.yy" 01905 { 01906 yyval._str = yyvsp[0]._str; 01907 ;} 01908 break; 01909 01910 case 63: 01911 #line 417 "yacc.yy" 01912 { 01913 yyval._str = yyvsp[0]._str; 01914 ;} 01915 break; 01916 01917 case 64: 01918 #line 421 "yacc.yy" 01919 { 01920 yyval._str = yyvsp[0]._str; 01921 ;} 01922 break; 01923 01924 case 65: 01925 #line 425 "yacc.yy" 01926 { 01927 yyval._str = yyvsp[0]._str; 01928 ;} 01929 break; 01930 01931 case 66: 01932 #line 429 "yacc.yy" 01933 { 01934 yyval._str = yyvsp[0]._str; 01935 ;} 01936 break; 01937 01938 case 67: 01939 #line 433 "yacc.yy" 01940 { 01941 yyval._str = yyvsp[0]._str; 01942 ;} 01943 break; 01944 01945 case 68: 01946 #line 437 "yacc.yy" 01947 { 01948 yyval._str = yyvsp[0]._str; 01949 ;} 01950 break; 01951 01952 case 75: 01953 #line 455 "yacc.yy" 01954 {;} 01955 break; 01956 01957 case 76: 01958 #line 456 "yacc.yy" 01959 {;} 01960 break; 01961 01962 case 77: 01963 #line 460 "yacc.yy" 01964 {;} 01965 break; 01966 01967 case 78: 01968 #line 461 "yacc.yy" 01969 {;} 01970 break; 01971 01972 case 79: 01973 #line 462 "yacc.yy" 01974 {;} 01975 break; 01976 01977 case 80: 01978 #line 463 "yacc.yy" 01979 {;} 01980 break; 01981 01982 case 81: 01983 #line 464 "yacc.yy" 01984 {;} 01985 break; 01986 01987 case 82: 01988 #line 468 "yacc.yy" 01989 {;} 01990 break; 01991 01992 case 83: 01993 #line 469 "yacc.yy" 01994 {;} 01995 break; 01996 01997 case 84: 01998 #line 470 "yacc.yy" 01999 {;} 02000 break; 02001 02002 case 85: 02003 #line 475 "yacc.yy" 02004 { 02005 if (dcop_area) { 02006 QString* tmp = new QString("<TYPEDEF name=\"%1\" template=\"%2\"><PARAM %3</TYPEDEF>\n"); 02007 *tmp = tmp->arg( *(yyvsp[-1]._str) ).arg( *(yyvsp[-5]._str) ).arg( *(yyvsp[-3]._str) ); 02008 yyval._str = tmp; 02009 } else { 02010 yyval._str = new QString(""); 02011 } 02012 ;} 02013 break; 02014 02015 case 86: 02016 #line 485 "yacc.yy" 02017 { 02018 if (dcop_area) 02019 yyerror("scoped template typedefs are not supported in dcop areas!"); 02020 ;} 02021 break; 02022 02023 case 87: 02024 #line 493 "yacc.yy" 02025 { 02026 yyval._int = 0; 02027 ;} 02028 break; 02029 02030 case 88: 02031 #line 497 "yacc.yy" 02032 { 02033 yyval._int = 1; 02034 ;} 02035 break; 02036 02037 case 89: 02038 #line 503 "yacc.yy" 02039 { yyval._str = new QString("signed int"); ;} 02040 break; 02041 02042 case 90: 02043 #line 504 "yacc.yy" 02044 { yyval._str = new QString("signed int"); ;} 02045 break; 02046 02047 case 91: 02048 #line 505 "yacc.yy" 02049 { yyval._str = new QString("unsigned int"); ;} 02050 break; 02051 02052 case 92: 02053 #line 506 "yacc.yy" 02054 { yyval._str = new QString("unsigned int"); ;} 02055 break; 02056 02057 case 93: 02058 #line 507 "yacc.yy" 02059 { yyval._str = new QString("signed short int"); ;} 02060 break; 02061 02062 case 94: 02063 #line 508 "yacc.yy" 02064 { yyval._str = new QString("signed short int"); ;} 02065 break; 02066 02067 case 95: 02068 #line 509 "yacc.yy" 02069 { yyval._str = new QString("signed long int"); ;} 02070 break; 02071 02072 case 96: 02073 #line 510 "yacc.yy" 02074 { yyval._str = new QString("signed long int"); ;} 02075 break; 02076 02077 case 97: 02078 #line 511 "yacc.yy" 02079 { yyval._str = new QString("unsigned short int"); ;} 02080 break; 02081 02082 case 98: 02083 #line 512 "yacc.yy" 02084 { yyval._str = new QString("unsigned short int"); ;} 02085 break; 02086 02087 case 99: 02088 #line 513 "yacc.yy" 02089 { yyval._str = new QString("unsigned long int"); ;} 02090 break; 02091 02092 case 100: 02093 #line 514 "yacc.yy" 02094 { yyval._str = new QString("unsigned long int"); ;} 02095 break; 02096 02097 case 101: 02098 #line 515 "yacc.yy" 02099 { yyval._str = new QString("int"); ;} 02100 break; 02101 02102 case 102: 02103 #line 516 "yacc.yy" 02104 { yyval._str = new QString("long int"); ;} 02105 break; 02106 02107 case 103: 02108 #line 517 "yacc.yy" 02109 { yyval._str = new QString("long int"); ;} 02110 break; 02111 02112 case 104: 02113 #line 518 "yacc.yy" 02114 { yyval._str = new QString("short int"); ;} 02115 break; 02116 02117 case 105: 02118 #line 519 "yacc.yy" 02119 { yyval._str = new QString("short int"); ;} 02120 break; 02121 02122 case 106: 02123 #line 520 "yacc.yy" 02124 { yyval._str = new QString("char"); ;} 02125 break; 02126 02127 case 107: 02128 #line 521 "yacc.yy" 02129 { yyval._str = new QString("signed char"); ;} 02130 break; 02131 02132 case 108: 02133 #line 522 "yacc.yy" 02134 { yyval._str = new QString("unsigned char"); ;} 02135 break; 02136 02137 case 111: 02138 #line 532 "yacc.yy" 02139 { 02140 yyval._str = new QString( "" ); 02141 ;} 02142 break; 02143 02144 case 113: 02145 #line 537 "yacc.yy" 02146 { 02147 yyval._str = new QString( *(yyvsp[-2]._str) + *(yyvsp[0]._str) ); 02148 ;} 02149 break; 02150 02151 case 115: 02152 #line 545 "yacc.yy" 02153 { yyval._str = yyvsp[0]._str; ;} 02154 break; 02155 02156 case 116: 02157 #line 546 "yacc.yy" 02158 { yyval._str = yyvsp[0]._str; ;} 02159 break; 02160 02161 case 117: 02162 #line 547 "yacc.yy" 02163 { yyval._str = yyvsp[0]._str; ;} 02164 break; 02165 02166 case 118: 02167 #line 548 "yacc.yy" 02168 { 02169 QString *tmp = new QString("%1<%2>"); 02170 *tmp = tmp->arg(*(yyvsp[-3]._str)); 02171 *tmp = tmp->arg(*(yyvsp[-1]._str)); 02172 yyval._str = tmp; 02173 ;} 02174 break; 02175 02176 case 119: 02177 #line 554 "yacc.yy" 02178 { 02179 QString *tmp = new QString("%1<%2>::%3"); 02180 *tmp = tmp->arg(*(yyvsp[-5]._str)); 02181 *tmp = tmp->arg(*(yyvsp[-3]._str)); 02182 *tmp = tmp->arg(*(yyvsp[0]._str)); 02183 yyval._str = tmp; 02184 ;} 02185 break; 02186 02187 case 120: 02188 #line 566 "yacc.yy" 02189 { 02190 yyval._str = new QString(*(yyvsp[-2]._str) + "," + *(yyvsp[0]._str)); 02191 ;} 02192 break; 02193 02194 case 121: 02195 #line 570 "yacc.yy" 02196 { 02197 yyval._str = yyvsp[0]._str; 02198 ;} 02199 break; 02200 02201 case 122: 02202 #line 578 "yacc.yy" 02203 { 02204 if (dcop_area) 02205 yyerror("in dcop areas are no pointers allowed"); 02206 ;} 02207 break; 02208 02209 case 123: 02210 #line 583 "yacc.yy" 02211 { 02212 yyval._str = yyvsp[0]._str; 02213 ;} 02214 break; 02215 02216 case 124: 02217 #line 592 "yacc.yy" 02218 { 02219 if (dcop_area) 02220 yyerror("in dcop areas are no pointers allowed"); 02221 ;} 02222 break; 02223 02224 case 125: 02225 #line 596 "yacc.yy" 02226 { 02227 if (dcop_area) { 02228 QString* tmp = new QString("<TYPE qleft=\"const\" qright=\"" AMP_ENTITY "\">%1</TYPE>"); 02229 *tmp = tmp->arg( *(yyvsp[-1]._str) ); 02230 yyval._str = tmp; 02231 } 02232 ;} 02233 break; 02234 02235 case 126: 02236 #line 603 "yacc.yy" 02237 { 02238 QString* tmp = new QString("<TYPE>%1</TYPE>"); 02239 *tmp = tmp->arg( *(yyvsp[0]._str) ); 02240 yyval._str = tmp; 02241 ;} 02242 break; 02243 02244 case 127: 02245 #line 608 "yacc.yy" 02246 { 02247 QString* tmp = new QString("<TYPE>%1</TYPE>"); 02248 *tmp = tmp->arg( *(yyvsp[-1]._str) ); 02249 yyval._str = tmp; 02250 ;} 02251 break; 02252 02253 case 128: 02254 #line 613 "yacc.yy" 02255 { 02256 if (dcop_area) { 02257 QString* tmp = new QString("<TYPE qleft=\"const\" qright=\"" AMP_ENTITY "\">%1</TYPE>"); 02258 *tmp = tmp->arg( *(yyvsp[-2]._str) ); 02259 yyval._str = tmp; 02260 } 02261 ;} 02262 break; 02263 02264 case 129: 02265 #line 620 "yacc.yy" 02266 { 02267 if (dcop_area) 02268 yyerror("in dcop areas are only const references allowed!"); 02269 ;} 02270 break; 02271 02272 case 130: 02273 #line 625 "yacc.yy" 02274 { 02275 QString* tmp = new QString("<TYPE>%1</TYPE>"); 02276 *tmp = tmp->arg( *(yyvsp[0]._str) ); 02277 yyval._str = tmp; 02278 ;} 02279 break; 02280 02281 case 131: 02282 #line 631 "yacc.yy" 02283 { 02284 if (dcop_area) 02285 yyerror("in dcop areas are no pointers allowed"); 02286 ;} 02287 break; 02288 02289 case 132: 02290 #line 639 "yacc.yy" 02291 { 02292 yyval._str = new QString(*(yyvsp[-2]._str) + "," + *(yyvsp[0]._str)); 02293 ;} 02294 break; 02295 02296 case 133: 02297 #line 643 "yacc.yy" 02298 { 02299 yyval._str = yyvsp[0]._str; 02300 ;} 02301 break; 02302 02303 case 134: 02304 #line 650 "yacc.yy" 02305 { 02306 if (dcop_area) { 02307 QString* tmp = new QString("\n <ARG>%1<NAME>%2</NAME></ARG>"); 02308 *tmp = tmp->arg( *(yyvsp[-2]._str) ); 02309 *tmp = tmp->arg( *(yyvsp[-1]._str) ); 02310 yyval._str = tmp; 02311 } else yyval._str = new QString(); 02312 ;} 02313 break; 02314 02315 case 135: 02316 #line 659 "yacc.yy" 02317 { 02318 if (dcop_area) { 02319 QString* tmp = new QString("\n <ARG>%1</ARG>"); 02320 *tmp = tmp->arg( *(yyvsp[-1]._str) ); 02321 yyval._str = tmp; 02322 } else yyval._str = new QString(); 02323 ;} 02324 break; 02325 02326 case 136: 02327 #line 667 "yacc.yy" 02328 { 02329 if (dcop_area) 02330 yyerror("variable arguments not supported in dcop area."); 02331 yyval._str = new QString(""); 02332 ;} 02333 break; 02334 02335 case 137: 02336 #line 676 "yacc.yy" 02337 { 02338 ;} 02339 break; 02340 02341 case 138: 02342 #line 679 "yacc.yy" 02343 { 02344 ;} 02345 break; 02346 02347 case 139: 02348 #line 682 "yacc.yy" 02349 { 02350 ;} 02351 break; 02352 02353 case 140: 02354 #line 689 "yacc.yy" 02355 { 02356 ;} 02357 break; 02358 02359 case 141: 02360 #line 692 "yacc.yy" 02361 { 02362 ;} 02363 break; 02364 02365 case 142: 02366 #line 695 "yacc.yy" 02367 { 02368 ;} 02369 break; 02370 02371 case 143: 02372 #line 698 "yacc.yy" 02373 { 02374 ;} 02375 break; 02376 02377 case 144: 02378 #line 701 "yacc.yy" 02379 { 02380 ;} 02381 break; 02382 02383 case 145: 02384 #line 706 "yacc.yy" 02385 { yyval._int = 0; ;} 02386 break; 02387 02388 case 146: 02389 #line 707 "yacc.yy" 02390 { yyval._int = 1; ;} 02391 break; 02392 02393 case 152: 02394 #line 716 "yacc.yy" 02395 { 02396 if (dcop_area || dcop_signal_area) { 02397 QString* tmp = 0; 02398 tmp = new QString( 02399 " <%4>\n" 02400 " %2\n" 02401 " <NAME>%1</NAME>" 02402 "%3\n" 02403 " </%5>\n"); 02404 *tmp = tmp->arg( *(yyvsp[-4]._str) ); 02405 *tmp = tmp->arg( *(yyvsp[-5]._str) ); 02406 *tmp = tmp->arg( *(yyvsp[-2]._str) ); 02407 02408 QString tagname = (dcop_signal_area) ? "SIGNAL" : "FUNC"; 02409 QString attr = (yyvsp[0]._int) ? " qual=\"const\"" : ""; 02410 *tmp = tmp->arg( QString("%1%2").arg(tagname).arg(attr) ); 02411 *tmp = tmp->arg( QString("%1").arg(tagname) ); 02412 yyval._str = tmp; 02413 } else 02414 yyval._str = new QString(""); 02415 ;} 02416 break; 02417 02418 case 153: 02419 #line 738 "yacc.yy" 02420 { 02421 if (dcop_area) 02422 yyerror("operators aren't allowed in dcop areas!"); 02423 yyval._str = new QString(""); 02424 ;} 02425 break; 02426 02427 case 154: 02428 #line 748 "yacc.yy" 02429 {;} 02430 break; 02431 02432 case 155: 02433 #line 749 "yacc.yy" 02434 {;} 02435 break; 02436 02437 case 156: 02438 #line 750 "yacc.yy" 02439 {;} 02440 break; 02441 02442 case 157: 02443 #line 755 "yacc.yy" 02444 {;} 02445 break; 02446 02447 case 158: 02448 #line 760 "yacc.yy" 02449 {;} 02450 break; 02451 02452 case 159: 02453 #line 761 "yacc.yy" 02454 {;} 02455 break; 02456 02457 case 160: 02458 #line 766 "yacc.yy" 02459 { 02460 yyval._str = yyvsp[-1]._str; 02461 ;} 02462 break; 02463 02464 case 161: 02465 #line 770 "yacc.yy" 02466 { 02467 yyval._str = yyvsp[-3]._str; 02468 ;} 02469 break; 02470 02471 case 162: 02472 #line 774 "yacc.yy" 02473 { 02474 yyval._str = yyvsp[-1]._str; 02475 ;} 02476 break; 02477 02478 case 163: 02479 #line 778 "yacc.yy" 02480 { 02481 /* The constructor */ 02482 assert(!dcop_area); 02483 yyval._str = new QString(""); 02484 ;} 02485 break; 02486 02487 case 164: 02488 #line 784 "yacc.yy" 02489 { 02490 /* The constructor */ 02491 assert(!dcop_area); 02492 yyval._str = new QString(""); 02493 ;} 02494 break; 02495 02496 case 165: 02497 #line 790 "yacc.yy" 02498 { 02499 /* The destructor */ 02500 assert(!dcop_area); 02501 yyval._str = new QString(""); 02502 ;} 02503 break; 02504 02505 case 166: 02506 #line 796 "yacc.yy" 02507 { 02508 if (dcop_area) { 02509 if (dcop_signal_area) 02510 yyerror("DCOP signals cannot be static"); 02511 else 02512 yyerror("DCOP functions cannot be static"); 02513 } else { 02514 yyval._str = new QString(); 02515 } 02516 ;} 02517 break; 02518 02519 case 167: 02520 #line 809 "yacc.yy" 02521 { 02522 function_mode = 1; 02523 ;} 02524 break; 02525 02526 case 171: 02527 #line 821 "yacc.yy" 02528 {;} 02529 break; 02530 02531 case 172: 02532 #line 822 "yacc.yy" 02533 {;} 02534 break; 02535 02536 case 176: 02537 #line 834 "yacc.yy" 02538 {;} 02539 break; 02540 02541 case 177: 02542 #line 835 "yacc.yy" 02543 {;} 02544 break; 02545 02546 case 178: 02547 #line 836 "yacc.yy" 02548 {;} 02549 break; 02550 02551 case 179: 02552 #line 839 "yacc.yy" 02553 {;} 02554 break; 02555 02556 case 180: 02557 #line 843 "yacc.yy" 02558 {;} 02559 break; 02560 02561 case 181: 02562 #line 844 "yacc.yy" 02563 {;} 02564 break; 02565 02566 case 182: 02567 #line 845 "yacc.yy" 02568 {;} 02569 break; 02570 02571 case 183: 02572 #line 846 "yacc.yy" 02573 {;} 02574 break; 02575 02576 case 184: 02577 #line 847 "yacc.yy" 02578 {;} 02579 break; 02580 02581 case 185: 02582 #line 848 "yacc.yy" 02583 {;} 02584 break; 02585 02586 02587 } 02588 02589 /* Line 1010 of yacc.c. */ 02590 #line 2591 "yacc.cc" 02591 02592 yyvsp -= yylen; 02593 yyssp -= yylen; 02594 02595 02596 YY_STACK_PRINT (yyss, yyssp); 02597 02598 *++yyvsp = yyval; 02599 02600 02601 /* Now `shift' the result of the reduction. Determine what state 02602 that goes to, based on the state we popped back to and the rule 02603 number reduced by. */ 02604 02605 yyn = yyr1[yyn]; 02606 02607 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 02608 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 02609 yystate = yytable[yystate]; 02610 else 02611 yystate = yydefgoto[yyn - YYNTOKENS]; 02612 02613 goto yynewstate; 02614 02615 02616 /*------------------------------------. 02617 | yyerrlab -- here on detecting error | 02618 `------------------------------------*/ 02619 yyerrlab: 02620 /* If not already recovering from an error, report this error. */ 02621 if (!yyerrstatus) 02622 { 02623 ++yynerrs; 02624 #if YYERROR_VERBOSE 02625 yyn = yypact[yystate]; 02626 02627 if (YYPACT_NINF < yyn && yyn < YYLAST) 02628 { 02629 YYSIZE_T yysize = 0; 02630 int yytype = YYTRANSLATE (yychar); 02631 const char* yyprefix; 02632 char *yymsg; 02633 int yyx; 02634 02635 /* Start YYX at -YYN if negative to avoid negative indexes in 02636 YYCHECK. */ 02637 int yyxbegin = yyn < 0 ? -yyn : 0; 02638 02639 /* Stay within bounds of both yycheck and yytname. */ 02640 int yychecklim = YYLAST - yyn; 02641 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 02642 int yycount = 0; 02643 02644 yyprefix = ", expecting "; 02645 for (yyx = yyxbegin; yyx < yyxend; ++yyx) 02646 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) 02647 { 02648 yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]); 02649 yycount += 1; 02650 if (yycount == 5) 02651 { 02652 yysize = 0; 02653 break; 02654 } 02655 } 02656 yysize += (sizeof ("syntax error, unexpected ") 02657 + yystrlen (yytname[yytype])); 02658 yymsg = (char *) YYSTACK_ALLOC (yysize); 02659 if (yymsg != 0) 02660 { 02661 char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); 02662 yyp = yystpcpy (yyp, yytname[yytype]); 02663 02664 if (yycount < 5) 02665 { 02666 yyprefix = ", expecting "; 02667 for (yyx = yyxbegin; yyx < yyxend; ++yyx) 02668 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) 02669 { 02670 yyp = yystpcpy (yyp, yyprefix); 02671 yyp = yystpcpy (yyp, yytname[yyx]); 02672 yyprefix = " or "; 02673 } 02674 } 02675 yyerror (yymsg); 02676 YYSTACK_FREE (yymsg); 02677 } 02678 else 02679 yyerror ("syntax error; also virtual memory exhausted"); 02680 } 02681 else 02682 #endif /* YYERROR_VERBOSE */ 02683 yyerror ("syntax error"); 02684 } 02685 02686 02687 02688 if (yyerrstatus == 3) 02689 { 02690 /* If just tried and failed to reuse lookahead token after an 02691 error, discard it. */ 02692 02693 if (yychar <= YYEOF) 02694 { 02695 /* If at end of input, pop the error token, 02696 then the rest of the stack, then return failure. */ 02697 if (yychar == YYEOF) 02698 for (;;) 02699 { 02700 YYPOPSTACK; 02701 if (yyssp == yyss) 02702 YYABORT; 02703 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); 02704 yydestruct (yystos[*yyssp], yyvsp); 02705 } 02706 } 02707 else 02708 { 02709 YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); 02710 yydestruct (yytoken, &yylval); 02711 yychar = YYEMPTY; 02712 02713 } 02714 } 02715 02716 /* Else will try to reuse lookahead token after shifting the error 02717 token. */ 02718 goto yyerrlab1; 02719 02720 02721 /*---------------------------------------------------. 02722 | yyerrorlab -- error raised explicitly by YYERROR. | 02723 `---------------------------------------------------*/ 02724 yyerrorlab: 02725 02726 #ifdef __GNUC__ 02727 /* Pacify GCC when the user code never invokes YYERROR and the label 02728 yyerrorlab therefore never appears in user code. */ 02729 if (0) 02730 goto yyerrorlab; 02731 #endif 02732 02733 yyvsp -= yylen; 02734 yyssp -= yylen; 02735 yystate = *yyssp; 02736 goto yyerrlab1; 02737 02738 02739 /*-------------------------------------------------------------. 02740 | yyerrlab1 -- common code for both syntax error and YYERROR. | 02741 `-------------------------------------------------------------*/ 02742 yyerrlab1: 02743 yyerrstatus = 3; /* Each real token shifted decrements this. */ 02744 02745 for (;;) 02746 { 02747 yyn = yypact[yystate]; 02748 if (yyn != YYPACT_NINF) 02749 { 02750 yyn += YYTERROR; 02751 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 02752 { 02753 yyn = yytable[yyn]; 02754 if (0 < yyn) 02755 break; 02756 } 02757 } 02758 02759 /* Pop the current state because it cannot handle the error token. */ 02760 if (yyssp == yyss) 02761 YYABORT; 02762 02763 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); 02764 yydestruct (yystos[yystate], yyvsp); 02765 YYPOPSTACK; 02766 yystate = *yyssp; 02767 YY_STACK_PRINT (yyss, yyssp); 02768 } 02769 02770 if (yyn == YYFINAL) 02771 YYACCEPT; 02772 02773 YYDPRINTF ((stderr, "Shifting error token, ")); 02774 02775 *++yyvsp = yylval; 02776 02777 02778 yystate = yyn; 02779 goto yynewstate; 02780 02781 02782 /*-------------------------------------. 02783 | yyacceptlab -- YYACCEPT comes here. | 02784 `-------------------------------------*/ 02785 yyacceptlab: 02786 yyresult = 0; 02787 goto yyreturn; 02788 02789 /*-----------------------------------. 02790 | yyabortlab -- YYABORT comes here. | 02791 `-----------------------------------*/ 02792 yyabortlab: 02793 yyresult = 1; 02794 goto yyreturn; 02795 02796 #ifndef yyoverflow 02797 /*----------------------------------------------. 02798 | yyoverflowlab -- parser overflow comes here. | 02799 `----------------------------------------------*/ 02800 yyoverflowlab: 02801 yyerror ("parser stack overflow"); 02802 yyresult = 2; 02803 /* Fall through. */ 02804 #endif 02805 02806 yyreturn: 02807 #ifndef yyoverflow 02808 if (yyss != yyssa) 02809 YYSTACK_FREE (yyss); 02810 #endif 02811 return yyresult; 02812 } 02813 02814 02815 #line 851 "yacc.yy" 02816 02817 02818 void dcopidlParse( const char *_code ) 02819 { 02820 dcopidlInitFlex( _code ); 02821 yyparse(); 02822 } 02823 02824