dcop Library API Documentation

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., 59 Temple Place - Suite 330, 00019 Boston, MA 02111-1307, 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 "&amp;" 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 528 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 184 00404 /* YYNRULES -- Number of states. */ 00405 #define YYNSTATES 370 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 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 }; 00546 00547 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 00548 static const unsigned short int yyrline[] = 00549 { 00550 0, 164, 164, 167, 171, 175, 179, 184, 185, 189, 00551 198, 207, 210, 213, 217, 216, 228, 231, 234, 237, 00552 240, 243, 246, 249, 252, 255, 261, 262, 265, 265, 00553 267, 267, 267, 269, 269, 269, 272, 277, 285, 293, 00554 305, 308, 316, 322, 331, 335, 342, 346, 354, 358, 00555 366, 368, 372, 376, 380, 384, 388, 392, 396, 400, 00556 404, 408, 412, 416, 420, 424, 428, 432, 436, 443, 00557 444, 445, 446, 450, 451, 455, 456, 460, 461, 462, 00558 463, 464, 468, 469, 470, 474, 484, 493, 496, 503, 00559 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 00560 514, 515, 516, 517, 518, 519, 520, 521, 522, 526, 00561 527, 532, 535, 536, 544, 545, 546, 547, 548, 554, 00562 565, 569, 577, 582, 591, 596, 603, 608, 613, 620, 00563 625, 630, 638, 642, 649, 658, 666, 676, 678, 681, 00564 688, 691, 694, 697, 700, 706, 707, 711, 711, 711, 00565 711, 711, 715, 737, 748, 749, 750, 755, 760, 761, 00566 765, 769, 773, 777, 783, 789, 795, 808, 815, 816, 00567 817, 821, 822, 826, 830, 831, 834, 835, 836, 839, 00568 843, 844, 845, 846, 847 00569 }; 00570 #endif 00571 00572 #if YYDEBUG || YYERROR_VERBOSE 00573 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 00574 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 00575 static const char *const yytname[] = 00576 { 00577 "$end", "error", "$undefined", "T_UNIMPORTANT", "T_CHARACTER_LITERAL", 00578 "T_DOUBLE_LITERAL", "T_IDENTIFIER", "T_INTEGER_LITERAL", 00579 "T_STRING_LITERAL", "T_INCLUDE", "T_CLASS", "T_STRUCT", 00580 "T_LEFT_CURLY_BRACKET", "T_LEFT_PARANTHESIS", "T_RIGHT_CURLY_BRACKET", 00581 "T_RIGHT_PARANTHESIS", "T_COLON", "T_SEMICOLON", "T_PUBLIC", 00582 "T_PROTECTED", "T_TRIPE_DOT", "T_PRIVATE", "T_VIRTUAL", "T_CONST", 00583 "T_INLINE", "T_FRIEND", "T_RETURN", "T_SIGNAL", "T_SLOT", "T_TYPEDEF", 00584 "T_PLUS", "T_MINUS", "T_COMMA", "T_ASTERISK", "T_TILDE", "T_LESS", 00585 "T_GREATER", "T_AMPERSAND", "T_EXTERN", "T_EXTERN_C", "T_ACCESS", 00586 "T_ENUM", "T_NAMESPACE", "T_USING", "T_UNKNOWN", "T_TRIPLE_DOT", 00587 "T_TRUE", "T_FALSE", "T_STATIC", "T_MUTABLE", "T_EQUAL", "T_SCOPE", 00588 "T_NULL", "T_INT", "T_ARRAY_OPEN", "T_ARRAY_CLOSE", "T_CHAR", "T_DCOP", 00589 "T_DCOP_AREA", "T_DCOP_SIGNAL_AREA", "T_SIGNED", "T_UNSIGNED", "T_LONG", 00590 "T_SHORT", "T_FUNOPERATOR", "T_MISCOPERATOR", "T_SHIFT", "$accept", 00591 "main", "includes", "dcoptag", "declaration", "@1", "member_list", 00592 "bool_value", "nodcop_area", "sigslot", "nodcop_area_begin", 00593 "dcop_area_begin", "dcop_signal_area_begin", "Identifier", 00594 "super_class_name", "super_class", "super_classes", "class_header", 00595 "opt_semicolon", "body", "enum", "enum_list", "enum_item", "number", 00596 "int_expression", "typedef", "const_qualifier", "int_type", "asterisks", 00597 "params", "type_name", "templ_type_list", "templ_type", "type", 00598 "type_list", "param", "default", "value", "virtual_qualifier", 00599 "operator", "function_header", "values", "init_item", "init_list", 00600 "function", "function_begin", "function_body", "function_lines", 00601 "function_line", "Identifier_list_rest", "Identifier_list_entry", 00602 "Identifier_list", "member", 0 00603 }; 00604 #endif 00605 00606 # ifdef YYPRINT 00607 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 00608 token YYLEX-NUM. */ 00609 static const unsigned short int yytoknum[] = 00610 { 00611 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 00612 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 00613 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 00614 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 00615 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 00616 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 00617 315, 316, 317, 318, 319, 320, 321 00618 }; 00619 # endif 00620 00621 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 00622 static const unsigned char yyr1[] = 00623 { 00624 0, 67, 68, 68, 69, 69, 69, 70, 70, 71, 00625 71, 71, 71, 71, 72, 71, 71, 71, 71, 71, 00626 71, 71, 71, 71, 71, 71, 73, 73, 74, 74, 00627 75, 75, 75, 76, 76, 76, 77, 77, 78, 79, 00628 80, 80, 81, 81, 82, 82, 83, 83, 84, 84, 00629 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 00630 86, 86, 86, 86, 86, 86, 86, 86, 86, 87, 00631 87, 87, 87, 88, 88, 89, 89, 90, 90, 90, 00632 90, 90, 91, 91, 91, 92, 92, 93, 93, 94, 00633 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 00634 94, 94, 94, 94, 94, 94, 94, 94, 94, 95, 00635 95, 96, 96, 96, 97, 97, 97, 97, 97, 97, 00636 98, 98, 99, 99, 100, 100, 100, 100, 100, 100, 00637 100, 100, 101, 101, 102, 102, 102, 103, 103, 103, 00638 104, 104, 104, 104, 104, 105, 105, 106, 106, 106, 00639 106, 106, 107, 107, 108, 108, 108, 109, 110, 110, 00640 111, 111, 111, 111, 111, 111, 111, 112, 113, 113, 00641 113, 114, 114, 115, 116, 116, 117, 117, 117, 118, 00642 119, 119, 119, 119, 119 00643 }; 00644 00645 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 00646 static const unsigned char yyr2[] = 00647 { 00648 0, 2, 3, 0, 2, 4, 0, 1, 0, 6, 00649 7, 3, 3, 5, 0, 7, 4, 5, 2, 4, 00650 7, 8, 2, 1, 1, 1, 2, 0, 1, 1, 00651 1, 1, 1, 1, 1, 0, 3, 2, 2, 2, 00652 1, 3, 1, 4, 3, 1, 2, 3, 2, 1, 00653 0, 1, 1, 2, 3, 2, 2, 2, 2, 2, 00654 2, 5, 4, 4, 4, 6, 4, 6, 6, 7, 00655 6, 6, 5, 3, 1, 3, 1, 1, 1, 2, 00656 1, 1, 1, 3, 3, 7, 9, 0, 1, 1, 00657 2, 1, 2, 2, 3, 2, 3, 2, 3, 2, 00658 3, 1, 1, 2, 1, 2, 1, 2, 2, 2, 00659 1, 0, 1, 3, 1, 1, 2, 2, 4, 6, 00660 3, 1, 2, 1, 3, 3, 2, 2, 3, 2, 00661 1, 2, 3, 1, 3, 2, 1, 0, 2, 5, 00662 1, 1, 1, 1, 4, 0, 1, 1, 1, 1, 00663 1, 1, 6, 7, 1, 3, 0, 4, 1, 3, 00664 2, 5, 3, 5, 7, 6, 3, 1, 1, 3, 00665 4, 2, 0, 1, 2, 0, 1, 3, 2, 2, 00666 3, 5, 5, 5, 6 00667 }; 00668 00669 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state 00670 STATE-NUM when YYTABLE doesn't specify something else to do. Zero 00671 means the default is an error. */ 00672 static const unsigned char yydefact[] = 00673 { 00674 6, 0, 0, 145, 6, 1, 40, 4, 0, 0, 00675 146, 0, 145, 0, 0, 0, 0, 0, 0, 0, 00676 101, 106, 89, 91, 102, 104, 6, 115, 25, 114, 00677 130, 0, 0, 0, 23, 24, 0, 0, 40, 117, 00678 116, 0, 0, 115, 0, 0, 126, 0, 22, 0, 00679 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 00680 90, 107, 95, 93, 92, 108, 99, 97, 103, 105, 00681 2, 111, 0, 127, 110, 129, 131, 40, 0, 0, 00682 0, 175, 0, 0, 167, 168, 172, 160, 5, 41, 00683 0, 49, 145, 11, 8, 12, 35, 117, 116, 0, 00684 0, 162, 125, 124, 27, 116, 0, 0, 76, 0, 00685 74, 14, 0, 0, 40, 166, 137, 96, 94, 100, 00686 98, 136, 0, 137, 112, 123, 0, 121, 128, 109, 00687 0, 0, 150, 149, 151, 147, 148, 0, 111, 0, 00688 178, 0, 179, 180, 0, 173, 0, 172, 8, 146, 00689 42, 45, 0, 48, 0, 7, 35, 0, 0, 52, 00690 32, 31, 30, 145, 0, 33, 34, 0, 0, 0, 00691 0, 35, 0, 35, 35, 35, 0, 35, 35, 35, 00692 35, 0, 0, 0, 0, 27, 27, 19, 0, 0, 00693 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, 00694 137, 135, 122, 118, 0, 77, 142, 78, 140, 0, 00695 28, 29, 80, 143, 81, 82, 141, 177, 81, 0, 00696 111, 0, 0, 176, 174, 0, 169, 171, 35, 0, 00697 46, 145, 0, 0, 117, 116, 35, 0, 115, 0, 00698 0, 0, 38, 39, 0, 37, 59, 58, 56, 13, 00699 57, 53, 55, 60, 161, 0, 0, 0, 26, 0, 00700 0, 75, 0, 72, 73, 0, 17, 0, 138, 182, 00701 183, 0, 163, 113, 134, 0, 120, 79, 111, 0, 00702 0, 0, 0, 87, 181, 0, 170, 0, 133, 0, 00703 47, 44, 9, 35, 35, 35, 35, 54, 117, 35, 00704 35, 0, 0, 36, 137, 0, 0, 0, 70, 71, 00705 50, 0, 0, 158, 0, 119, 0, 83, 84, 184, 00706 87, 88, 152, 165, 10, 0, 43, 64, 0, 66, 00707 0, 35, 62, 63, 0, 0, 20, 0, 69, 51, 00708 15, 0, 156, 0, 164, 144, 153, 132, 35, 35, 00709 61, 0, 35, 21, 139, 154, 0, 159, 65, 67, 00710 0, 0, 68, 156, 157, 0, 85, 155, 0, 86 00711 }; 00712 00713 /* YYDEFGOTO[NTERM-NUM]. */ 00714 static const short int yydefgoto[] = 00715 { 00716 -1, 2, 3, 156, 26, 192, 183, 213, 171, 172, 00717 173, 174, 175, 27, 151, 152, 153, 94, 340, 176, 00718 177, 109, 110, 215, 216, 178, 322, 29, 80, 122, 00719 30, 126, 127, 31, 289, 124, 196, 355, 32, 137, 00720 33, 356, 313, 314, 179, 86, 87, 146, 147, 142, 00721 81, 82, 180 00722 }; 00723 00724 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 00725 STATE-NUM. */ 00726 #define YYPACT_NINF -229 00727 static const short int yypact[] = 00728 { 00729 48, 10, 99, 375, 69, -229, 50, -229, 107, 114, 00730 239, 455, 220, 416, 110, 59, 128, 39, 239, 239, 00731 -229, -229, 184, 234, 100, 108, 68, 18, -229, -229, 00732 185, 26, 129, 208, -229, -229, 159, 114, 40, 244, 00733 297, 114, 114, 155, 29, 60, 127, 239, -229, 226, 00734 114, -229, 223, 259, 254, 218, 269, 31, 208, 271, 00735 -229, -229, 225, 233, -229, -229, 235, 238, -229, -229, 00736 -229, 396, 455, 242, 261, -229, -229, 163, 119, 228, 00737 298, 273, 286, 114, -229, -229, 295, -229, -229, -229, 00738 195, -229, 197, -229, 262, -229, 317, -229, -229, 305, 00739 270, -229, -229, -229, 56, 309, 312, 259, 276, 316, 00740 315, -229, 331, 332, 75, -229, 300, -229, -229, -229, 00741 -229, -229, 42, 38, -229, 261, 318, 324, -229, -229, 00742 136, 54, -229, -229, -229, -229, -229, 346, 396, 354, 00743 -229, 88, -229, -229, 349, -229, 350, 295, 262, -229, 00744 328, -229, 134, -229, 351, -229, 317, 114, 114, -229, 00745 -229, -229, -229, 220, 437, -229, -229, 114, 361, 352, 00746 355, 171, 356, 317, 317, 317, 357, 317, 317, 317, 00747 317, 208, 239, 368, 96, 56, 56, -229, 369, 54, 00748 199, 259, 69, 370, -229, 476, 371, 372, 299, 396, 00749 300, -229, -229, 339, 455, -229, -229, -229, -229, 384, 00750 -229, -229, -229, -229, 379, 20, -229, -229, -229, 338, 00751 396, 133, 377, 345, -229, 381, 383, -229, 317, 239, 00752 -229, 197, 114, 386, 308, 336, 317, 114, 122, 388, 00753 366, 358, -229, -229, 392, -229, -229, -229, -229, -229, 00754 -229, -229, -229, -229, -229, 404, 114, 395, -229, 398, 00755 222, -229, 397, -229, -229, 401, -229, 239, -229, -229, 00756 -229, 414, -229, -229, -229, 114, -229, -229, 396, 54, 00757 54, 408, 143, 406, -229, 208, -229, 413, 389, 409, 00758 -229, -229, -229, 317, 317, 317, 317, -229, 415, 317, 00759 317, 239, 427, -229, 300, 417, 114, 423, -229, -229, 00760 425, 429, 433, 418, 208, -229, 147, -229, -229, -229, 00761 406, -229, -229, -229, -229, 239, -229, -229, 434, -229, 00762 436, 317, -229, -229, 419, 445, -229, 446, -229, -229, 00763 -229, 136, 136, 414, -229, -229, -229, -229, 317, 317, 00764 -229, 49, 317, -229, -229, 422, 449, -229, -229, -229, 00765 461, 451, -229, 136, -229, 114, -229, -229, 453, -229 00766 }; 00767 00768 /* YYPGOTO[NTERM-NUM]. */ 00769 static const short int yypgoto[] = 00770 { 00771 -229, 12, -229, 323, -229, -229, 78, -229, -229, 302, 00772 -229, -229, -229, -8, 243, -229, 255, -34, -229, -42, 00773 471, -93, -229, -46, -113, -229, 165, -229, -22, -131, 00774 -2, 283, -229, 7, -228, 289, -76, -126, -79, -229, 00775 33, 131, -229, 148, 9, -229, -30, 348, -229, -229, 00776 -229, 360, 24 00777 }; 00778 00779 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 00780 positive, shift that token. If negative, reduce the rule which 00781 number is the opposite. If zero, do what YYDEFACT says. 00782 If YYTABLE_NINF, syntax error. */ 00783 #define YYTABLE_NINF -177 00784 static const short int yytable[] = 00785 { 00786 39, 40, 43, 43, 217, 43, 96, 221, 76, 46, 00787 43, 43, 34, 154, 188, 101, 36, 44, 219, 44, 00788 50, 48, 4, 79, 103, 57, 59, 35, 115, 89, 00789 90, 71, 77, 97, 98, 6, 99, 114, 70, 43, 00790 197, 105, 106, 45, 6, 55, 6, 201, -3, 99, 00791 279, 58, 129, 72, 44, 6, 148, 198, 205, 74, 00792 6, 207, 6, 43, 43, 52, 41, 42, -3, 268, 00793 125, 53, 84, 334, 199, 144, 261, 85, 123, 11, 00794 58, 56, -3, -3, 150, 209, 280, 1, 195, 282, 00795 78, 37, -137, 78, 223, 78, 43, 347, 264, 5, 00796 360, 37, 77, 202, 182, 19, 212, 1, 1, 20, 00797 100, 184, 21, 38, 233, 200, 22, 23, 24, 25, 00798 6, 74, 214, 218, 274, 195, 37, 51, 185, 74, 00799 43, 246, 247, 248, 54, 250, 251, 252, 253, 299, 00800 205, 206, 6, 207, 208, 123, 230, 316, 283, 234, 00801 235, 254, 154, 68, 132, 133, 238, 72, 320, 240, 00802 74, 69, 345, 83, 102, 199, 231, 209, 272, 134, 00803 44, 44, 236, 88, 43, 199, 257, 43, 43, 199, 00804 -176, 218, 210, 211, 135, 136, 287, 214, 212, 255, 00805 72, 43, 184, 184, 297, -176, 43, 239, 165, 166, 00806 294, 296, 125, 6, 265, 262, 123, 91, 73, 185, 00807 185, 92, 43, 130, 37, 354, 263, 131, 74, 149, 00808 84, 43, 75, 150, 150, 85, 6, 123, 307, 298, 00809 41, 42, 6, 317, 318, 107, 288, 60, 104, 308, 00810 61, 138, 10, 11, 139, 6, 62, 63, 305, 41, 00811 42, 327, 328, 329, 330, 323, 91, 332, 333, 43, 00812 92, 93, 11, 258, 259, 108, 111, 315, 47, 112, 00813 43, 218, 218, 20, 311, 113, 21, 116, 117, 128, 00814 22, 23, 24, 25, 344, 123, 118, 64, 119, 350, 00815 65, 120, 20, 43, 74, 21, 66, 67, 337, 22, 00816 23, 24, 25, 143, 140, 141, 358, 359, 288, 91, 00817 362, 84, 145, 92, 95, 271, 85, 43, 138, 155, 00818 91, 186, 181, 6, 92, 293, 189, 157, 158, 187, 00819 190, 159, 288, 214, 214, 160, 161, 193, 162, 10, 00820 11, 163, 164, 361, 165, 166, 167, 191, 91, 194, 00821 195, -145, 92, 295, 203, 214, 204, 368, 15, 220, 00822 168, 222, 225, 229, 226, 18, 19, 241, 242, 232, 00823 20, 243, 245, 21, 249, 169, 170, 22, 23, 24, 00824 25, 6, 256, 260, 7, 8, 9, 266, 269, 270, 00825 275, 277, 278, 281, 284, 130, 285, 10, 11, 12, 00826 286, 301, 6, 292, 13, 300, 41, 42, 303, 302, 00827 304, 139, 306, 14, 309, 310, 15, 16, 17, 11, 00828 312, 325, 6, 18, 19, 319, 41, 49, 20, 321, 00829 324, 21, 331, 335, 336, 22, 23, 24, 25, 11, 00830 338, 121, 339, 6, 341, 326, 342, 237, 42, 20, 00831 343, 348, 21, 349, 363, 351, 22, 23, 24, 25, 00832 11, 6, 352, 353, 364, 41, 42, 365, 366, 20, 00833 369, 228, 21, 244, 28, 291, 22, 23, 24, 25, 00834 205, 206, 6, 207, 208, 346, 290, 276, 273, 267, 00835 20, 357, 0, 21, 367, 227, 0, 22, 23, 24, 00836 25, 224, 0, 0, 0, 0, 0, 209, 20, 0, 00837 0, 21, 0, 0, 0, 22, 23, 24, 25, 0, 00838 0, 0, 210, 211, 0, 0, 0, 0, 212 00839 }; 00840 00841 static const short int yycheck[] = 00842 { 00843 8, 9, 10, 11, 130, 13, 40, 138, 30, 11, 00844 18, 19, 3, 92, 107, 45, 4, 10, 131, 12, 00845 13, 12, 12, 31, 46, 18, 19, 3, 58, 37, 00846 38, 13, 6, 41, 42, 6, 44, 6, 26, 47, 00847 116, 49, 50, 10, 6, 6, 6, 123, 0, 57, 00848 30, 18, 74, 35, 47, 6, 90, 15, 4, 33, 00849 6, 7, 6, 71, 72, 6, 10, 11, 0, 195, 00850 72, 12, 12, 301, 32, 83, 189, 17, 71, 23, 00851 47, 42, 14, 14, 92, 31, 66, 39, 50, 220, 00852 64, 51, 17, 64, 6, 64, 104, 325, 191, 0, 00853 51, 51, 6, 125, 48, 49, 52, 39, 39, 53, 00854 50, 104, 56, 6, 156, 123, 60, 61, 62, 63, 00855 6, 33, 130, 131, 200, 50, 51, 17, 104, 33, 00856 138, 173, 174, 175, 6, 177, 178, 179, 180, 17, 00857 4, 5, 6, 7, 8, 138, 12, 278, 15, 157, 00858 158, 181, 231, 53, 35, 36, 164, 35, 15, 167, 00859 33, 53, 15, 34, 37, 32, 32, 31, 198, 50, 00860 163, 164, 163, 14, 182, 32, 184, 185, 186, 32, 00861 17, 189, 46, 47, 65, 66, 228, 195, 52, 182, 00862 35, 199, 185, 186, 236, 32, 204, 164, 27, 28, 00863 234, 235, 204, 6, 192, 6, 199, 12, 23, 185, 00864 186, 16, 220, 50, 51, 341, 17, 54, 33, 22, 00865 12, 229, 37, 231, 232, 17, 6, 220, 6, 237, 00866 10, 11, 6, 279, 280, 12, 229, 53, 12, 17, 00867 56, 13, 22, 23, 16, 6, 62, 63, 256, 10, 00868 11, 293, 294, 295, 296, 285, 12, 299, 300, 267, 00869 16, 17, 23, 185, 186, 6, 12, 275, 48, 51, 00870 278, 279, 280, 53, 267, 6, 56, 6, 53, 37, 00871 60, 61, 62, 63, 314, 278, 53, 53, 53, 331, 00872 56, 53, 53, 301, 33, 56, 62, 63, 306, 60, 00873 61, 62, 63, 17, 6, 32, 348, 349, 301, 12, 00874 352, 12, 17, 16, 17, 16, 17, 325, 13, 57, 00875 12, 12, 52, 6, 16, 17, 50, 10, 11, 17, 00876 14, 14, 325, 341, 342, 18, 19, 6, 21, 22, 00877 23, 24, 25, 351, 27, 28, 29, 32, 12, 17, 00878 50, 34, 16, 17, 36, 363, 32, 365, 41, 13, 00879 43, 7, 13, 35, 14, 48, 49, 6, 16, 18, 00880 53, 16, 16, 56, 17, 58, 59, 60, 61, 62, 00881 63, 6, 14, 14, 9, 10, 11, 17, 17, 17, 00882 51, 7, 13, 55, 17, 50, 15, 22, 23, 24, 00883 17, 35, 6, 17, 29, 17, 10, 11, 16, 51, 00884 6, 16, 14, 38, 17, 14, 41, 42, 43, 23, 00885 6, 32, 6, 48, 49, 17, 10, 11, 53, 23, 00886 17, 56, 17, 6, 17, 60, 61, 62, 63, 23, 00887 17, 45, 17, 6, 15, 36, 13, 10, 11, 53, 00888 32, 17, 56, 17, 32, 36, 60, 61, 62, 63, 00889 23, 6, 17, 17, 15, 10, 11, 6, 17, 53, 00890 17, 148, 56, 171, 3, 232, 60, 61, 62, 63, 00891 4, 5, 6, 7, 8, 320, 231, 204, 199, 13, 00892 53, 343, -1, 56, 363, 147, -1, 60, 61, 62, 00893 63, 141, -1, -1, -1, -1, -1, 31, 53, -1, 00894 -1, 56, -1, -1, -1, 60, 61, 62, 63, -1, 00895 -1, -1, 46, 47, -1, -1, -1, -1, 52 00896 }; 00897 00898 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 00899 symbol of state STATE-NUM. */ 00900 static const unsigned char yystos[] = 00901 { 00902 0, 39, 68, 69, 12, 0, 6, 9, 10, 11, 00903 22, 23, 24, 29, 38, 41, 42, 43, 48, 49, 00904 53, 56, 60, 61, 62, 63, 71, 80, 87, 94, 00905 97, 100, 105, 107, 111, 119, 68, 51, 6, 80, 00906 80, 10, 11, 80, 100, 107, 97, 48, 111, 11, 00907 100, 17, 6, 12, 6, 6, 42, 100, 107, 100, 00908 53, 56, 62, 63, 53, 56, 62, 63, 53, 53, 00909 68, 13, 35, 23, 33, 37, 95, 6, 64, 80, 00910 95, 117, 118, 34, 12, 17, 112, 113, 14, 80, 00911 80, 12, 16, 17, 84, 17, 84, 80, 80, 80, 00912 50, 113, 37, 95, 12, 80, 80, 12, 6, 88, 00913 89, 12, 51, 6, 6, 113, 6, 53, 53, 53, 00914 53, 45, 96, 100, 102, 97, 98, 99, 37, 95, 00915 50, 54, 35, 36, 50, 65, 66, 106, 13, 16, 00916 6, 32, 116, 17, 80, 17, 114, 115, 84, 22, 00917 80, 81, 82, 83, 105, 57, 70, 10, 11, 14, 00918 18, 19, 21, 24, 25, 27, 28, 29, 43, 58, 00919 59, 75, 76, 77, 78, 79, 86, 87, 92, 111, 00920 119, 52, 48, 73, 100, 119, 12, 17, 88, 50, 00921 14, 32, 72, 6, 17, 50, 103, 103, 15, 32, 00922 80, 103, 95, 36, 32, 4, 5, 7, 8, 31, 00923 46, 47, 52, 74, 80, 90, 91, 104, 80, 91, 00924 13, 96, 7, 6, 118, 13, 14, 114, 70, 35, 00925 12, 32, 18, 86, 80, 80, 111, 10, 80, 107, 00926 80, 6, 16, 16, 76, 16, 86, 86, 86, 17, 00927 86, 86, 86, 86, 113, 100, 14, 80, 73, 73, 00928 14, 91, 6, 17, 88, 68, 17, 13, 104, 17, 00929 17, 16, 113, 102, 103, 51, 98, 7, 13, 30, 00930 66, 55, 96, 15, 17, 15, 17, 86, 100, 101, 00931 83, 81, 17, 17, 84, 17, 84, 86, 80, 17, 00932 17, 35, 51, 16, 6, 80, 14, 6, 17, 17, 00933 14, 100, 6, 109, 110, 80, 96, 90, 90, 17, 00934 15, 23, 93, 113, 17, 32, 36, 86, 86, 86, 00935 86, 17, 86, 86, 101, 6, 17, 80, 17, 17, 00936 85, 15, 13, 32, 113, 15, 93, 101, 17, 17, 00937 86, 36, 17, 17, 104, 104, 108, 110, 86, 86, 00938 51, 80, 86, 32, 15, 6, 17, 108, 80, 17 00939 }; 00940 00941 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) 00942 # define YYSIZE_T __SIZE_TYPE__ 00943 #endif 00944 #if ! defined (YYSIZE_T) && defined (size_t) 00945 # define YYSIZE_T size_t 00946 #endif 00947 #if ! defined (YYSIZE_T) 00948 # if defined (__STDC__) || defined (__cplusplus) 00949 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 00950 # define YYSIZE_T size_t 00951 # endif 00952 #endif 00953 #if ! defined (YYSIZE_T) 00954 # define YYSIZE_T unsigned int 00955 #endif 00956 00957 #define yyerrok (yyerrstatus = 0) 00958 #define yyclearin (yychar = YYEMPTY) 00959 #define YYEMPTY (-2) 00960 #define YYEOF 0 00961 00962 #define YYACCEPT goto yyacceptlab 00963 #define YYABORT goto yyabortlab 00964 #define YYERROR goto yyerrorlab 00965 00966 00967 /* Like YYERROR except do call yyerror. This remains here temporarily 00968 to ease the transition to the new meaning of YYERROR, for GCC. 00969 Once GCC version 2 has supplanted version 1, this can go. */ 00970 00971 #define YYFAIL goto yyerrlab 00972 00973 #define YYRECOVERING() (!!yyerrstatus) 00974 00975 #define YYBACKUP(Token, Value) \ 00976 do \ 00977 if (yychar == YYEMPTY && yylen == 1) \ 00978 { \ 00979 yychar = (Token); \ 00980 yylval = (Value); \ 00981 yytoken = YYTRANSLATE (yychar); \ 00982 YYPOPSTACK; \ 00983 goto yybackup; \ 00984 } \ 00985 else \ 00986 { \ 00987 yyerror ("syntax error: cannot back up");\ 00988 YYERROR; \ 00989 } \ 00990 while (0) 00991 00992 #define YYTERROR 1 00993 #define YYERRCODE 256 00994 00995 /* YYLLOC_DEFAULT -- Compute the default location (before the actions 00996 are run). */ 00997 00998 #ifndef YYLLOC_DEFAULT 00999 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 01000 ((Current).first_line = (Rhs)[1].first_line, \ 01001 (Current).first_column = (Rhs)[1].first_column, \ 01002 (Current).last_line = (Rhs)[N].last_line, \ 01003 (Current).last_column = (Rhs)[N].last_column) 01004 #endif 01005 01006 /* YYLEX -- calling `yylex' with the right arguments. */ 01007 01008 #ifdef YYLEX_PARAM 01009 # define YYLEX yylex (YYLEX_PARAM) 01010 #else 01011 # define YYLEX yylex () 01012 #endif 01013 01014 /* Enable debugging if requested. */ 01015 #if YYDEBUG 01016 01017 # ifndef YYFPRINTF 01018 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 01019 # define YYFPRINTF fprintf 01020 # endif 01021 01022 # define YYDPRINTF(Args) \ 01023 do { \ 01024 if (yydebug) \ 01025 YYFPRINTF Args; \ 01026 } while (0) 01027 01028 # define YYDSYMPRINT(Args) \ 01029 do { \ 01030 if (yydebug) \ 01031 yysymprint Args; \ 01032 } while (0) 01033 01034 # define YYDSYMPRINTF(Title, Token, Value, Location) \ 01035 do { \ 01036 if (yydebug) \ 01037 { \ 01038 YYFPRINTF (stderr, "%s ", Title); \ 01039 yysymprint (stderr, \ 01040 Token, Value); \ 01041 YYFPRINTF (stderr, "\n"); \ 01042 } \ 01043 } while (0) 01044 01045 /*------------------------------------------------------------------. 01046 | yy_stack_print -- Print the state stack from its BOTTOM up to its | 01047 | TOP (included). | 01048 `------------------------------------------------------------------*/ 01049 01050 #if defined (__STDC__) || defined (__cplusplus) 01051 static void 01052 yy_stack_print (short int *bottom, short int *top) 01053 #else 01054 static void 01055 yy_stack_print (bottom, top) 01056 short int *bottom; 01057 short int *top; 01058 #endif 01059 { 01060 YYFPRINTF (stderr, "Stack now"); 01061 for (/* Nothing. */; bottom <= top; ++bottom) 01062 YYFPRINTF (stderr, " %d", *bottom); 01063 YYFPRINTF (stderr, "\n"); 01064 } 01065 01066 # define YY_STACK_PRINT(Bottom, Top) \ 01067 do { \ 01068 if (yydebug) \ 01069 yy_stack_print ((Bottom), (Top)); \ 01070 } while (0) 01071 01072 01073 /*------------------------------------------------. 01074 | Report that the YYRULE is going to be reduced. | 01075 `------------------------------------------------*/ 01076 01077 #if defined (__STDC__) || defined (__cplusplus) 01078 static void 01079 yy_reduce_print (int yyrule) 01080 #else 01081 static void 01082 yy_reduce_print (yyrule) 01083 int yyrule; 01084 #endif 01085 { 01086 int yyi; 01087 unsigned int yylno = yyrline[yyrule]; 01088 YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", 01089 yyrule - 1, yylno); 01090 /* Print the symbols being reduced, and their result. */ 01091 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) 01092 YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); 01093 YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); 01094 } 01095 01096 # define YY_REDUCE_PRINT(Rule) \ 01097 do { \ 01098 if (yydebug) \ 01099 yy_reduce_print (Rule); \ 01100 } while (0) 01101 01102 /* Nonzero means print parse trace. It is left uninitialized so that 01103 multiple parsers can coexist. */ 01104 int yydebug; 01105 #else /* !YYDEBUG */ 01106 # define YYDPRINTF(Args) 01107 # define YYDSYMPRINT(Args) 01108 # define YYDSYMPRINTF(Title, Token, Value, Location) 01109 # define YY_STACK_PRINT(Bottom, Top) 01110 # define YY_REDUCE_PRINT(Rule) 01111 #endif /* !YYDEBUG */ 01112 01113 01114 /* YYINITDEPTH -- initial size of the parser's stacks. */ 01115 #ifndef YYINITDEPTH 01116 # define YYINITDEPTH 200 01117 #endif 01118 01119 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 01120 if the built-in stack extension method is used). 01121 01122 Do not make this value too large; the results are undefined if 01123 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) 01124 evaluated with infinite-precision integer arithmetic. */ 01125 01126 #if defined (YYMAXDEPTH) && YYMAXDEPTH == 0 01127 # undef YYMAXDEPTH 01128 #endif 01129 01130 #ifndef YYMAXDEPTH 01131 # define YYMAXDEPTH 10000 01132 #endif 01133 01134 01135 01136 #if YYERROR_VERBOSE 01137 01138 # ifndef yystrlen 01139 # if defined (__GLIBC__) && defined (_STRING_H) 01140 # define yystrlen strlen 01141 # else 01142 /* Return the length of YYSTR. */ 01143 static YYSIZE_T 01144 # if defined (__STDC__) || defined (__cplusplus) 01145 yystrlen (const char *yystr) 01146 # else 01147 yystrlen (yystr) 01148 const char *yystr; 01149 # endif 01150 { 01151 register const char *yys = yystr; 01152 01153 while (*yys++ != '\0') 01154 continue; 01155 01156 return yys - yystr - 1; 01157 } 01158 # endif 01159 # endif 01160 01161 # ifndef yystpcpy 01162 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) 01163 # define yystpcpy stpcpy 01164 # else 01165 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 01166 YYDEST. */ 01167 static char * 01168 # if defined (__STDC__) || defined (__cplusplus) 01169 yystpcpy (char *yydest, const char *yysrc) 01170 # else 01171 yystpcpy (yydest, yysrc) 01172 char *yydest; 01173 const char *yysrc; 01174 # endif 01175 { 01176 register char *yyd = yydest; 01177 register const char *yys = yysrc; 01178 01179 while ((*yyd++ = *yys++) != '\0') 01180 continue; 01181 01182 return yyd - 1; 01183 } 01184 # endif 01185 # endif 01186 01187 #endif /* !YYERROR_VERBOSE */ 01188 01189 01190 01191 #if YYDEBUG 01192 /*--------------------------------. 01193 | Print this symbol on YYOUTPUT. | 01194 `--------------------------------*/ 01195 01196 #if defined (__STDC__) || defined (__cplusplus) 01197 static void 01198 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) 01199 #else 01200 static void 01201 yysymprint (yyoutput, yytype, yyvaluep) 01202 FILE *yyoutput; 01203 int yytype; 01204 YYSTYPE *yyvaluep; 01205 #endif 01206 { 01207 /* Pacify ``unused variable'' warnings. */ 01208 (void) yyvaluep; 01209 01210 if (yytype < YYNTOKENS) 01211 { 01212 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 01213 # ifdef YYPRINT 01214 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 01215 # endif 01216 } 01217 else 01218 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 01219 01220 switch (yytype) 01221 { 01222 default: 01223 break; 01224 } 01225 YYFPRINTF (yyoutput, ")"); 01226 } 01227 01228 #endif /* ! YYDEBUG */ 01229 /*-----------------------------------------------. 01230 | Release the memory associated to this symbol. | 01231 `-----------------------------------------------*/ 01232 01233 #if defined (__STDC__) || defined (__cplusplus) 01234 static void 01235 yydestruct (int yytype, YYSTYPE *yyvaluep) 01236 #else 01237 static void 01238 yydestruct (yytype, yyvaluep) 01239 int yytype; 01240 YYSTYPE *yyvaluep; 01241 #endif 01242 { 01243 /* Pacify ``unused variable'' warnings. */ 01244 (void) yyvaluep; 01245 01246 switch (yytype) 01247 { 01248 01249 default: 01250 break; 01251 } 01252 } 01253 01254 01255 /* Prevent warnings from -Wmissing-prototypes. */ 01256 01257 #ifdef YYPARSE_PARAM 01258 # if defined (__STDC__) || defined (__cplusplus) 01259 int yyparse (void *YYPARSE_PARAM); 01260 # else 01261 int yyparse (); 01262 # endif 01263 #else /* ! YYPARSE_PARAM */ 01264 #if defined (__STDC__) || defined (__cplusplus) 01265 int yyparse (void); 01266 #else 01267 int yyparse (); 01268 #endif 01269 #endif /* ! YYPARSE_PARAM */ 01270 01271 01272 01273 /* The lookahead symbol. */ 01274 int yychar; 01275 01276 /* The semantic value of the lookahead symbol. */ 01277 YYSTYPE yylval; 01278 01279 /* Number of syntax errors so far. */ 01280 int yynerrs; 01281 01282 01283 01284 /*----------. 01285 | yyparse. | 01286 `----------*/ 01287 01288 #ifdef YYPARSE_PARAM 01289 # if defined (__STDC__) || defined (__cplusplus) 01290 int yyparse (void *YYPARSE_PARAM) 01291 # else 01292 int yyparse (YYPARSE_PARAM) 01293 void *YYPARSE_PARAM; 01294 # endif 01295 #else /* ! YYPARSE_PARAM */ 01296 #if defined (__STDC__) || defined (__cplusplus) 01297 int 01298 yyparse (void) 01299 #else 01300 int 01301 yyparse () 01302 01303 #endif 01304 #endif 01305 { 01306 01307 register int yystate; 01308 register int yyn; 01309 int yyresult; 01310 /* Number of tokens to shift before error messages enabled. */ 01311 int yyerrstatus; 01312 /* Lookahead token as an internal (translated) token number. */ 01313 int yytoken = 0; 01314 01315 /* Three stacks and their tools: 01316 `yyss': related to states, 01317 `yyvs': related to semantic values, 01318 `yyls': related to locations. 01319 01320 Refer to the stacks thru separate pointers, to allow yyoverflow 01321 to reallocate them elsewhere. */ 01322 01323 /* The state stack. */ 01324 short int yyssa[YYINITDEPTH]; 01325 short int *yyss = yyssa; 01326 register short int *yyssp; 01327 01328 /* The semantic value stack. */ 01329 YYSTYPE yyvsa[YYINITDEPTH]; 01330 YYSTYPE *yyvs = yyvsa; 01331 register YYSTYPE *yyvsp; 01332 01333 01334 01335 #define YYPOPSTACK (yyvsp--, yyssp--) 01336 01337 YYSIZE_T yystacksize = YYINITDEPTH; 01338 01339 /* The variables used to return semantic value and location from the 01340 action routines. */ 01341 YYSTYPE yyval; 01342 01343 01344 /* When reducing, the number of symbols on the RHS of the reduced 01345 rule. */ 01346 int yylen; 01347 01348 YYDPRINTF ((stderr, "Starting parse\n")); 01349 01350 yystate = 0; 01351 yyerrstatus = 0; 01352 yynerrs = 0; 01353 yychar = YYEMPTY; /* Cause a token to be read. */ 01354 01355 /* Initialize stack pointers. 01356 Waste one element of value and location stack 01357 so that they stay on the same level as the state stack. 01358 The wasted elements are never initialized. */ 01359 01360 yyssp = yyss; 01361 yyvsp = yyvs; 01362 01363 01364 goto yysetstate; 01365 01366 /*------------------------------------------------------------. 01367 | yynewstate -- Push a new state, which is found in yystate. | 01368 `------------------------------------------------------------*/ 01369 yynewstate: 01370 /* In all cases, when you get here, the value and location stacks 01371 have just been pushed. so pushing a state here evens the stacks. 01372 */ 01373 yyssp++; 01374 01375 yysetstate: 01376 *yyssp = yystate; 01377 01378 if (yyss + yystacksize - 1 <= yyssp) 01379 { 01380 /* Get the current used size of the three stacks, in elements. */ 01381 YYSIZE_T yysize = yyssp - yyss + 1; 01382 01383 #ifdef yyoverflow 01384 { 01385 /* Give user a chance to reallocate the stack. Use copies of 01386 these so that the &'s don't force the real ones into 01387 memory. */ 01388 YYSTYPE *yyvs1 = yyvs; 01389 short int *yyss1 = yyss; 01390 01391 01392 /* Each stack pointer address is followed by the size of the 01393 data in use in that stack, in bytes. This used to be a 01394 conditional around just the two extra args, but that might 01395 be undefined if yyoverflow is a macro. */ 01396 yyoverflow ("parser stack overflow", 01397 &yyss1, yysize * sizeof (*yyssp), 01398 &yyvs1, yysize * sizeof (*yyvsp), 01399 01400 &yystacksize); 01401 01402 yyss = yyss1; 01403 yyvs = yyvs1; 01404 } 01405 #else /* no yyoverflow */ 01406 # ifndef YYSTACK_RELOCATE 01407 goto yyoverflowlab; 01408 # else 01409 /* Extend the stack our own way. */ 01410 if (YYMAXDEPTH <= yystacksize) 01411 goto yyoverflowlab; 01412 yystacksize *= 2; 01413 if (YYMAXDEPTH < yystacksize) 01414 yystacksize = YYMAXDEPTH; 01415 01416 { 01417 short int *yyss1 = yyss; 01418 union yyalloc *yyptr = 01419 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 01420 if (! yyptr) 01421 goto yyoverflowlab; 01422 YYSTACK_RELOCATE (yyss); 01423 YYSTACK_RELOCATE (yyvs); 01424 01425 # undef YYSTACK_RELOCATE 01426 if (yyss1 != yyssa) 01427 YYSTACK_FREE (yyss1); 01428 } 01429 # endif 01430 #endif /* no yyoverflow */ 01431 01432 yyssp = yyss + yysize - 1; 01433 yyvsp = yyvs + yysize - 1; 01434 01435 01436 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 01437 (unsigned long int) yystacksize)); 01438 01439 if (yyss + yystacksize - 1 <= yyssp) 01440 YYABORT; 01441 } 01442 01443 YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 01444 01445 goto yybackup; 01446 01447 /*-----------. 01448 | yybackup. | 01449 `-----------*/ 01450 yybackup: 01451 01452 /* Do appropriate processing given the current state. */ 01453 /* Read a lookahead token if we need one and don't already have one. */ 01454 /* yyresume: */ 01455 01456 /* First try to decide what to do without reference to lookahead token. */ 01457 01458 yyn = yypact[yystate]; 01459 if (yyn == YYPACT_NINF) 01460 goto yydefault; 01461 01462 /* Not known => get a lookahead token if don't already have one. */ 01463 01464 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 01465 if (yychar == YYEMPTY) 01466 { 01467 YYDPRINTF ((stderr, "Reading a token: ")); 01468 yychar = YYLEX; 01469 } 01470 01471 if (yychar <= YYEOF) 01472 { 01473 yychar = yytoken = YYEOF; 01474 YYDPRINTF ((stderr, "Now at end of input.\n")); 01475 } 01476 else 01477 { 01478 yytoken = YYTRANSLATE (yychar); 01479 YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); 01480 } 01481 01482 /* If the proper action on seeing token YYTOKEN is to reduce or to 01483 detect an error, take that action. */ 01484 yyn += yytoken; 01485 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 01486 goto yydefault; 01487 yyn = yytable[yyn]; 01488 if (yyn <= 0) 01489 { 01490 if (yyn == 0 || yyn == YYTABLE_NINF) 01491 goto yyerrlab; 01492 yyn = -yyn; 01493 goto yyreduce; 01494 } 01495 01496 if (yyn == YYFINAL) 01497 YYACCEPT; 01498 01499 /* Shift the lookahead token. */ 01500 YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); 01501 01502 /* Discard the token being shifted unless it is eof. */ 01503 if (yychar != YYEOF) 01504 yychar = YYEMPTY; 01505 01506 *++yyvsp = yylval; 01507 01508 01509 /* Count tokens shifted since error; after three, turn off error 01510 status. */ 01511 if (yyerrstatus) 01512 yyerrstatus--; 01513 01514 yystate = yyn; 01515 goto yynewstate; 01516 01517 01518 /*-----------------------------------------------------------. 01519 | yydefault -- do the default action for the current state. | 01520 `-----------------------------------------------------------*/ 01521 yydefault: 01522 yyn = yydefact[yystate]; 01523 if (yyn == 0) 01524 goto yyerrlab; 01525 goto yyreduce; 01526 01527 01528 /*-----------------------------. 01529 | yyreduce -- Do a reduction. | 01530 `-----------------------------*/ 01531 yyreduce: 01532 /* yyn is the number of a rule to reduce with. */ 01533 yylen = yyr2[yyn]; 01534 01535 /* If YYLEN is nonzero, implement the default value of the action: 01536 `$$ = $1'. 01537 01538 Otherwise, the following line sets YYVAL to garbage. 01539 This behavior is undocumented and Bison 01540 users should not rely upon it. Assigning to YYVAL 01541 unconditionally makes the parser a bit smaller, and it avoids a 01542 GCC warning that YYVAL may be used uninitialized. */ 01543 yyval = yyvsp[1-yylen]; 01544 01545 01546 YY_REDUCE_PRINT (yyn); 01547 switch (yyn) 01548 { 01549 case 2: 01550 #line 165 "yacc.yy" 01551 { 01552 ;} 01553 break; 01554 01555 case 4: 01556 #line 172 "yacc.yy" 01557 { 01558 printf("<INCLUDE>%s</INCLUDE>\n", yyvsp[0]._str->latin1() ); 01559 ;} 01560 break; 01561 01562 case 5: 01563 #line 176 "yacc.yy" 01564 { 01565 ;} 01566 break; 01567 01568 case 6: 01569 #line 179 "yacc.yy" 01570 { 01571 ;} 01572 break; 01573 01574 case 7: 01575 #line 184 "yacc.yy" 01576 { yyval._int = 1; ;} 01577 break; 01578 01579 case 8: 01580 #line 185 "yacc.yy" 01581 { yyval._int = 0; ;} 01582 break; 01583 01584 case 9: 01585 #line 190 "yacc.yy" 01586 { 01587 if (yyvsp[-2]._int) 01588 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() ); 01589 // default C++ visibility specifier is 'private' 01590 dcop_area = 0; 01591 dcop_signal_area = 0; 01592 01593 ;} 01594 break; 01595 01596 case 10: 01597 #line 199 "yacc.yy" 01598 { 01599 if (yyvsp[-2]._int) 01600 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() ); 01601 // default C++ visibility specifier is 'private' 01602 dcop_area = 0; 01603 dcop_signal_area = 0; 01604 01605 ;} 01606 break; 01607 01608 case 11: 01609 #line 208 "yacc.yy" 01610 { 01611 ;} 01612 break; 01613 01614 case 12: 01615 #line 211 "yacc.yy" 01616 { 01617 ;} 01618 break; 01619 01620 case 13: 01621 #line 214 "yacc.yy" 01622 { 01623 ;} 01624 break; 01625 01626 case 14: 01627 #line 217 "yacc.yy" 01628 { 01629 in_namespace += *yyvsp[-1]._str; in_namespace += "::"; 01630 ;} 01631 break; 01632 01633 case 15: 01634 #line 221 "yacc.yy" 01635 { 01636 int pos = in_namespace.findRev( "::", -3 ); 01637 if( pos >= 0 ) 01638 in_namespace = in_namespace.left( pos + 2 ); 01639 else 01640 in_namespace = ""; 01641 ;} 01642 break; 01643 01644 case 16: 01645 #line 229 "yacc.yy" 01646 { 01647 ;} 01648 break; 01649 01650 case 17: 01651 #line 232 "yacc.yy" 01652 { 01653 ;} 01654 break; 01655 01656 case 18: 01657 #line 235 "yacc.yy" 01658 { 01659 ;} 01660 break; 01661 01662 case 19: 01663 #line 238 "yacc.yy" 01664 { 01665 ;} 01666 break; 01667 01668 case 20: 01669 #line 241 "yacc.yy" 01670 { 01671 ;} 01672 break; 01673 01674 case 21: 01675 #line 244 "yacc.yy" 01676 { 01677 ;} 01678 break; 01679 01680 case 22: 01681 #line 247 "yacc.yy" 01682 { 01683 ;} 01684 break; 01685 01686 case 23: 01687 #line 250 "yacc.yy" 01688 { 01689 ;} 01690 break; 01691 01692 case 24: 01693 #line 253 "yacc.yy" 01694 { 01695 ;} 01696 break; 01697 01698 case 25: 01699 #line 256 "yacc.yy" 01700 { 01701 ;} 01702 break; 01703 01704 case 36: 01705 #line 273 "yacc.yy" 01706 { 01707 dcop_area = 0; 01708 dcop_signal_area = 0; 01709 ;} 01710 break; 01711 01712 case 37: 01713 #line 278 "yacc.yy" 01714 { 01715 dcop_area = 0; 01716 dcop_signal_area = 0; 01717 ;} 01718 break; 01719 01720 case 38: 01721 #line 286 "yacc.yy" 01722 { 01723 dcop_area = 1; 01724 dcop_signal_area = 0; 01725 ;} 01726 break; 01727 01728 case 39: 01729 #line 294 "yacc.yy" 01730 { 01731 /* 01732 A dcop signals area needs all dcop area capabilities, 01733 e.g. parsing of function parameters. 01734 */ 01735 dcop_area = 1; 01736 dcop_signal_area = 1; 01737 ;} 01738 break; 01739 01740 case 40: 01741 #line 305 "yacc.yy" 01742 { 01743 yyval._str = yyvsp[0]._str; 01744 ;} 01745 break; 01746 01747 case 41: 01748 #line 308 "yacc.yy" 01749 { 01750 QString* tmp = new QString( "%1::%2" ); 01751 *tmp = tmp->arg(*(yyvsp[-2]._str)).arg(*(yyvsp[0]._str)); 01752 yyval._str = tmp; 01753 ;} 01754 break; 01755 01756 case 42: 01757 #line 317 "yacc.yy" 01758 { 01759 QString* tmp = new QString( " <SUPER>%1</SUPER>\n" ); 01760 *tmp = tmp->arg( *(yyvsp[0]._str) ); 01761 yyval._str = tmp; 01762 ;} 01763 break; 01764 01765 case 43: 01766 #line 323 "yacc.yy" 01767 { 01768 QString* tmp = new QString( " <SUPER>%1</SUPER>\n" ); 01769 *tmp = tmp->arg( *(yyvsp[-3]._str) + "&lt;" + *(yyvsp[-1]._str) + "&gt;" ); 01770 yyval._str = tmp; 01771 ;} 01772 break; 01773 01774 case 44: 01775 #line 332 "yacc.yy" 01776 { 01777 yyval._str = yyvsp[0]._str; 01778 ;} 01779 break; 01780 01781 case 45: 01782 #line 336 "yacc.yy" 01783 { 01784 yyval._str = yyvsp[0]._str; 01785 ;} 01786 break; 01787 01788 case 46: 01789 #line 343 "yacc.yy" 01790 { 01791 yyval._str = yyvsp[-1]._str; 01792 ;} 01793 break; 01794 01795 case 47: 01796 #line 347 "yacc.yy" 01797 { 01798 /* $$ = $1; */ 01799 yyval._str = new QString( *(yyvsp[-2]._str) + *(yyvsp[0]._str) ); 01800 ;} 01801 break; 01802 01803 case 48: 01804 #line 355 "yacc.yy" 01805 { 01806 yyval._str = yyvsp[0]._str; 01807 ;} 01808 break; 01809 01810 case 49: 01811 #line 359 "yacc.yy" 01812 { 01813 yyval._str = new QString( "" ); 01814 ;} 01815 break; 01816 01817 case 50: 01818 #line 366 "yacc.yy" 01819 { 01820 ;} 01821 break; 01822 01823 case 52: 01824 #line 373 "yacc.yy" 01825 { 01826 yyval._str = new QString( "" ); 01827 ;} 01828 break; 01829 01830 case 53: 01831 #line 377 "yacc.yy" 01832 { 01833 yyval._str = new QString( *(yyvsp[-1]._str) + *(yyvsp[0]._str) ); 01834 ;} 01835 break; 01836 01837 case 54: 01838 #line 381 "yacc.yy" 01839 { 01840 yyval._str = new QString( *(yyvsp[-1]._str) + *(yyvsp[0]._str) ); 01841 ;} 01842 break; 01843 01844 case 55: 01845 #line 385 "yacc.yy" 01846 { 01847 yyval._str = new QString( *(yyvsp[-1]._str) + *(yyvsp[0]._str) ); 01848 ;} 01849 break; 01850 01851 case 56: 01852 #line 389 "yacc.yy" 01853 { 01854 yyval._str = yyvsp[0]._str; 01855 ;} 01856 break; 01857 01858 case 57: 01859 #line 393 "yacc.yy" 01860 { 01861 yyval._str = yyvsp[0]._str; 01862 ;} 01863 break; 01864 01865 case 58: 01866 #line 397 "yacc.yy" 01867 { 01868 yyval._str = yyvsp[0]._str; 01869 ;} 01870 break; 01871 01872 case 59: 01873 #line 401 "yacc.yy" 01874 { 01875 yyval._str = yyvsp[0]._str; 01876 ;} 01877 break; 01878 01879 case 60: 01880 #line 405 "yacc.yy" 01881 { 01882 yyval._str = yyvsp[0]._str; 01883 ;} 01884 break; 01885 01886 case 61: 01887 #line 409 "yacc.yy" 01888 { 01889 yyval._str = yyvsp[0]._str; 01890 ;} 01891 break; 01892 01893 case 62: 01894 #line 413 "yacc.yy" 01895 { 01896 yyval._str = yyvsp[0]._str; 01897 ;} 01898 break; 01899 01900 case 63: 01901 #line 417 "yacc.yy" 01902 { 01903 yyval._str = yyvsp[0]._str; 01904 ;} 01905 break; 01906 01907 case 64: 01908 #line 421 "yacc.yy" 01909 { 01910 yyval._str = yyvsp[0]._str; 01911 ;} 01912 break; 01913 01914 case 65: 01915 #line 425 "yacc.yy" 01916 { 01917 yyval._str = yyvsp[0]._str; 01918 ;} 01919 break; 01920 01921 case 66: 01922 #line 429 "yacc.yy" 01923 { 01924 yyval._str = yyvsp[0]._str; 01925 ;} 01926 break; 01927 01928 case 67: 01929 #line 433 "yacc.yy" 01930 { 01931 yyval._str = yyvsp[0]._str; 01932 ;} 01933 break; 01934 01935 case 68: 01936 #line 437 "yacc.yy" 01937 { 01938 yyval._str = yyvsp[0]._str; 01939 ;} 01940 break; 01941 01942 case 75: 01943 #line 455 "yacc.yy" 01944 {;} 01945 break; 01946 01947 case 76: 01948 #line 456 "yacc.yy" 01949 {;} 01950 break; 01951 01952 case 77: 01953 #line 460 "yacc.yy" 01954 {;} 01955 break; 01956 01957 case 78: 01958 #line 461 "yacc.yy" 01959 {;} 01960 break; 01961 01962 case 79: 01963 #line 462 "yacc.yy" 01964 {;} 01965 break; 01966 01967 case 80: 01968 #line 463 "yacc.yy" 01969 {;} 01970 break; 01971 01972 case 81: 01973 #line 464 "yacc.yy" 01974 {;} 01975 break; 01976 01977 case 82: 01978 #line 468 "yacc.yy" 01979 {;} 01980 break; 01981 01982 case 83: 01983 #line 469 "yacc.yy" 01984 {;} 01985 break; 01986 01987 case 84: 01988 #line 470 "yacc.yy" 01989 {;} 01990 break; 01991 01992 case 85: 01993 #line 475 "yacc.yy" 01994 { 01995 if (dcop_area) { 01996 QString* tmp = new QString("<TYPEDEF name=\"%1\" template=\"%2\"><PARAM %3</TYPEDEF>\n"); 01997 *tmp = tmp->arg( *(yyvsp[-1]._str) ).arg( *(yyvsp[-5]._str) ).arg( *(yyvsp[-3]._str) ); 01998 yyval._str = tmp; 01999 } else { 02000 yyval._str = new QString(""); 02001 } 02002 ;} 02003 break; 02004 02005 case 86: 02006 #line 485 "yacc.yy" 02007 { 02008 if (dcop_area) 02009 yyerror("scoped template typedefs are not supported in dcop areas!"); 02010 ;} 02011 break; 02012 02013 case 87: 02014 #line 493 "yacc.yy" 02015 { 02016 yyval._int = 0; 02017 ;} 02018 break; 02019 02020 case 88: 02021 #line 497 "yacc.yy" 02022 { 02023 yyval._int = 1; 02024 ;} 02025 break; 02026 02027 case 89: 02028 #line 503 "yacc.yy" 02029 { yyval._str = new QString("signed int"); ;} 02030 break; 02031 02032 case 90: 02033 #line 504 "yacc.yy" 02034 { yyval._str = new QString("signed int"); ;} 02035 break; 02036 02037 case 91: 02038 #line 505 "yacc.yy" 02039 { yyval._str = new QString("unsigned int"); ;} 02040 break; 02041 02042 case 92: 02043 #line 506 "yacc.yy" 02044 { yyval._str = new QString("unsigned int"); ;} 02045 break; 02046 02047 case 93: 02048 #line 507 "yacc.yy" 02049 { yyval._str = new QString("signed short int"); ;} 02050 break; 02051 02052 case 94: 02053 #line 508 "yacc.yy" 02054 { yyval._str = new QString("signed short int"); ;} 02055 break; 02056 02057 case 95: 02058 #line 509 "yacc.yy" 02059 { yyval._str = new QString("signed long int"); ;} 02060 break; 02061 02062 case 96: 02063 #line 510 "yacc.yy" 02064 { yyval._str = new QString("signed long int"); ;} 02065 break; 02066 02067 case 97: 02068 #line 511 "yacc.yy" 02069 { yyval._str = new QString("unsigned short int"); ;} 02070 break; 02071 02072 case 98: 02073 #line 512 "yacc.yy" 02074 { yyval._str = new QString("unsigned short int"); ;} 02075 break; 02076 02077 case 99: 02078 #line 513 "yacc.yy" 02079 { yyval._str = new QString("unsigned long int"); ;} 02080 break; 02081 02082 case 100: 02083 #line 514 "yacc.yy" 02084 { yyval._str = new QString("unsigned long int"); ;} 02085 break; 02086 02087 case 101: 02088 #line 515 "yacc.yy" 02089 { yyval._str = new QString("int"); ;} 02090 break; 02091 02092 case 102: 02093 #line 516 "yacc.yy" 02094 { yyval._str = new QString("long int"); ;} 02095 break; 02096 02097 case 103: 02098 #line 517 "yacc.yy" 02099 { yyval._str = new QString("long int"); ;} 02100 break; 02101 02102 case 104: 02103 #line 518 "yacc.yy" 02104 { yyval._str = new QString("short int"); ;} 02105 break; 02106 02107 case 105: 02108 #line 519 "yacc.yy" 02109 { yyval._str = new QString("short int"); ;} 02110 break; 02111 02112 case 106: 02113 #line 520 "yacc.yy" 02114 { yyval._str = new QString("char"); ;} 02115 break; 02116 02117 case 107: 02118 #line 521 "yacc.yy" 02119 { yyval._str = new QString("signed char"); ;} 02120 break; 02121 02122 case 108: 02123 #line 522 "yacc.yy" 02124 { yyval._str = new QString("unsigned char"); ;} 02125 break; 02126 02127 case 111: 02128 #line 532 "yacc.yy" 02129 { 02130 yyval._str = new QString( "" ); 02131 ;} 02132 break; 02133 02134 case 113: 02135 #line 537 "yacc.yy" 02136 { 02137 yyval._str = new QString( *(yyvsp[-2]._str) + *(yyvsp[0]._str) ); 02138 ;} 02139 break; 02140 02141 case 115: 02142 #line 545 "yacc.yy" 02143 { yyval._str = yyvsp[0]._str; ;} 02144 break; 02145 02146 case 116: 02147 #line 546 "yacc.yy" 02148 { yyval._str = yyvsp[0]._str; ;} 02149 break; 02150 02151 case 117: 02152 #line 547 "yacc.yy" 02153 { yyval._str = yyvsp[0]._str; ;} 02154 break; 02155 02156 case 118: 02157 #line 548 "yacc.yy" 02158 { 02159 QString *tmp = new QString("%1&lt;%2&gt;"); 02160 *tmp = tmp->arg(*(yyvsp[-3]._str)); 02161 *tmp = tmp->arg(*(yyvsp[-1]._str)); 02162 yyval._str = tmp; 02163 ;} 02164 break; 02165 02166 case 119: 02167 #line 554 "yacc.yy" 02168 { 02169 QString *tmp = new QString("%1&lt;%2&gt;::%3"); 02170 *tmp = tmp->arg(*(yyvsp[-5]._str)); 02171 *tmp = tmp->arg(*(yyvsp[-3]._str)); 02172 *tmp = tmp->arg(*(yyvsp[0]._str)); 02173 yyval._str = tmp; 02174 ;} 02175 break; 02176 02177 case 120: 02178 #line 566 "yacc.yy" 02179 { 02180 yyval._str = new QString(*(yyvsp[-2]._str) + "," + *(yyvsp[0]._str)); 02181 ;} 02182 break; 02183 02184 case 121: 02185 #line 570 "yacc.yy" 02186 { 02187 yyval._str = yyvsp[0]._str; 02188 ;} 02189 break; 02190 02191 case 122: 02192 #line 578 "yacc.yy" 02193 { 02194 if (dcop_area) 02195 yyerror("in dcop areas are no pointers allowed"); 02196 ;} 02197 break; 02198 02199 case 123: 02200 #line 583 "yacc.yy" 02201 { 02202 yyval._str = yyvsp[0]._str; 02203 ;} 02204 break; 02205 02206 case 124: 02207 #line 592 "yacc.yy" 02208 { 02209 if (dcop_area) 02210 yyerror("in dcop areas are no pointers allowed"); 02211 ;} 02212 break; 02213 02214 case 125: 02215 #line 596 "yacc.yy" 02216 { 02217 if (dcop_area) { 02218 QString* tmp = new QString("<TYPE qleft=\"const\" qright=\"" AMP_ENTITY "\">%1</TYPE>"); 02219 *tmp = tmp->arg( *(yyvsp[-1]._str) ); 02220 yyval._str = tmp; 02221 } 02222 ;} 02223 break; 02224 02225 case 126: 02226 #line 603 "yacc.yy" 02227 { 02228 QString* tmp = new QString("<TYPE>%1</TYPE>"); 02229 *tmp = tmp->arg( *(yyvsp[0]._str) ); 02230 yyval._str = tmp; 02231 ;} 02232 break; 02233 02234 case 127: 02235 #line 608 "yacc.yy" 02236 { 02237 QString* tmp = new QString("<TYPE>%1</TYPE>"); 02238 *tmp = tmp->arg( *(yyvsp[-1]._str) ); 02239 yyval._str = tmp; 02240 ;} 02241 break; 02242 02243 case 128: 02244 #line 613 "yacc.yy" 02245 { 02246 if (dcop_area) { 02247 QString* tmp = new QString("<TYPE qleft=\"const\" qright=\"" AMP_ENTITY "\">%1</TYPE>"); 02248 *tmp = tmp->arg( *(yyvsp[-2]._str) ); 02249 yyval._str = tmp; 02250 } 02251 ;} 02252 break; 02253 02254 case 129: 02255 #line 620 "yacc.yy" 02256 { 02257 if (dcop_area) 02258 yyerror("in dcop areas are only const references allowed!"); 02259 ;} 02260 break; 02261 02262 case 130: 02263 #line 625 "yacc.yy" 02264 { 02265 QString* tmp = new QString("<TYPE>%1</TYPE>"); 02266 *tmp = tmp->arg( *(yyvsp[0]._str) ); 02267 yyval._str = tmp; 02268 ;} 02269 break; 02270 02271 case 131: 02272 #line 631 "yacc.yy" 02273 { 02274 if (dcop_area) 02275 yyerror("in dcop areas are no pointers allowed"); 02276 ;} 02277 break; 02278 02279 case 132: 02280 #line 639 "yacc.yy" 02281 { 02282 yyval._str = new QString(*(yyvsp[-2]._str) + "," + *(yyvsp[0]._str)); 02283 ;} 02284 break; 02285 02286 case 133: 02287 #line 643 "yacc.yy" 02288 { 02289 yyval._str = yyvsp[0]._str; 02290 ;} 02291 break; 02292 02293 case 134: 02294 #line 650 "yacc.yy" 02295 { 02296 if (dcop_area) { 02297 QString* tmp = new QString("\n <ARG>%1<NAME>%2</NAME></ARG>"); 02298 *tmp = tmp->arg( *(yyvsp[-2]._str) ); 02299 *tmp = tmp->arg( *(yyvsp[-1]._str) ); 02300 yyval._str = tmp; 02301 } else yyval._str = new QString(); 02302 ;} 02303 break; 02304 02305 case 135: 02306 #line 659 "yacc.yy" 02307 { 02308 if (dcop_area) { 02309 QString* tmp = new QString("\n <ARG>%1</ARG>"); 02310 *tmp = tmp->arg( *(yyvsp[-1]._str) ); 02311 yyval._str = tmp; 02312 } else yyval._str = new QString(); 02313 ;} 02314 break; 02315 02316 case 136: 02317 #line 667 "yacc.yy" 02318 { 02319 if (dcop_area) 02320 yyerror("variable arguments not supported in dcop area."); 02321 yyval._str = new QString(""); 02322 ;} 02323 break; 02324 02325 case 137: 02326 #line 676 "yacc.yy" 02327 { 02328 ;} 02329 break; 02330 02331 case 138: 02332 #line 679 "yacc.yy" 02333 { 02334 ;} 02335 break; 02336 02337 case 139: 02338 #line 682 "yacc.yy" 02339 { 02340 ;} 02341 break; 02342 02343 case 140: 02344 #line 689 "yacc.yy" 02345 { 02346 ;} 02347 break; 02348 02349 case 141: 02350 #line 692 "yacc.yy" 02351 { 02352 ;} 02353 break; 02354 02355 case 142: 02356 #line 695 "yacc.yy" 02357 { 02358 ;} 02359 break; 02360 02361 case 143: 02362 #line 698 "yacc.yy" 02363 { 02364 ;} 02365 break; 02366 02367 case 144: 02368 #line 701 "yacc.yy" 02369 { 02370 ;} 02371 break; 02372 02373 case 145: 02374 #line 706 "yacc.yy" 02375 { yyval._int = 0; ;} 02376 break; 02377 02378 case 146: 02379 #line 707 "yacc.yy" 02380 { yyval._int = 1; ;} 02381 break; 02382 02383 case 152: 02384 #line 716 "yacc.yy" 02385 { 02386 if (dcop_area || dcop_signal_area) { 02387 QString* tmp = 0; 02388 tmp = new QString( 02389 " <%4>\n" 02390 " %2\n" 02391 " <NAME>%1</NAME>" 02392 "%3\n" 02393 " </%5>\n"); 02394 *tmp = tmp->arg( *(yyvsp[-4]._str) ); 02395 *tmp = tmp->arg( *(yyvsp[-5]._str) ); 02396 *tmp = tmp->arg( *(yyvsp[-2]._str) ); 02397 02398 QString tagname = (dcop_signal_area) ? "SIGNAL" : "FUNC"; 02399 QString attr = (yyvsp[0]._int) ? " qual=\"const\"" : ""; 02400 *tmp = tmp->arg( QString("%1%2").arg(tagname).arg(attr) ); 02401 *tmp = tmp->arg( QString("%1").arg(tagname) ); 02402 yyval._str = tmp; 02403 } else 02404 yyval._str = new QString(""); 02405 ;} 02406 break; 02407 02408 case 153: 02409 #line 738 "yacc.yy" 02410 { 02411 if (dcop_area) 02412 yyerror("operators aren't allowed in dcop areas!"); 02413 yyval._str = new QString(""); 02414 ;} 02415 break; 02416 02417 case 154: 02418 #line 748 "yacc.yy" 02419 {;} 02420 break; 02421 02422 case 155: 02423 #line 749 "yacc.yy" 02424 {;} 02425 break; 02426 02427 case 156: 02428 #line 750 "yacc.yy" 02429 {;} 02430 break; 02431 02432 case 157: 02433 #line 755 "yacc.yy" 02434 {;} 02435 break; 02436 02437 case 158: 02438 #line 760 "yacc.yy" 02439 {;} 02440 break; 02441 02442 case 159: 02443 #line 761 "yacc.yy" 02444 {;} 02445 break; 02446 02447 case 160: 02448 #line 766 "yacc.yy" 02449 { 02450 yyval._str = yyvsp[-1]._str; 02451 ;} 02452 break; 02453 02454 case 161: 02455 #line 770 "yacc.yy" 02456 { 02457 yyval._str = yyvsp[-3]._str; 02458 ;} 02459 break; 02460 02461 case 162: 02462 #line 774 "yacc.yy" 02463 { 02464 yyval._str = yyvsp[-1]._str; 02465 ;} 02466 break; 02467 02468 case 163: 02469 #line 778 "yacc.yy" 02470 { 02471 /* The constructor */ 02472 assert(!dcop_area); 02473 yyval._str = new QString(""); 02474 ;} 02475 break; 02476 02477 case 164: 02478 #line 784 "yacc.yy" 02479 { 02480 /* The constructor */ 02481 assert(!dcop_area); 02482 yyval._str = new QString(""); 02483 ;} 02484 break; 02485 02486 case 165: 02487 #line 790 "yacc.yy" 02488 { 02489 /* The destructor */ 02490 assert(!dcop_area); 02491 yyval._str = new QString(""); 02492 ;} 02493 break; 02494 02495 case 166: 02496 #line 796 "yacc.yy" 02497 { 02498 if (dcop_area) { 02499 if (dcop_signal_area) 02500 yyerror("DCOP signals cannot be static"); 02501 else 02502 yyerror("DCOP functions cannot be static"); 02503 } else { 02504 yyval._str = new QString(); 02505 } 02506 ;} 02507 break; 02508 02509 case 167: 02510 #line 809 "yacc.yy" 02511 { 02512 function_mode = 1; 02513 ;} 02514 break; 02515 02516 case 171: 02517 #line 821 "yacc.yy" 02518 {;} 02519 break; 02520 02521 case 172: 02522 #line 822 "yacc.yy" 02523 {;} 02524 break; 02525 02526 case 176: 02527 #line 834 "yacc.yy" 02528 {;} 02529 break; 02530 02531 case 177: 02532 #line 835 "yacc.yy" 02533 {;} 02534 break; 02535 02536 case 178: 02537 #line 836 "yacc.yy" 02538 {;} 02539 break; 02540 02541 case 179: 02542 #line 839 "yacc.yy" 02543 {;} 02544 break; 02545 02546 case 180: 02547 #line 843 "yacc.yy" 02548 {;} 02549 break; 02550 02551 case 181: 02552 #line 844 "yacc.yy" 02553 {;} 02554 break; 02555 02556 case 182: 02557 #line 845 "yacc.yy" 02558 {;} 02559 break; 02560 02561 case 183: 02562 #line 846 "yacc.yy" 02563 {;} 02564 break; 02565 02566 case 184: 02567 #line 847 "yacc.yy" 02568 {;} 02569 break; 02570 02571 02572 } 02573 02574 /* Line 1010 of yacc.c. */ 02575 #line 2576 "yacc.cc" 02576 02577 yyvsp -= yylen; 02578 yyssp -= yylen; 02579 02580 02581 YY_STACK_PRINT (yyss, yyssp); 02582 02583 *++yyvsp = yyval; 02584 02585 02586 /* Now `shift' the result of the reduction. Determine what state 02587 that goes to, based on the state we popped back to and the rule 02588 number reduced by. */ 02589 02590 yyn = yyr1[yyn]; 02591 02592 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 02593 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 02594 yystate = yytable[yystate]; 02595 else 02596 yystate = yydefgoto[yyn - YYNTOKENS]; 02597 02598 goto yynewstate; 02599 02600 02601 /*------------------------------------. 02602 | yyerrlab -- here on detecting error | 02603 `------------------------------------*/ 02604 yyerrlab: 02605 /* If not already recovering from an error, report this error. */ 02606 if (!yyerrstatus) 02607 { 02608 ++yynerrs; 02609 #if YYERROR_VERBOSE 02610 yyn = yypact[yystate]; 02611 02612 if (YYPACT_NINF < yyn && yyn < YYLAST) 02613 { 02614 YYSIZE_T yysize = 0; 02615 int yytype = YYTRANSLATE (yychar); 02616 const char* yyprefix; 02617 char *yymsg; 02618 int yyx; 02619 02620 /* Start YYX at -YYN if negative to avoid negative indexes in 02621 YYCHECK. */ 02622 int yyxbegin = yyn < 0 ? -yyn : 0; 02623 02624 /* Stay within bounds of both yycheck and yytname. */ 02625 int yychecklim = YYLAST - yyn; 02626 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 02627 int yycount = 0; 02628 02629 yyprefix = ", expecting "; 02630 for (yyx = yyxbegin; yyx < yyxend; ++yyx) 02631 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) 02632 { 02633 yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]); 02634 yycount += 1; 02635 if (yycount == 5) 02636 { 02637 yysize = 0; 02638 break; 02639 } 02640 } 02641 yysize += (sizeof ("syntax error, unexpected ") 02642 + yystrlen (yytname[yytype])); 02643 yymsg = (char *) YYSTACK_ALLOC (yysize); 02644 if (yymsg != 0) 02645 { 02646 char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); 02647 yyp = yystpcpy (yyp, yytname[yytype]); 02648 02649 if (yycount < 5) 02650 { 02651 yyprefix = ", expecting "; 02652 for (yyx = yyxbegin; yyx < yyxend; ++yyx) 02653 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) 02654 { 02655 yyp = yystpcpy (yyp, yyprefix); 02656 yyp = yystpcpy (yyp, yytname[yyx]); 02657 yyprefix = " or "; 02658 } 02659 } 02660 yyerror (yymsg); 02661 YYSTACK_FREE (yymsg); 02662 } 02663 else 02664 yyerror ("syntax error; also virtual memory exhausted"); 02665 } 02666 else 02667 #endif /* YYERROR_VERBOSE */ 02668 yyerror ("syntax error"); 02669 } 02670 02671 02672 02673 if (yyerrstatus == 3) 02674 { 02675 /* If just tried and failed to reuse lookahead token after an 02676 error, discard it. */ 02677 02678 if (yychar <= YYEOF) 02679 { 02680 /* If at end of input, pop the error token, 02681 then the rest of the stack, then return failure. */ 02682 if (yychar == YYEOF) 02683 for (;;) 02684 { 02685 YYPOPSTACK; 02686 if (yyssp == yyss) 02687 YYABORT; 02688 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); 02689 yydestruct (yystos[*yyssp], yyvsp); 02690 } 02691 } 02692 else 02693 { 02694 YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); 02695 yydestruct (yytoken, &yylval); 02696 yychar = YYEMPTY; 02697 02698 } 02699 } 02700 02701 /* Else will try to reuse lookahead token after shifting the error 02702 token. */ 02703 goto yyerrlab1; 02704 02705 02706 /*---------------------------------------------------. 02707 | yyerrorlab -- error raised explicitly by YYERROR. | 02708 `---------------------------------------------------*/ 02709 yyerrorlab: 02710 02711 #ifdef __GNUC__ 02712 /* Pacify GCC when the user code never invokes YYERROR and the label 02713 yyerrorlab therefore never appears in user code. */ 02714 if (0) 02715 goto yyerrorlab; 02716 #endif 02717 02718 yyvsp -= yylen; 02719 yyssp -= yylen; 02720 yystate = *yyssp; 02721 goto yyerrlab1; 02722 02723 02724 /*-------------------------------------------------------------. 02725 | yyerrlab1 -- common code for both syntax error and YYERROR. | 02726 `-------------------------------------------------------------*/ 02727 yyerrlab1: 02728 yyerrstatus = 3; /* Each real token shifted decrements this. */ 02729 02730 for (;;) 02731 { 02732 yyn = yypact[yystate]; 02733 if (yyn != YYPACT_NINF) 02734 { 02735 yyn += YYTERROR; 02736 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 02737 { 02738 yyn = yytable[yyn]; 02739 if (0 < yyn) 02740 break; 02741 } 02742 } 02743 02744 /* Pop the current state because it cannot handle the error token. */ 02745 if (yyssp == yyss) 02746 YYABORT; 02747 02748 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); 02749 yydestruct (yystos[yystate], yyvsp); 02750 YYPOPSTACK; 02751 yystate = *yyssp; 02752 YY_STACK_PRINT (yyss, yyssp); 02753 } 02754 02755 if (yyn == YYFINAL) 02756 YYACCEPT; 02757 02758 YYDPRINTF ((stderr, "Shifting error token, ")); 02759 02760 *++yyvsp = yylval; 02761 02762 02763 yystate = yyn; 02764 goto yynewstate; 02765 02766 02767 /*-------------------------------------. 02768 | yyacceptlab -- YYACCEPT comes here. | 02769 `-------------------------------------*/ 02770 yyacceptlab: 02771 yyresult = 0; 02772 goto yyreturn; 02773 02774 /*-----------------------------------. 02775 | yyabortlab -- YYABORT comes here. | 02776 `-----------------------------------*/ 02777 yyabortlab: 02778 yyresult = 1; 02779 goto yyreturn; 02780 02781 #ifndef yyoverflow 02782 /*----------------------------------------------. 02783 | yyoverflowlab -- parser overflow comes here. | 02784 `----------------------------------------------*/ 02785 yyoverflowlab: 02786 yyerror ("parser stack overflow"); 02787 yyresult = 2; 02788 /* Fall through. */ 02789 #endif 02790 02791 yyreturn: 02792 #ifndef yyoverflow 02793 if (yyss != yyssa) 02794 YYSTACK_FREE (yyss); 02795 #endif 02796 return yyresult; 02797 } 02798 02799 02800 #line 850 "yacc.yy" 02801 02802 02803 void dcopidlParse( const char *_code ) 02804 { 02805 dcopidlInitFlex( _code ); 02806 yyparse(); 02807 } 02808
KDE Logo
This file is part of the documentation for dcop Library Version 3.4.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Apr 12 22:45:30 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003