dcop Library API Documentation

yacc.cc

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