Changeset 10705
- Timestamp:
- 2005-10-07T10:33:14+13:00 (18 years ago)
- Location:
- trunk/gsdl/src/recpt
- Files:
-
- 2 added
- 2 deleted
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/src/recpt/z3950cfg.h
r1369 r10705 7 7 #ifndef _Z3950CFG_H 8 8 #define _Z3950CFG_H 9 10 #include <stdio.h> // for FILE* type 11 12 #ifdef __cplusplus 13 extern "C" { 14 #endif 9 15 10 16 struct z3950aboutlist { … … 26 32 extern struct z3950cfg *zserver_list; 27 33 extern FILE *errfile; 34 35 /* can't use default yyparse(), as this name is used elsewhere (eg mg)*/ 36 #define yyin zconfigin 37 #define yyout zconfigout 38 #define yyparse zconfigparse 39 #define yylex zconfiglex 40 41 int yyparse (); 42 43 #ifdef __cplusplus 44 } 28 45 #endif 46 47 #endif -
trunk/gsdl/src/recpt/z3950proto.cpp
r10440 r10705 30 30 #include "filter.h" 31 31 // z39.50 yaz stuff 32 #include <stdio.h> // for (FILE *) type for yyin and fopen. 33 // config file parsing stuff 34 extern "C" { 32 35 33 #include "z3950cfg.h" // for reading in config files - 36 34 // defines "struct z3950cfg *zserver_list" as the head of the list. 37 } 35 38 36 // note! yyin is hash-defined in z3950cfg.h to something else, to avoid 39 37 // name conflicts with "other" yyins. 40 //extern "C" { 41 FILE *yyin; 42 FILE *yyout; // redirect for `errors' (unmatched tokens in flex) 43 //} 44 extern "C" { 45 extern int zconfigparse(); 46 } 47 38 extern FILE *yyin; 39 extern FILE *yyout; // redirect for `errors' (unmatched tokens in flex) 48 40 49 41 … … 81 73 yyout=errfile; 82 74 83 // zconfigparse() is defined in zparse.tab.c,84 // which is the bison output of zparse.y85 75 86 76 char *filename_str=filename.getcstr(); … … 92 82 } 93 83 delete []filename_str; 94 zconfigparse(); 84 85 // this is in zparse.tab.c, 86 // which is the bison output of zparse.y 87 yyparse(); 95 88 96 89 if (errfile!=stderr) -
trunk/gsdl/src/recpt/zparse.tab.c
r1941 r10705 1 2 /* A Bison parser, made from zparse.y 3 by GNU Bison version 1.28 */ 4 5 #define YYBISON 1 /* Identify Bison output. */ 6 7 #define GSDLVERSION 257 8 #define GENERAL_SECTION 258 9 #define SEARCH_SECTION 259 10 #define BROWSE_SECTION 260 11 #define MACROS_SECTION 261 12 #define MAINTAINER 262 13 #define PUBLIC 263 14 #define TRUE 264 15 #define FALSE 265 16 #define LANGUAGES 266 17 #define EN 267 18 #define FR 268 19 #define MI 269 20 #define ZH 270 21 #define DE 271 22 #define NAME 272 23 #define STRING 273 24 #define ICON 274 25 #define SMALLICON 275 26 #define ABOUT 276 27 #define SEARCHTEXT 277 28 #define DOCUMENT 278 29 #define SECTION 279 30 #define BROWSE 280 31 #define TYPE 281 32 #define FORMAT 282 33 #define LIST 283 34 #define SORTEDLIST 284 35 #define SECTIONLIST 285 36 #define SORTEDSECTIONLIST 286 37 #define DATELIST 287 38 #define ICONLINK 288 39 #define TEXTLINK 289 40 #define DOCUMENTIMAGES 290 41 #define DOCUMENTHEADER 291 42 #define DOCUMENTTEXT 292 43 #define DOCUMENTBUTTONS 293 44 #define DOCUMENTARROWSBOTTOM 294 45 #define DATA 295 46 1 /* A Bison parser, made by GNU Bison 1.875. */ 2 3 /* Skeleton parser for Yacc-like parsing with Bison, 4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc. 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2, or (at your option) 9 any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program; if not, write to the Free Software 18 Foundation, Inc., 59 Temple Place - Suite 330, 19 Boston, MA 02111-1307, USA. */ 20 21 /* As a special exception, when this file is copied by Bison into a 22 Bison output file, you may use that output file without restriction. 23 This special exception was added by the Free Software Foundation 24 in version 1.24 of Bison. */ 25 26 /* Written by Richard Stallman by simplifying the original so called 27 ``semantic'' parser. */ 28 29 /* All symbols defined below should begin with yy or YY, to avoid 30 infringing on user name space. This should be done even for local 31 variables, as they might otherwise be expanded by user macros. 32 There are some unavoidable exceptions within include files to 33 define necessary library symbols; they are noted "INFRINGES ON 34 USER NAME SPACE" below. */ 35 36 /* Identify Bison output. */ 37 #define YYBISON 1 38 39 /* Skeleton name. */ 40 #define YYSKELETON_NAME "yacc.c" 41 42 /* Pure parsers. */ 43 #define YYPURE 0 44 45 /* Using locations. */ 46 #define YYLSP_NEEDED 0 47 48 49 50 /* Tokens. */ 51 #ifndef YYTOKENTYPE 52 # define YYTOKENTYPE 53 /* Put the tokens into the symbol table, so that GDB and other debuggers 54 know about them. */ 55 enum yytokentype { 56 GSDLVERSION = 257, 57 GENERAL_SECTION = 258, 58 SEARCH_SECTION = 259, 59 BROWSE_SECTION = 260, 60 MACROS_SECTION = 261, 61 MAINTAINER = 262, 62 PUBLIC = 263, 63 TRUE = 264, 64 FALSE = 265, 65 LANGUAGES = 266, 66 EN = 267, 67 FR = 268, 68 MI = 269, 69 ZH = 270, 70 DE = 271, 71 NAME = 272, 72 STRING = 273, 73 ICON = 274, 74 SMALLICON = 275, 75 ABOUT = 276, 76 SEARCHTEXT = 277, 77 DOCUMENT = 278, 78 SECTION = 279, 79 BROWSE = 280, 80 TYPE = 281, 81 FORMAT = 282, 82 LIST = 283, 83 SORTEDLIST = 284, 84 SECTIONLIST = 285, 85 SORTEDSECTIONLIST = 286, 86 DATELIST = 287, 87 ICONLINK = 288, 88 TEXTLINK = 289, 89 DOCUMENTIMAGES = 290, 90 DOCUMENTHEADER = 291, 91 DOCUMENTTEXT = 292, 92 DOCUMENTBUTTONS = 293, 93 DOCUMENTARROWSBOTTOM = 294, 94 DATA = 295 95 }; 96 #endif 97 #define GSDLVERSION 257 98 #define GENERAL_SECTION 258 99 #define SEARCH_SECTION 259 100 #define BROWSE_SECTION 260 101 #define MACROS_SECTION 261 102 #define MAINTAINER 262 103 #define PUBLIC 263 104 #define TRUE 264 105 #define FALSE 265 106 #define LANGUAGES 266 107 #define EN 267 108 #define FR 268 109 #define MI 269 110 #define ZH 270 111 #define DE 271 112 #define NAME 272 113 #define STRING 273 114 #define ICON 274 115 #define SMALLICON 275 116 #define ABOUT 276 117 #define SEARCHTEXT 277 118 #define DOCUMENT 278 119 #define SECTION 279 120 #define BROWSE 280 121 #define TYPE 281 122 #define FORMAT 282 123 #define LIST 283 124 #define SORTEDLIST 284 125 #define SECTIONLIST 285 126 #define SORTEDSECTIONLIST 286 127 #define DATELIST 287 128 #define ICONLINK 288 129 #define TEXTLINK 289 130 #define DOCUMENTIMAGES 290 131 #define DOCUMENTHEADER 291 132 #define DOCUMENTTEXT 292 133 #define DOCUMENTBUTTONS 293 134 #define DOCUMENTARROWSBOTTOM 294 135 #define DATA 295 136 137 138 139 140 /* Copy the first part of user declarations. */ 47 141 #line 27 "zparse.y" 48 142 … … 52 146 #include <string.h> 53 147 #include <ctype.h> 54 #include "z3950cfg.h" 148 #include "z3950cfg.h" /* structure types, and #define of yyin/yyparse */ 55 149 56 150 #define YYDEBUG 1 57 151 #define YYERROR_VERBOSE 1 58 /* can't use default yyparse(), as this name is used elsewhere (eg mg)*/59 #define yyin zconfigin60 #define yyparse zconfigparse61 152 char defLanguage=0; 62 153 … … 81 172 82 173 83 #line 64 "zparse.y" 84 typedef union { 174 175 /* Enabling traces. */ 176 #ifndef YYDEBUG 177 # define YYDEBUG 0 178 #endif 179 180 /* Enabling verbose error messages. */ 181 #ifdef YYERROR_VERBOSE 182 # undef YYERROR_VERBOSE 183 # define YYERROR_VERBOSE 1 184 #else 185 # define YYERROR_VERBOSE 0 186 #endif 187 188 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) 189 #line 61 "zparse.y" 190 typedef union YYSTYPE { 85 191 char *string; 86 192 struct z3950cfg *cfg; … … 88 194 int number; 89 195 } YYSTYPE; 90 #include <stdio.h> 91 92 #ifndef __cplusplus 93 #ifndef __STDC__ 94 #define const 95 #endif 96 #endif 97 98 99 100 #define YYFINAL 37 101 #define YYFLAG -32768 102 #define YYNTBASE 44 103 104 #define YYTRANSLATE(x) ((unsigned)(x) <= 295 ? yytranslate[x] : 56) 105 106 static const char yytranslate[] = { 0, 107 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 108 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 109 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 110 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 111 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 112 2, 2, 2, 2, 2, 2, 2, 42, 2, 2, 113 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 114 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 115 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 116 2, 2, 2, 2, 43, 2, 2, 2, 2, 2, 117 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 118 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 119 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 120 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 121 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 122 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 123 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 124 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 125 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 126 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 127 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 128 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 129 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 130 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 131 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 132 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, 133 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 134 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 135 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 136 37, 38, 39, 40, 41 196 /* Line 191 of yacc.c. */ 197 #line 197 "zparse.tab.c" 198 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 199 # define YYSTYPE_IS_DECLARED 1 200 # define YYSTYPE_IS_TRIVIAL 1 201 #endif 202 203 204 205 /* Copy the second part of user declarations. */ 206 207 208 /* Line 214 of yacc.c. */ 209 #line 209 "zparse.tab.c" 210 211 #if ! defined (yyoverflow) || YYERROR_VERBOSE 212 213 /* The parser invokes alloca or malloc; define the necessary symbols. */ 214 215 # if YYSTACK_USE_ALLOCA 216 # define YYSTACK_ALLOC alloca 217 # else 218 # ifndef YYSTACK_USE_ALLOCA 219 # if defined (alloca) || defined (_ALLOCA_H) 220 # define YYSTACK_ALLOC alloca 221 # else 222 # ifdef __GNUC__ 223 # define YYSTACK_ALLOC __builtin_alloca 224 # endif 225 # endif 226 # endif 227 # endif 228 229 # ifdef YYSTACK_ALLOC 230 /* Pacify GCC's `empty if-body' warning. */ 231 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 232 # else 233 # if defined (__STDC__) || defined (__cplusplus) 234 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 235 # define YYSIZE_T size_t 236 # endif 237 # define YYSTACK_ALLOC malloc 238 # define YYSTACK_FREE free 239 # endif 240 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ 241 242 243 #if (! defined (yyoverflow) \ 244 && (! defined (__cplusplus) \ 245 || (YYSTYPE_IS_TRIVIAL))) 246 247 /* A type that is properly aligned for any stack member. */ 248 union yyalloc 249 { 250 short yyss; 251 YYSTYPE yyvs; 252 }; 253 254 /* The size of the maximum gap between one aligned stack and the next. */ 255 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 256 257 /* The size of an array large to enough to hold all stacks, each with 258 N elements. */ 259 # define YYSTACK_BYTES(N) \ 260 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ 261 + YYSTACK_GAP_MAXIMUM) 262 263 /* Copy COUNT objects from FROM to TO. The source and destination do 264 not overlap. */ 265 # ifndef YYCOPY 266 # if 1 < __GNUC__ 267 # define YYCOPY(To, From, Count) \ 268 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 269 # else 270 # define YYCOPY(To, From, Count) \ 271 do \ 272 { \ 273 register YYSIZE_T yyi; \ 274 for (yyi = 0; yyi < (Count); yyi++) \ 275 (To)[yyi] = (From)[yyi]; \ 276 } \ 277 while (0) 278 # endif 279 # endif 280 281 /* Relocate STACK from its old location to the new one. The 282 local variables YYSIZE and YYSTACKSIZE give the old and new number of 283 elements in the stack, and YYPTR gives the new location of the 284 stack. Advance YYPTR to a properly aligned location for the next 285 stack. */ 286 # define YYSTACK_RELOCATE(Stack) \ 287 do \ 288 { \ 289 YYSIZE_T yynewbytes; \ 290 YYCOPY (&yyptr->Stack, Stack, yysize); \ 291 Stack = &yyptr->Stack; \ 292 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 293 yyptr += yynewbytes / sizeof (*yyptr); \ 294 } \ 295 while (0) 296 297 #endif 298 299 #if defined (__STDC__) || defined (__cplusplus) 300 typedef signed char yysigned_char; 301 #else 302 typedef short yysigned_char; 303 #endif 304 305 /* YYFINAL -- State number of the termination state. */ 306 #define YYFINAL 4 307 /* YYLAST -- Last index in YYTABLE. */ 308 #define YYLAST 44 309 310 /* YYNTOKENS -- Number of terminals. */ 311 #define YYNTOKENS 44 312 /* YYNNTS -- Number of nonterminals. */ 313 #define YYNNTS 13 314 /* YYNRULES -- Number of rules. */ 315 #define YYNRULES 28 316 /* YYNRULES -- Number of states. */ 317 #define YYNSTATES 37 318 319 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 320 #define YYUNDEFTOK 2 321 #define YYMAXUTOK 296 322 323 #define YYTRANSLATE(YYX) \ 324 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 325 326 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 327 static const unsigned char yytranslate[] = 328 { 329 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 334 2, 2, 2, 2, 2, 2, 2, 2, 42, 2, 335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 338 2, 2, 2, 2, 2, 43, 2, 2, 2, 2, 339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 352 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 353 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 354 2, 2, 2, 2, 2, 2, 1, 3, 4, 5, 355 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 356 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 357 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 358 36, 37, 38, 39, 40, 41, 2 137 359 }; 138 360 139 #if YYDEBUG != 0 140 static const short yyprhs[] = { 0, 141 0, 3, 5, 7, 8, 11, 13, 22, 24, 26, 142 27, 30, 31, 34, 37, 38, 41, 44, 45, 47, 143 48, 50, 53, 57, 60, 64, 66 361 #if YYDEBUG 362 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 363 YYRHS. */ 364 static const unsigned char yyprhs[] = 365 { 366 0, 0, 3, 6, 8, 10, 11, 14, 16, 25, 367 27, 29, 30, 33, 34, 37, 40, 41, 44, 47, 368 48, 50, 51, 53, 56, 60, 63, 67, 69 144 369 }; 145 370 146 static const short yyrhs[] = { 45, 147 46, 0, 45, 0, 3, 0, 0, 46, 47, 0, 148 47, 0, 41, 41, 49, 41, 48, 50, 51, 52, 149 0, 1, 0, 19, 0, 0, 42, 41, 0, 0, 150 20, 19, 0, 20, 41, 0, 0, 21, 19, 0, 151 21, 41, 0, 0, 53, 0, 0, 54, 0, 53, 152 54, 0, 22, 55, 19, 0, 22, 19, 0, 41, 153 43, 41, 0, 41, 0, 1, 0 371 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 372 static const yysigned_char yyrhs[] = 373 { 374 45, 0, -1, 46, 47, -1, 46, -1, 3, -1, 375 -1, 47, 48, -1, 48, -1, 41, 41, 50, 41, 376 49, 51, 52, 53, -1, 1, -1, 19, -1, -1, 377 42, 41, -1, -1, 20, 19, -1, 20, 41, -1, 378 -1, 21, 19, -1, 21, 41, -1, -1, 54, -1, 379 -1, 55, -1, 54, 55, -1, 22, 56, 19, -1, 380 22, 19, -1, 41, 43, 41, -1, 41, -1, 1, 381 -1 154 382 }; 155 383 156 #endif 157 158 #if YYDEBUG != 0 159 static const short yyrline[] = { 0, 160 109, 110, 113, 114, 116, 117, 119, 140, 144, 145, 161 150, 151, 154, 155, 158, 159, 160, 165, 167, 168, 162 170, 172, 175, 186, 208, 216, 224 384 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 385 static const unsigned char yyrline[] = 386 { 387 0, 106, 106, 107, 110, 111, 113, 114, 116, 137, 388 141, 142, 147, 148, 151, 152, 155, 156, 157, 162, 389 164, 165, 167, 169, 172, 183, 205, 213, 221 163 390 }; 164 391 #endif 165 392 166 167 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE) 168 169 static const char * const yytname[] = { "$","error","$undefined.","GSDLVERSION", 170 "GENERAL_SECTION","SEARCH_SECTION","BROWSE_SECTION","MACROS_SECTION","MAINTAINER", 171 "PUBLIC","TRUE","FALSE","LANGUAGES","EN","FR","MI","ZH","DE","NAME","STRING", 172 "ICON","SMALLICON","ABOUT","SEARCHTEXT","DOCUMENT","SECTION","BROWSE","TYPE", 173 "FORMAT","LIST","SORTEDLIST","SECTIONLIST","SORTEDSECTIONLIST","DATELIST","ICONLINK", 174 "TEXTLINK","DOCUMENTIMAGES","DOCUMENTHEADER","DOCUMENTTEXT","DOCUMENTBUTTONS", 175 "DOCUMENTARROWSBOTTOM","DATA","':'","'_'","z3950","version","zserverlist","zserver", 176 "name","port","icon","smallicon","about","aboutList","aboutLang","lang", NULL 393 #if YYDEBUG || YYERROR_VERBOSE 394 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 395 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 396 static const char *const yytname[] = 397 { 398 "$end", "error", "$undefined", "GSDLVERSION", "GENERAL_SECTION", 399 "SEARCH_SECTION", "BROWSE_SECTION", "MACROS_SECTION", "MAINTAINER", 400 "PUBLIC", "TRUE", "FALSE", "LANGUAGES", "EN", "FR", "MI", "ZH", "DE", 401 "NAME", "STRING", "ICON", "SMALLICON", "ABOUT", "SEARCHTEXT", 402 "DOCUMENT", "SECTION", "BROWSE", "TYPE", "FORMAT", "LIST", "SORTEDLIST", 403 "SECTIONLIST", "SORTEDSECTIONLIST", "DATELIST", "ICONLINK", "TEXTLINK", 404 "DOCUMENTIMAGES", "DOCUMENTHEADER", "DOCUMENTTEXT", "DOCUMENTBUTTONS", 405 "DOCUMENTARROWSBOTTOM", "DATA", "':'", "'_'", "$accept", "z3950", 406 "version", "zserverlist", "zserver", "name", "port", "icon", 407 "smallicon", "about", "aboutList", "aboutLang", "lang", 0 177 408 }; 178 409 #endif 179 410 180 static const short yyr1[] = { 0, 181 44, 44, 45, 45, 46, 46, 47, 47, 48, 48, 182 49, 49, 50, 50, 50, 51, 51, 51, 52, 52, 183 53, 53, 54, 54, 55, 55, 55 411 # ifdef YYPRINT 412 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 413 token YYLEX-NUM. */ 414 static const unsigned short yytoknum[] = 415 { 416 0, 256, 296, 257, 258, 259, 260, 261, 262, 263, 417 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 418 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 419 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 420 294, 295, 58, 95 184 421 }; 185 186 static const short yyr2[] = { 0, 187 2, 1, 1, 0, 2, 1, 8, 1, 1, 0, 188 2, 0, 2, 2, 0, 2, 2, 0, 1, 0, 189 1, 2, 3, 2, 3, 1, 1 422 # endif 423 424 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 425 static const unsigned char yyr1[] = 426 { 427 0, 44, 45, 45, 46, 46, 47, 47, 48, 48, 428 49, 49, 50, 50, 51, 51, 51, 52, 52, 52, 429 53, 53, 54, 54, 55, 55, 56, 56, 56 190 430 }; 191 431 192 static const short yydefact[] = { 4, 193 3, 0, 8, 0, 0, 6, 12, 5, 0, 0, 194 11, 10, 9, 15, 0, 18, 13, 14, 0, 20, 195 16, 17, 0, 7, 19, 21, 27, 24, 26, 0, 196 22, 0, 23, 25, 0, 0, 0 432 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 433 static const unsigned char yyr2[] = 434 { 435 0, 2, 2, 1, 1, 0, 2, 1, 8, 1, 436 1, 0, 2, 0, 2, 2, 0, 2, 2, 0, 437 1, 0, 1, 2, 3, 2, 3, 1, 1 197 438 }; 198 439 199 static const short yydefgoto[] = { 35, 200 2, 5, 6, 14, 10, 16, 20, 24, 25, 26, 201 30 440 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state 441 STATE-NUM when YYTABLE doesn't specify something else to do. Zero 442 means the default is an error. */ 443 static const unsigned char yydefact[] = 444 { 445 5, 4, 0, 0, 1, 9, 0, 0, 7, 13, 446 6, 0, 0, 12, 11, 10, 16, 0, 19, 14, 447 15, 0, 21, 17, 18, 0, 8, 20, 22, 28, 448 25, 27, 0, 23, 0, 24, 26 202 449 }; 203 450 204 static const short yypact[] = { 4, 205 -32768, 0,-32768, -33, 2,-32768, -32,-32768, -30, -29, 206 -32768, -10,-32768, -7, -14, -6,-32768,-32768, -13, -8, 207 -32768,-32768, 3,-32768, -8,-32768,-32768,-32768, -27, -2,208 -32768, -23,-32768,-32768, 19, 20,-32768 451 /* YYDEFGOTO[NTERM-NUM]. */ 452 static const yysigned_char yydefgoto[] = 453 { 454 -1, 2, 3, 7, 8, 16, 12, 18, 22, 26, 455 27, 28, 32 209 456 }; 210 457 211 static const short yypgoto[] = {-32768, 212 -32768,-32768, 16,-32768,-32768,-32768,-32768,-32768,-32768, -1, 213 -32768 458 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 459 STATE-NUM. */ 460 #define YYPACT_NINF -33 461 static const yysigned_char yypact[] = 462 { 463 4, -33, 8, 0, -33, -33, -32, 2, -33, -31, 464 -33, -29, -28, -33, -9, -33, -6, -14, -5, -33, 465 -33, -13, -7, -33, -33, 3, -33, -7, -33, -33, 466 -33, -26, -1, -33, -22, -33, -33 214 467 }; 215 468 216 217 #define YYLAST 44 218 219 220 static const short yytable[] = { -2, 221 3, -1, 3, 27, 17, 21, 1, 7, 13, 9, 222 11, 12, 15, 23, 19, 32, 33, 34, 36, 37, 223 8, 28, 0, 31, 0, 0, 18, 22, 0, 0, 224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225 4, 0, 4, 29 469 /* YYPGOTO[NTERM-NUM]. */ 470 static const yysigned_char yypgoto[] = 471 { 472 -33, -33, -33, -33, 13, -33, -33, -33, -33, -33, 473 -33, -4, -33 226 474 }; 227 475 228 static const short yycheck[] = { 0, 229 1, 0, 1, 1, 19, 19, 3, 41, 19, 42, 230 41, 41, 20, 22, 21, 43, 19, 41, 0, 0, 231 5, 19, -1, 25, -1, -1, 41, 41, -1, -1, 232 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 233 41, -1, 41, 41 476 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 477 positive, shift that token. If negative, reduce the rule which 478 number is the opposite. If zero, do what YYDEFACT says. 479 If YYTABLE_NINF, syntax error. */ 480 #define YYTABLE_NINF -4 481 static const yysigned_char yytable[] = 482 { 483 -3, 5, -2, 5, 29, 19, 23, 1, 4, 9, 484 15, 11, 13, 14, 17, 25, 21, 34, 35, 36, 485 10, 0, 30, 33, 0, 0, 0, 20, 24, 0, 486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 487 0, 6, 0, 6, 31 234 488 }; 235 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ 236 #line 3 "/usr/share/bison.simple" 237 /* This file comes from bison-1.28. */ 238 239 /* Skeleton output parser for bison, 240 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. 241 242 This program is free software; you can redistribute it and/or modify 243 it under the terms of the GNU General Public License as published by 244 the Free Software Foundation; either version 2, or (at your option) 245 any later version. 246 247 This program is distributed in the hope that it will be useful, 248 but WITHOUT ANY WARRANTY; without even the implied warranty of 249 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 250 GNU General Public License for more details. 251 252 You should have received a copy of the GNU General Public License 253 along with this program; if not, write to the Free Software 254 Foundation, Inc., 59 Temple Place - Suite 330, 255 Boston, MA 02111-1307, USA. */ 256 257 /* As a special exception, when this file is copied by Bison into a 258 Bison output file, you may use that output file without restriction. 259 This special exception was added by the Free Software Foundation 260 in version 1.24 of Bison. */ 261 262 /* This is the parser code that is written into each bison parser 263 when the %semantic_parser declaration is not specified in the grammar. 264 It was written by Richard Stallman by simplifying the hairy parser 265 used when %semantic_parser is specified. */ 266 267 #ifndef YYSTACK_USE_ALLOCA 268 #ifdef alloca 269 #define YYSTACK_USE_ALLOCA 270 #else /* alloca not defined */ 271 #ifdef __GNUC__ 272 #define YYSTACK_USE_ALLOCA 273 #define alloca __builtin_alloca 274 #else /* not GNU C. */ 275 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) 276 #define YYSTACK_USE_ALLOCA 277 #include <alloca.h> 278 #else /* not sparc */ 279 /* We think this test detects Watcom and Microsoft C. */ 280 /* This used to test MSDOS, but that is a bad idea 281 since that symbol is in the user namespace. */ 282 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) 283 #if 0 /* No need for malloc.h, which pollutes the namespace; 284 instead, just don't use alloca. */ 285 #include <malloc.h> 286 #endif 287 #else /* not MSDOS, or __TURBOC__ */ 288 #if defined(_AIX) 289 /* I don't know what this was needed for, but it pollutes the namespace. 290 So I turned it off. rms, 2 May 1997. */ 291 /* #include <malloc.h> */ 292 #pragma alloca 293 #define YYSTACK_USE_ALLOCA 294 #else /* not MSDOS, or __TURBOC__, or _AIX */ 295 #if 0 296 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, 297 and on HPUX 10. Eventually we can turn this on. */ 298 #define YYSTACK_USE_ALLOCA 299 #define alloca __builtin_alloca 300 #endif /* __hpux */ 301 #endif 302 #endif /* not _AIX */ 303 #endif /* not MSDOS, or __TURBOC__ */ 304 #endif /* not sparc */ 305 #endif /* not GNU C */ 306 #endif /* alloca not defined */ 307 #endif /* YYSTACK_USE_ALLOCA not defined */ 308 309 #ifdef YYSTACK_USE_ALLOCA 310 #define YYSTACK_ALLOC alloca 311 #else 312 #define YYSTACK_ALLOC malloc 313 #endif 314 315 /* Note: there must be only one dollar sign in this file. 316 It is replaced by the list of actions, each action 317 as one case of the switch. */ 489 490 static const yysigned_char yycheck[] = 491 { 492 0, 1, 0, 1, 1, 19, 19, 3, 0, 41, 493 19, 42, 41, 41, 20, 22, 21, 43, 19, 41, 494 7, -1, 19, 27, -1, -1, -1, 41, 41, -1, 495 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 496 -1, 41, -1, 41, 41 497 }; 498 499 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 500 symbol of state STATE-NUM. */ 501 static const unsigned char yystos[] = 502 { 503 0, 3, 45, 46, 0, 1, 41, 47, 48, 41, 504 48, 42, 50, 41, 41, 19, 49, 20, 51, 19, 505 41, 21, 52, 19, 41, 22, 53, 54, 55, 1, 506 19, 41, 56, 55, 43, 19, 41 507 }; 508 509 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) 510 # define YYSIZE_T __SIZE_TYPE__ 511 #endif 512 #if ! defined (YYSIZE_T) && defined (size_t) 513 # define YYSIZE_T size_t 514 #endif 515 #if ! defined (YYSIZE_T) 516 # if defined (__STDC__) || defined (__cplusplus) 517 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 518 # define YYSIZE_T size_t 519 # endif 520 #endif 521 #if ! defined (YYSIZE_T) 522 # define YYSIZE_T unsigned int 523 #endif 318 524 319 525 #define yyerrok (yyerrstatus = 0) 320 526 #define yyclearin (yychar = YYEMPTY) 321 #define YYEMPTY -2527 #define YYEMPTY (-2) 322 528 #define YYEOF 0 529 323 530 #define YYACCEPT goto yyacceptlab 324 #define YYABORT 531 #define YYABORT goto yyabortlab 325 532 #define YYERROR goto yyerrlab1 326 /* Like YYERROR except do call yyerror. 327 This remains here temporarily to ease the 328 transition to the new meaning of YYERROR, for GCC. 533 534 535 /* Like YYERROR except do call yyerror. This remains here temporarily 536 to ease the transition to the new meaning of YYERROR, for GCC. 329 537 Once GCC version 2 has supplanted version 1, this can go. */ 538 330 539 #define YYFAIL goto yyerrlab 540 331 541 #define YYRECOVERING() (!!yyerrstatus) 332 #define YYBACKUP(token, value) \ 542 543 #define YYBACKUP(Token, Value) \ 333 544 do \ 334 545 if (yychar == YYEMPTY && yylen == 1) \ 335 { yychar = (token), yylval = (value); \ 336 yychar1 = YYTRANSLATE (yychar); \ 546 { \ 547 yychar = (Token); \ 548 yylval = (Value); \ 549 yytoken = YYTRANSLATE (yychar); \ 337 550 YYPOPSTACK; \ 338 551 goto yybackup; \ 339 552 } \ 340 553 else \ 341 { yyerror ("syntax error: cannot back up"); YYERROR; } \ 554 { \ 555 yyerror ("syntax error: cannot back up");\ 556 YYERROR; \ 557 } \ 342 558 while (0) 343 559 … … 345 561 #define YYERRCODE 256 346 562 347 #ifndef YYPURE 348 #define YYLEX yylex() 349 #endif 350 351 #ifdef YYPURE 352 #ifdef YYLSP_NEEDED 563 /* YYLLOC_DEFAULT -- Compute the default location (before the actions 564 are run). */ 565 566 #ifndef YYLLOC_DEFAULT 567 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 568 Current.first_line = Rhs[1].first_line; \ 569 Current.first_column = Rhs[1].first_column; \ 570 Current.last_line = Rhs[N].last_line; \ 571 Current.last_column = Rhs[N].last_column; 572 #endif 573 574 /* YYLEX -- calling `yylex' with the right arguments. */ 575 353 576 #ifdef YYLEX_PARAM 354 # define YYLEX yylex(&yylval, &yylloc,YYLEX_PARAM)577 # define YYLEX yylex (YYLEX_PARAM) 355 578 #else 356 #define YYLEX yylex(&yylval, &yylloc) 357 #endif 358 #else /* not YYLSP_NEEDED */ 359 #ifdef YYLEX_PARAM 360 #define YYLEX yylex(&yylval, YYLEX_PARAM) 579 # define YYLEX yylex () 580 #endif 581 582 /* Enable debugging if requested. */ 583 #if YYDEBUG 584 585 # ifndef YYFPRINTF 586 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 587 # define YYFPRINTF fprintf 588 # endif 589 590 # define YYDPRINTF(Args) \ 591 do { \ 592 if (yydebug) \ 593 YYFPRINTF Args; \ 594 } while (0) 595 596 # define YYDSYMPRINT(Args) \ 597 do { \ 598 if (yydebug) \ 599 yysymprint Args; \ 600 } while (0) 601 602 # define YYDSYMPRINTF(Title, Token, Value, Location) \ 603 do { \ 604 if (yydebug) \ 605 { \ 606 YYFPRINTF (stderr, "%s ", Title); \ 607 yysymprint (stderr, \ 608 Token, Value); \ 609 YYFPRINTF (stderr, "\n"); \ 610 } \ 611 } while (0) 612 613 /*------------------------------------------------------------------. 614 | yy_stack_print -- Print the state stack from its BOTTOM up to its | 615 | TOP (cinluded). | 616 `------------------------------------------------------------------*/ 617 618 #if defined (__STDC__) || defined (__cplusplus) 619 static void 620 yy_stack_print (short *bottom, short *top) 361 621 #else 362 #define YYLEX yylex(&yylval) 363 #endif 364 #endif /* not YYLSP_NEEDED */ 365 #endif 366 367 /* If nonreentrant, generate the variables here */ 368 369 #ifndef YYPURE 370 371 int yychar; /* the lookahead symbol */ 372 YYSTYPE yylval; /* the semantic value of the */ 373 /* lookahead symbol */ 374 375 #ifdef YYLSP_NEEDED 376 YYLTYPE yylloc; /* location data for the lookahead */ 377 /* symbol */ 378 #endif 379 380 int yynerrs; /* number of parse errors so far */ 381 #endif /* not YYPURE */ 382 383 #if YYDEBUG != 0 384 int yydebug; /* nonzero means print parse trace */ 385 /* Since this is uninitialized, it does not stop multiple parsers 386 from coexisting. */ 387 #endif 388 389 /* YYINITDEPTH indicates the initial size of the parser's stacks */ 390 622 static void 623 yy_stack_print (bottom, top) 624 short *bottom; 625 short *top; 626 #endif 627 { 628 YYFPRINTF (stderr, "Stack now"); 629 for (/* Nothing. */; bottom <= top; ++bottom) 630 YYFPRINTF (stderr, " %d", *bottom); 631 YYFPRINTF (stderr, "\n"); 632 } 633 634 # define YY_STACK_PRINT(Bottom, Top) \ 635 do { \ 636 if (yydebug) \ 637 yy_stack_print ((Bottom), (Top)); \ 638 } while (0) 639 640 641 /*------------------------------------------------. 642 | Report that the YYRULE is going to be reduced. | 643 `------------------------------------------------*/ 644 645 #if defined (__STDC__) || defined (__cplusplus) 646 static void 647 yy_reduce_print (int yyrule) 648 #else 649 static void 650 yy_reduce_print (yyrule) 651 int yyrule; 652 #endif 653 { 654 int yyi; 655 unsigned int yylineno = yyrline[yyrule]; 656 YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", 657 yyrule - 1, yylineno); 658 /* Print the symbols being reduced, and their result. */ 659 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) 660 YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); 661 YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); 662 } 663 664 # define YY_REDUCE_PRINT(Rule) \ 665 do { \ 666 if (yydebug) \ 667 yy_reduce_print (Rule); \ 668 } while (0) 669 670 /* Nonzero means print parse trace. It is left uninitialized so that 671 multiple parsers can coexist. */ 672 int yydebug; 673 #else /* !YYDEBUG */ 674 # define YYDPRINTF(Args) 675 # define YYDSYMPRINT(Args) 676 # define YYDSYMPRINTF(Title, Token, Value, Location) 677 # define YY_STACK_PRINT(Bottom, Top) 678 # define YY_REDUCE_PRINT(Rule) 679 #endif /* !YYDEBUG */ 680 681 682 /* YYINITDEPTH -- initial size of the parser's stacks. */ 391 683 #ifndef YYINITDEPTH 392 #define YYINITDEPTH 200 393 #endif 394 395 /* YYMAXDEPTH is the maximum size the stacks can grow to 396 (effective only if the built-in stack extension method is used). */ 684 # define YYINITDEPTH 200 685 #endif 686 687 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 688 if the built-in stack extension method is used). 689 690 Do not make this value too large; the results are undefined if 691 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) 692 evaluated with infinite-precision integer arithmetic. */ 397 693 398 694 #if YYMAXDEPTH == 0 399 # undef YYMAXDEPTH695 # undef YYMAXDEPTH 400 696 #endif 401 697 402 698 #ifndef YYMAXDEPTH 403 #define YYMAXDEPTH 10000 404 #endif 405 406 407 /* Define __yy_memcpy. Note that the size argument 408 should be passed with type unsigned int, because that is what the non-GCC 409 definitions require. With GCC, __builtin_memcpy takes an arg 410 of type size_t, but it can handle unsigned int. */ 411 412 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ 413 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) 414 #else /* not GNU C or C++ */ 415 #ifndef __cplusplus 416 417 /* This is the most reliable way to avoid incompatibilities 418 in available built-in functions on various systems. */ 699 # define YYMAXDEPTH 10000 700 #endif 701 702 703 704 705 #if YYERROR_VERBOSE 706 707 # ifndef yystrlen 708 # if defined (__GLIBC__) && defined (_STRING_H) 709 # define yystrlen strlen 710 # else 711 /* Return the length of YYSTR. */ 712 static YYSIZE_T 713 # if defined (__STDC__) || defined (__cplusplus) 714 yystrlen (const char *yystr) 715 # else 716 yystrlen (yystr) 717 const char *yystr; 718 # endif 719 { 720 register const char *yys = yystr; 721 722 while (*yys++ != '\0') 723 continue; 724 725 return yys - yystr - 1; 726 } 727 # endif 728 # endif 729 730 # ifndef yystpcpy 731 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) 732 # define yystpcpy stpcpy 733 # else 734 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 735 YYDEST. */ 736 static char * 737 # if defined (__STDC__) || defined (__cplusplus) 738 yystpcpy (char *yydest, const char *yysrc) 739 # else 740 yystpcpy (yydest, yysrc) 741 char *yydest; 742 const char *yysrc; 743 # endif 744 { 745 register char *yyd = yydest; 746 register const char *yys = yysrc; 747 748 while ((*yyd++ = *yys++) != '\0') 749 continue; 750 751 return yyd - 1; 752 } 753 # endif 754 # endif 755 756 #endif /* !YYERROR_VERBOSE */ 757 758 759 760 761 #if YYDEBUG 762 /*--------------------------------. 763 | Print this symbol on YYOUTPUT. | 764 `--------------------------------*/ 765 766 #if defined (__STDC__) || defined (__cplusplus) 419 767 static void 420 __yy_memcpy (to, from, count) 421 char *to; 422 char *from; 423 unsigned int count; 424 { 425 register char *f = from; 426 register char *t = to; 427 register int i = count; 428 429 while (i-- > 0) 430 *t++ = *f++; 768 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) 769 #else 770 static void 771 yysymprint (yyoutput, yytype, yyvaluep) 772 FILE *yyoutput; 773 int yytype; 774 YYSTYPE *yyvaluep; 775 #endif 776 { 777 /* Pacify ``unused variable'' warnings. */ 778 (void) yyvaluep; 779 780 if (yytype < YYNTOKENS) 781 { 782 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 783 # ifdef YYPRINT 784 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 785 # endif 786 } 787 else 788 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 789 790 switch (yytype) 791 { 792 default: 793 break; 794 } 795 YYFPRINTF (yyoutput, ")"); 431 796 } 432 797 433 #else /* __cplusplus */ 434 435 /* This is the most reliable way to avoid incompatibilities 436 in available built-in functions on various systems. */ 798 #endif /* ! YYDEBUG */ 799 /*-----------------------------------------------. 800 | Release the memory associated to this symbol. | 801 `-----------------------------------------------*/ 802 803 #if defined (__STDC__) || defined (__cplusplus) 437 804 static void 438 __yy_memcpy (char *to, char *from, unsigned int count) 439 { 440 register char *t = to; 441 register char *f = from; 442 register int i = count; 443 444 while (i-- > 0) 445 *t++ = *f++; 805 yydestruct (int yytype, YYSTYPE *yyvaluep) 806 #else 807 static void 808 yydestruct (yytype, yyvaluep) 809 int yytype; 810 YYSTYPE *yyvaluep; 811 #endif 812 { 813 /* Pacify ``unused variable'' warnings. */ 814 (void) yyvaluep; 815 816 switch (yytype) 817 { 818 819 default: 820 break; 821 } 446 822 } 447 823 448 #endif 449 #endif 450 451 452 #line 217 "/usr/share/bison.simple" 453 454 /* The user can define YYPARSE_PARAM as the name of an argument to be passed 455 into yyparse. The argument should have type void *. 456 It should actually point to an object. 457 Grammar actions can access the variable by casting it 458 to the proper pointer type. */ 824 825 826 /* Prevent warnings from -Wmissing-prototypes. */ 459 827 460 828 #ifdef YYPARSE_PARAM 461 #ifdef __cplusplus 462 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM 463 #define YYPARSE_PARAM_DECL 464 #else /* not __cplusplus */ 465 #define YYPARSE_PARAM_ARG YYPARSE_PARAM 466 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; 467 #endif /* not __cplusplus */ 468 #else /* not YYPARSE_PARAM */ 469 #define YYPARSE_PARAM_ARG 470 #define YYPARSE_PARAM_DECL 471 #endif /* not YYPARSE_PARAM */ 472 473 /* Prevent warning if -Wstrict-prototypes. */ 474 #ifdef __GNUC__ 829 # if defined (__STDC__) || defined (__cplusplus) 830 int yyparse (void *YYPARSE_PARAM); 831 # else 832 int yyparse (); 833 # endif 834 #else /* ! YYPARSE_PARAM */ 835 #if defined (__STDC__) || defined (__cplusplus) 836 int yyparse (void); 837 #else 838 int yyparse (); 839 #endif 840 #endif /* ! YYPARSE_PARAM */ 841 842 843 844 /* The lookahead symbol. */ 845 int yychar; 846 847 /* The semantic value of the lookahead symbol. */ 848 YYSTYPE yylval; 849 850 /* Number of syntax errors so far. */ 851 int yynerrs; 852 853 854 855 /*----------. 856 | yyparse. | 857 `----------*/ 858 475 859 #ifdef YYPARSE_PARAM 476 int yyparse (void *); 860 # if defined (__STDC__) || defined (__cplusplus) 861 int yyparse (void *YYPARSE_PARAM) 862 # else 863 int yyparse (YYPARSE_PARAM) 864 void *YYPARSE_PARAM; 865 # endif 866 #else /* ! YYPARSE_PARAM */ 867 #if defined (__STDC__) || defined (__cplusplus) 868 int 869 yyparse (void) 477 870 #else 478 int yyparse (void);479 #endif480 #endif481 482 871 int 483 yyparse(YYPARSE_PARAM_ARG) 484 YYPARSE_PARAM_DECL 485 { 872 yyparse () 873 874 #endif 875 #endif 876 { 877 486 878 register int yystate; 487 879 register int yyn; 880 int yyresult; 881 /* Number of tokens to shift before error messages enabled. */ 882 int yyerrstatus; 883 /* Lookahead token as an internal (translated) token number. */ 884 int yytoken = 0; 885 886 /* Three stacks and their tools: 887 `yyss': related to states, 888 `yyvs': related to semantic values, 889 `yyls': related to locations. 890 891 Refer to the stacks thru separate pointers, to allow yyoverflow 892 to reallocate them elsewhere. */ 893 894 /* The state stack. */ 895 short yyssa[YYINITDEPTH]; 896 short *yyss = yyssa; 488 897 register short *yyssp; 898 899 /* The semantic value stack. */ 900 YYSTYPE yyvsa[YYINITDEPTH]; 901 YYSTYPE *yyvs = yyvsa; 489 902 register YYSTYPE *yyvsp; 490 int yyerrstatus; /* number of tokens to shift before error messages enabled */ 491 int yychar1 = 0; /* lookahead token as an internal (translated) token number */ 492 493 short yyssa[YYINITDEPTH]; /* the state stack */ 494 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ 495 496 short *yyss = yyssa; /* refer to the stacks thru separate pointers */ 497 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ 498 499 #ifdef YYLSP_NEEDED 500 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ 501 YYLTYPE *yyls = yylsa; 502 YYLTYPE *yylsp; 503 504 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) 505 #else 903 904 905 506 906 #define YYPOPSTACK (yyvsp--, yyssp--) 507 #endif 508 509 int yystacksize = YYINITDEPTH; 510 int yyfree_stacks = 0; 511 512 #ifdef YYPURE 513 int yychar; 514 YYSTYPE yylval; 515 int yynerrs; 516 #ifdef YYLSP_NEEDED 517 YYLTYPE yylloc; 518 #endif 519 #endif 520 521 YYSTYPE yyval; /* the variable used to return */ 522 /* semantic values from the action */ 523 /* routines */ 524 907 908 YYSIZE_T yystacksize = YYINITDEPTH; 909 910 /* The variables used to return semantic value and location from the 911 action routines. */ 912 YYSTYPE yyval; 913 914 915 /* When reducing, the number of symbols on the RHS of the reduced 916 rule. */ 525 917 int yylen; 526 918 527 #if YYDEBUG != 0 528 if (yydebug) 529 fprintf(stderr, "Starting parse\n"); 530 #endif 919 YYDPRINTF ((stderr, "Starting parse\n")); 531 920 532 921 yystate = 0; … … 540 929 The wasted elements are never initialized. */ 541 930 542 yyssp = yyss - 1;931 yyssp = yyss; 543 932 yyvsp = yyvs; 544 #ifdef YYLSP_NEEDED 545 yylsp = yyls; 546 #endif 547 548 /* Push a new state, which is found in yystate . */ 549 /* In all cases, when you get here, the value and location stacks 550 have just been pushed. so pushing a state here evens the stacks. */ 551 yynewstate: 552 553 *++yyssp = yystate; 554 555 if (yyssp >= yyss + yystacksize - 1) 933 934 goto yysetstate; 935 936 /*------------------------------------------------------------. 937 | yynewstate -- Push a new state, which is found in yystate. | 938 `------------------------------------------------------------*/ 939 yynewstate: 940 /* In all cases, when you get here, the value and location stacks 941 have just been pushed. so pushing a state here evens the stacks. 942 */ 943 yyssp++; 944 945 yysetstate: 946 *yyssp = yystate; 947 948 if (yyss + yystacksize - 1 <= yyssp) 556 949 { 557 /* Give user a chance to reallocate the stack */558 /* Use copies of these so that the &'s don't force the real ones into memory. */559 YYSTYPE *yyvs1 = yyvs;560 short *yyss1 = yyss;561 #ifdef YYLSP_NEEDED562 YYLTYPE *yyls1 = yyls;563 #endif564 565 950 /* Get the current used size of the three stacks, in elements. */ 566 intsize = yyssp - yyss + 1;951 YYSIZE_T yysize = yyssp - yyss + 1; 567 952 568 953 #ifdef yyoverflow 569 /* Each stack pointer address is followed by the size of570 the data in use in that stack, in bytes. */571 #ifdef YYLSP_NEEDED 572 /* This used to be a conditional around just the two extra args, 573 but that might be undefined if yyoverflow is a macro. */574 yyoverflow("parser stack overflow", 575 &yyss1, size * sizeof (*yyssp), 576 &yyvs1, size * sizeof (*yyvsp), 577 &yyls1, size * sizeof (*yylsp),578 &yystacksize);579 #else 580 yyoverflow("parser stack overflow", 581 &yyss1, size * sizeof (*yyssp),582 &yyvs1, size * sizeof (*yyvsp),583 &yystacksize);584 #endif 585 586 yyss = yyss1; yyvs = yyvs1; 587 #ifdef YYLSP_NEEDED 588 yyls = yyls1;589 #endif 954 { 955 /* Give user a chance to reallocate the stack. Use copies of 956 these so that the &'s don't force the real ones into 957 memory. */ 958 YYSTYPE *yyvs1 = yyvs; 959 short *yyss1 = yyss; 960 961 962 /* Each stack pointer address is followed by the size of the 963 data in use in that stack, in bytes. This used to be a 964 conditional around just the two extra args, but that might 965 be undefined if yyoverflow is a macro. */ 966 yyoverflow ("parser stack overflow", 967 &yyss1, yysize * sizeof (*yyssp), 968 &yyvs1, yysize * sizeof (*yyvsp), 969 970 &yystacksize); 971 972 yyss = yyss1; 973 yyvs = yyvs1; 974 } 590 975 #else /* no yyoverflow */ 976 # ifndef YYSTACK_RELOCATE 977 goto yyoverflowlab; 978 # else 591 979 /* Extend the stack our own way. */ 592 if (yystacksize >= YYMAXDEPTH) 593 { 594 yyerror("parser stack overflow"); 595 if (yyfree_stacks) 596 { 597 free (yyss); 598 free (yyvs); 599 #ifdef YYLSP_NEEDED 600 free (yyls); 601 #endif 602 } 603 return 2; 604 } 980 if (YYMAXDEPTH <= yystacksize) 981 goto yyoverflowlab; 605 982 yystacksize *= 2; 606 if ( yystacksize > YYMAXDEPTH)983 if (YYMAXDEPTH < yystacksize) 607 984 yystacksize = YYMAXDEPTH; 608 #ifndef YYSTACK_USE_ALLOCA 609 yyfree_stacks = 1; 610 #endif 611 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); 612 __yy_memcpy ((char *)yyss, (char *)yyss1, 613 size * (unsigned int) sizeof (*yyssp)); 614 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); 615 __yy_memcpy ((char *)yyvs, (char *)yyvs1, 616 size * (unsigned int) sizeof (*yyvsp)); 617 #ifdef YYLSP_NEEDED 618 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); 619 __yy_memcpy ((char *)yyls, (char *)yyls1, 620 size * (unsigned int) sizeof (*yylsp)); 621 #endif 985 986 { 987 short *yyss1 = yyss; 988 union yyalloc *yyptr = 989 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 990 if (! yyptr) 991 goto yyoverflowlab; 992 YYSTACK_RELOCATE (yyss); 993 YYSTACK_RELOCATE (yyvs); 994 995 # undef YYSTACK_RELOCATE 996 if (yyss1 != yyssa) 997 YYSTACK_FREE (yyss1); 998 } 999 # endif 622 1000 #endif /* no yyoverflow */ 623 1001 624 yyssp = yyss + size - 1; 625 yyvsp = yyvs + size - 1; 626 #ifdef YYLSP_NEEDED 627 yylsp = yyls + size - 1; 628 #endif 629 630 #if YYDEBUG != 0 631 if (yydebug) 632 fprintf(stderr, "Stack size increased to %d\n", yystacksize); 633 #endif 634 635 if (yyssp >= yyss + yystacksize - 1) 1002 yyssp = yyss + yysize - 1; 1003 yyvsp = yyvs + yysize - 1; 1004 1005 1006 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 1007 (unsigned long int) yystacksize)); 1008 1009 if (yyss + yystacksize - 1 <= yyssp) 636 1010 YYABORT; 637 1011 } 638 1012 639 #if YYDEBUG != 0 640 if (yydebug) 641 fprintf(stderr, "Entering state %d\n", yystate); 642 #endif 1013 YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 643 1014 644 1015 goto yybackup; 645 yybackup: 1016 1017 /*-----------. 1018 | yybackup. | 1019 `-----------*/ 1020 yybackup: 646 1021 647 1022 /* Do appropriate processing given the current state. */ … … 652 1027 653 1028 yyn = yypact[yystate]; 654 if (yyn == YY FLAG)1029 if (yyn == YYPACT_NINF) 655 1030 goto yydefault; 656 1031 657 1032 /* Not known => get a lookahead token if don't already have one. */ 658 1033 659 /* yychar is either YYEMPTY or YYEOF 660 or a valid token in external form. */ 661 1034 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 662 1035 if (yychar == YYEMPTY) 663 1036 { 664 #if YYDEBUG != 0 665 if (yydebug) 666 fprintf(stderr, "Reading a token: "); 667 #endif 1037 YYDPRINTF ((stderr, "Reading a token: ")); 668 1038 yychar = YYLEX; 669 1039 } 670 1040 671 /* Convert token to internal form (in yychar1) for indexing tables with */ 672 673 if (yychar <= 0) /* This means end of input. */ 1041 if (yychar <= YYEOF) 674 1042 { 675 yychar1 = 0; 676 yychar = YYEOF; /* Don't call YYLEX any more */ 677 678 #if YYDEBUG != 0 679 if (yydebug) 680 fprintf(stderr, "Now at end of input.\n"); 681 #endif 1043 yychar = yytoken = YYEOF; 1044 YYDPRINTF ((stderr, "Now at end of input.\n")); 682 1045 } 683 1046 else 684 1047 { 685 yychar1 = YYTRANSLATE(yychar); 686 687 #if YYDEBUG != 0 688 if (yydebug) 689 { 690 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); 691 /* Give the individual parser a way to print the precise meaning 692 of a token, for further debugging info. */ 693 #ifdef YYPRINT 694 YYPRINT (stderr, yychar, yylval); 695 #endif 696 fprintf (stderr, ")\n"); 697 } 698 #endif 1048 yytoken = YYTRANSLATE (yychar); 1049 YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); 699 1050 } 700 1051 701 yyn += yychar1; 702 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) 1052 /* If the proper action on seeing token YYTOKEN is to reduce or to 1053 detect an error, take that action. */ 1054 yyn += yytoken; 1055 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 703 1056 goto yydefault; 704 705 1057 yyn = yytable[yyn]; 706 707 /* yyn is what to do for this token type in this state. 708 Negative => reduce, -yyn is rule number. 709 Positive => shift, yyn is new state. 710 New state is final state => don't bother to shift, 711 just return success. 712 0, or most negative number => error. */ 713 714 if (yyn < 0) 1058 if (yyn <= 0) 715 1059 { 716 if (yyn == YYFLAG)1060 if (yyn == 0 || yyn == YYTABLE_NINF) 717 1061 goto yyerrlab; 718 1062 yyn = -yyn; 719 1063 goto yyreduce; 720 1064 } 721 else if (yyn == 0)722 goto yyerrlab;723 1065 724 1066 if (yyn == YYFINAL) … … 726 1068 727 1069 /* Shift the lookahead token. */ 728 729 #if YYDEBUG != 0 730 if (yydebug) 731 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); 732 #endif 1070 YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); 733 1071 734 1072 /* Discard the token being shifted unless it is eof. */ … … 737 1075 738 1076 *++yyvsp = yylval; 739 #ifdef YYLSP_NEEDED 740 *++yylsp = yylloc; 741 #endif 742 743 /* count tokens shifted since error; after three, turn off error status. */744 if (yyerrstatus)yyerrstatus--;1077 1078 1079 /* Count tokens shifted since error; after three, turn off error 1080 status. */ 1081 if (yyerrstatus) 1082 yyerrstatus--; 745 1083 746 1084 yystate = yyn; 747 1085 goto yynewstate; 748 1086 749 /* Do the default action for the current state. */ 1087 1088 /*-----------------------------------------------------------. 1089 | yydefault -- do the default action for the current state. | 1090 `-----------------------------------------------------------*/ 750 1091 yydefault: 751 752 1092 yyn = yydefact[yystate]; 753 1093 if (yyn == 0) 754 1094 goto yyerrlab; 755 756 /* Do a reduction. yyn is the number of a rule to reduce with. */ 1095 goto yyreduce; 1096 1097 1098 /*-----------------------------. 1099 | yyreduce -- Do a reduction. | 1100 `-----------------------------*/ 757 1101 yyreduce: 1102 /* yyn is the number of a rule to reduce with. */ 758 1103 yylen = yyr2[yyn]; 759 if (yylen > 0) 760 yyval = yyvsp[1-yylen]; /* implement default value of the action */ 761 762 #if YYDEBUG != 0 763 if (yydebug) 1104 1105 /* If YYLEN is nonzero, implement the default value of the action: 1106 `$$ = $1'. 1107 1108 Otherwise, the following line sets YYVAL to garbage. 1109 This behavior is undocumented and Bison 1110 users should not rely upon it. Assigning to YYVAL 1111 unconditionally makes the parser a bit smaller, and it avoids a 1112 GCC warning that YYVAL may be used uninitialized. */ 1113 yyval = yyvsp[1-yylen]; 1114 1115 1116 YY_REDUCE_PRINT (yyn); 1117 switch (yyn) 764 1118 { 765 int i; 766 767 fprintf (stderr, "Reducing via rule %d (line %d), ", 768 yyn, yyrline[yyn]); 769 770 /* Print the symbols being reduced, and their result. */ 771 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) 772 fprintf (stderr, "%s ", yytname[yyrhs[i]]); 773 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); 774 } 775 #endif 776 777 778 switch (yyn) { 779 780 case 1: 781 #line 109 "zparse.y" 782 {zserver_list=yyvsp[0].cfg;; 783 break;} 784 case 2: 1119 case 2: 1120 #line 106 "zparse.y" 1121 {zserver_list=yyvsp[0].cfg;} 1122 break; 1123 1124 case 3: 1125 #line 107 "zparse.y" 1126 {zserver_list=NULL;} 1127 break; 1128 1129 case 4: 785 1130 #line 110 "zparse.y" 786 {zserver_list=NULL;; 787 break;} 788 case 3: 1131 {;} 1132 break; 1133 1134 case 5: 1135 #line 111 "zparse.y" 1136 {fprintf(errfile,"No version - not GSDL config file?\n");return(1);} 1137 break; 1138 1139 case 6: 789 1140 #line 113 "zparse.y" 790 {;; 791 break;} 792 case 4: 793 #line 114 "zparse.y" 794 {fprintf(errfile,"No version - not GSDL config file?\n");return(1);; 795 break;} 796 case 5: 797 #line 116 "zparse.y" 798 {if (yyvsp[0].cfg!=NULL) {yyvsp[0].cfg->next=yyvsp[-1].cfg;yyval.cfg=yyvsp[0].cfg;}; 799 break;} 800 case 7: 801 #line 120 "zparse.y" 802 { 1141 {if (yyvsp[0].cfg!=NULL) {yyvsp[0].cfg->next=yyvsp[-1].cfg;yyval.cfg=yyvsp[0].cfg;}} 1142 break; 1143 1144 case 8: 1145 #line 117 "zparse.y" 1146 { 803 1147 if (YYRECOVERING) 804 1148 {yyval.cfg=NULL;YYRECOVERING=0;} … … 819 1163 yyval.cfg->next=NULL; 820 1164 } 821 ; 822 break;} 823 case 8: 824 #line 140 "zparse.y" 825 {yyval.cfg=NULL; 826 fprintf(errfile,"discarding zserver (line %d)\n",lineno);; 827 break;} 828 case 9: 829 #line 144 "zparse.y" 830 {;; 831 break;} 832 case 10: 833 #line 145 "zparse.y" 834 {errormsg("Database name needs to be followed by a short " 1165 } 1166 break; 1167 1168 case 9: 1169 #line 137 "zparse.y" 1170 {yyval.cfg=NULL; 1171 fprintf(errfile,"discarding zserver (line %d)\n",lineno);} 1172 break; 1173 1174 case 10: 1175 #line 141 "zparse.y" 1176 {;} 1177 break; 1178 1179 case 11: 1180 #line 142 "zparse.y" 1181 {errormsg("Database name needs to be followed by a short " 835 1182 "descriptive name (enclosed in \" marks)"); 836 1183 yyval.string=NULL; 837 YYRECOVERING=1;; 838 break;} 839 case 11: 840 #line 150 "zparse.y" 841 {yyval.number=atoi(yyvsp[0].string);; 842 break;} 843 case 12: 1184 YYRECOVERING=1;} 1185 break; 1186 1187 case 12: 1188 #line 147 "zparse.y" 1189 {yyval.number=atoi(yyvsp[0].string);} 1190 break; 1191 1192 case 13: 1193 #line 148 "zparse.y" 1194 {yyval.number=210;} 1195 break; 1196 1197 case 14: 844 1198 #line 151 "zparse.y" 845 {yyval.number=210;; 846 break;} 847 case 13: 848 #line 154 "zparse.y" 849 {yyval.string=yyvsp[0].string;; 850 break;} 851 case 14: 1199 {yyval.string=yyvsp[0].string;} 1200 break; 1201 1202 case 15: 1203 #line 152 "zparse.y" 1204 {yyval.string=yyvsp[0].string; 1205 errormsg("Icon must be enclosed in quotes"); 1206 yylex();yylex();} 1207 break; 1208 1209 case 16: 852 1210 #line 155 "zparse.y" 853 {yyval.string=yyvsp[0].string; 854 errormsg("Icon must be enclosed in quotes"); 855 yylex();yylex();; 856 break;} 857 case 15: 858 #line 158 "zparse.y" 859 {yyval.string=NULL;; 860 break;} 861 case 16: 862 #line 159 "zparse.y" 863 {yyval.string=yyvsp[0].string;; 864 break;} 865 case 17: 866 #line 160 "zparse.y" 867 {yyval.string=yyvsp[0].string; 1211 {yyval.string=NULL;} 1212 break; 1213 1214 case 17: 1215 #line 156 "zparse.y" 1216 {yyval.string=yyvsp[0].string;} 1217 break; 1218 1219 case 18: 1220 #line 157 "zparse.y" 1221 {yyval.string=yyvsp[0].string; 868 1222 /* this is because of the ':' */ 869 1223 errormsg("Smallicon must be enclosed in quotes.\n"); 870 1224 yylex();yylex(); 871 ; 872 break;} 873 case 18: 1225 } 1226 break; 1227 1228 case 19: 1229 #line 162 "zparse.y" 1230 {yyval.string=NULL;} 1231 break; 1232 1233 case 20: 1234 #line 164 "zparse.y" 1235 {defLanguage=0;} 1236 break; 1237 1238 case 21: 874 1239 #line 165 "zparse.y" 875 {yyval.string=NULL;; 876 break;} 877 case 19: 1240 {yyval.about=NULL;} 1241 break; 1242 1243 case 22: 878 1244 #line 167 "zparse.y" 879 {defLanguage=0;; 880 break;} 881 case 20: 882 #line 168 "zparse.y" 883 {yyval.about=NULL;; 884 break;} 885 case 21: 886 #line 170 "zparse.y" 887 {;; 888 break;} 889 case 22: 890 #line 172 "zparse.y" 891 {yyval.about=yyvsp[0].about;yyvsp[0].about->next=yyvsp[-1].about;; 892 break;} 893 case 23: 894 #line 176 "zparse.y" 895 { 1245 {;} 1246 break; 1247 1248 case 23: 1249 #line 169 "zparse.y" 1250 {yyval.about=yyvsp[0].about;yyvsp[0].about->next=yyvsp[-1].about;} 1251 break; 1252 1253 case 24: 1254 #line 173 "zparse.y" 1255 { 896 1256 if((yyval.about=malloc(sizeof(struct z3950aboutlist))) 897 1257 ==NULL) { … … 902 1262 yyval.about->text=yyvsp[0].string; 903 1263 yyval.about->next=NULL; 904 ; 905 break;} 906 case 24: 907 #line 187 "zparse.y" 908 { 1264 } 1265 break; 1266 1267 case 25: 1268 #line 184 "zparse.y" 1269 { 909 1270 if (defLanguage) 910 1271 { … … 921 1282 yyval.about->text=yyvsp[0].string; 922 1283 yyval.about->next=NULL; 923 ; 924 break;} 925 case 25: 926 #line 209 "zparse.y" 927 { 1284 } 1285 break; 1286 1287 case 26: 1288 #line 206 "zparse.y" 1289 { 928 1290 yyval.string=malloc(strlen(yyvsp[-2].string)+strlen(yyvsp[0].string)+1); 929 1291 strncpy(yyval.string,yyvsp[-2].string,strlen(yyvsp[-2].string)); … … 931 1293 strncpy(yyval.string+strlen(yyvsp[-2].string)+1,yyvsp[0].string,strlen(yyvsp[0].string)); 932 1294 free(yyvsp[-2].string);free(yyvsp[0].string); 933 ; 934 break;} 935 case 26: 936 #line 216 "zparse.y" 937 {;; 938 break;} 939 case 27: 940 #line 224 "zparse.y" 941 {errormsg("missing language");; 942 break;} 943 } 944 /* the action file gets copied in in place of this dollarsign */ 945 #line 543 "/usr/share/bison.simple" 1295 } 1296 break; 1297 1298 case 27: 1299 #line 213 "zparse.y" 1300 {;} 1301 break; 1302 1303 case 28: 1304 #line 221 "zparse.y" 1305 {errormsg("missing language");} 1306 break; 1307 1308 1309 } 1310 1311 /* Line 999 of yacc.c. */ 1312 #line 1309 "zparse.tab.c" 946 1313 947 1314 948 1315 yyvsp -= yylen; 949 1316 yyssp -= yylen; 950 #ifdef YYLSP_NEEDED 951 yylsp -= yylen; 952 #endif 953 954 #if YYDEBUG != 0 955 if (yydebug) 956 { 957 short *ssp1 = yyss - 1; 958 fprintf (stderr, "state stack now"); 959 while (ssp1 != yyssp) 960 fprintf (stderr, " %d", *++ssp1); 961 fprintf (stderr, "\n"); 962 } 963 #endif 1317 1318 1319 YY_STACK_PRINT (yyss, yyssp); 964 1320 965 1321 *++yyvsp = yyval; 966 1322 967 #ifdef YYLSP_NEEDED 968 yylsp++; 969 if (yylen == 0) 970 { 971 yylsp->first_line = yylloc.first_line; 972 yylsp->first_column = yylloc.first_column; 973 yylsp->last_line = (yylsp-1)->last_line; 974 yylsp->last_column = (yylsp-1)->last_column; 975 yylsp->text = 0; 976 } 977 else 978 { 979 yylsp->last_line = (yylsp+yylen-1)->last_line; 980 yylsp->last_column = (yylsp+yylen-1)->last_column; 981 } 982 #endif 983 984 /* Now "shift" the result of the reduction. 985 Determine what state that goes to, 986 based on the state we popped back to 987 and the rule number reduced by. */ 1323 1324 /* Now `shift' the result of the reduction. Determine what state 1325 that goes to, based on the state we popped back to and the rule 1326 number reduced by. */ 988 1327 989 1328 yyn = yyr1[yyn]; 990 1329 991 yystate = yypgoto[yyn - YYNT BASE] + *yyssp;992 if ( yystate >= 0&& yystate <= YYLAST && yycheck[yystate] == *yyssp)1330 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 1331 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 993 1332 yystate = yytable[yystate]; 994 1333 else 995 yystate = yydefgoto[yyn - YYNT BASE];1334 yystate = yydefgoto[yyn - YYNTOKENS]; 996 1335 997 1336 goto yynewstate; 998 1337 999 yyerrlab: /* here on detecting error */ 1000 1001 if (! yyerrstatus) 1002 /* If not already recovering from an error, report this error. */ 1338 1339 /*------------------------------------. 1340 | yyerrlab -- here on detecting error | 1341 `------------------------------------*/ 1342 yyerrlab: 1343 /* If not already recovering from an error, report this error. */ 1344 if (!yyerrstatus) 1003 1345 { 1004 1346 ++yynerrs; 1005 1006 #ifdef YYERROR_VERBOSE 1347 #if YYERROR_VERBOSE 1007 1348 yyn = yypact[yystate]; 1008 1349 1009 if ( yyn > YYFLAG&& yyn < YYLAST)1350 if (YYPACT_NINF < yyn && yyn < YYLAST) 1010 1351 { 1011 int size = 0; 1012 char *msg; 1013 int x, count; 1014 1015 count = 0; 1016 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ 1017 for (x = (yyn < 0 ? -yyn : 0); 1018 x < (sizeof(yytname) / sizeof(char *)); x++) 1019 if (yycheck[x + yyn] == x) 1020 size += strlen(yytname[x]) + 15, count++; 1021 msg = (char *) malloc(size + 15); 1022 if (msg != 0) 1352 YYSIZE_T yysize = 0; 1353 int yytype = YYTRANSLATE (yychar); 1354 char *yymsg; 1355 int yyx, yycount; 1356 1357 yycount = 0; 1358 /* Start YYX at -YYN if negative to avoid negative indexes in 1359 YYCHECK. */ 1360 for (yyx = yyn < 0 ? -yyn : 0; 1361 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) 1362 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) 1363 yysize += yystrlen (yytname[yyx]) + 15, yycount++; 1364 yysize += yystrlen ("syntax error, unexpected ") + 1; 1365 yysize += yystrlen (yytname[yytype]); 1366 yymsg = (char *) YYSTACK_ALLOC (yysize); 1367 if (yymsg != 0) 1023 1368 { 1024 strcpy(msg, "parse error"); 1025 1026 if (count < 5) 1369 char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); 1370 yyp = yystpcpy (yyp, yytname[yytype]); 1371 1372 if (yycount < 5) 1027 1373 { 1028 count = 0; 1029 for (x = (yyn < 0 ? -yyn : 0); 1030 x < (sizeof(yytname) / sizeof(char *)); x++) 1031 if (yycheck[x + yyn] == x) 1374 yycount = 0; 1375 for (yyx = yyn < 0 ? -yyn : 0; 1376 yyx < (int) (sizeof (yytname) / sizeof (char *)); 1377 yyx++) 1378 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) 1032 1379 { 1033 strcat(msg, count == 0 ? ", expecting `" : " or `");1034 strcat(msg, yytname[x]);1035 strcat(msg, "'");1036 count++;1380 const char *yyq = ! yycount ? ", expecting " : " or "; 1381 yyp = yystpcpy (yyp, yyq); 1382 yyp = yystpcpy (yyp, yytname[yyx]); 1383 yycount++; 1037 1384 } 1038 1385 } 1039 yyerror (msg);1040 free(msg);1386 yyerror (yymsg); 1387 YYSTACK_FREE (yymsg); 1041 1388 } 1042 1389 else 1043 yyerror (" parse error; also virtual memory exceeded");1390 yyerror ("syntax error; also virtual memory exhausted"); 1044 1391 } 1045 1392 else 1046 1393 #endif /* YYERROR_VERBOSE */ 1047 yyerror ("parseerror");1394 yyerror ("syntax error"); 1048 1395 } 1049 1396 1050 goto yyerrlab1; 1051 yyerrlab1: /* here on error raised explicitly by an action */ 1397 1052 1398 1053 1399 if (yyerrstatus == 3) 1054 1400 { 1055 /* if just tried and failed to reuse lookahead token after an error, discard it. */ 1056 1057 /* return failure if at end of input */ 1401 /* If just tried and failed to reuse lookahead token after an 1402 error, discard it. */ 1403 1404 /* Return failure if at end of input. */ 1058 1405 if (yychar == YYEOF) 1406 { 1407 /* Pop the error token. */ 1408 YYPOPSTACK; 1409 /* Pop the rest of the stack. */ 1410 while (yyss < yyssp) 1411 { 1412 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); 1413 yydestruct (yystos[*yyssp], yyvsp); 1414 YYPOPSTACK; 1415 } 1416 YYABORT; 1417 } 1418 1419 YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); 1420 yydestruct (yytoken, &yylval); 1421 yychar = YYEMPTY; 1422 1423 } 1424 1425 /* Else will try to reuse lookahead token after shifting the error 1426 token. */ 1427 goto yyerrlab1; 1428 1429 1430 /*----------------------------------------------------. 1431 | yyerrlab1 -- error raised explicitly by an action. | 1432 `----------------------------------------------------*/ 1433 yyerrlab1: 1434 yyerrstatus = 3; /* Each real token shifted decrements this. */ 1435 1436 for (;;) 1437 { 1438 yyn = yypact[yystate]; 1439 if (yyn != YYPACT_NINF) 1440 { 1441 yyn += YYTERROR; 1442 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 1443 { 1444 yyn = yytable[yyn]; 1445 if (0 < yyn) 1446 break; 1447 } 1448 } 1449 1450 /* Pop the current state because it cannot handle the error token. */ 1451 if (yyssp == yyss) 1059 1452 YYABORT; 1060 1453 1061 #if YYDEBUG != 0 1062 if (yydebug)1063 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);1064 #endif 1065 1066 yychar = YYEMPTY;1454 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); 1455 yydestruct (yystos[yystate], yyvsp); 1456 yyvsp--; 1457 yystate = *--yyssp; 1458 1459 YY_STACK_PRINT (yyss, yyssp); 1067 1460 } 1068 1069 /* Else will try to reuse lookahead token1070 after shifting the error token. */1071 1072 yyerrstatus = 3; /* Each real token shifted decrements this */1073 1074 goto yyerrhandle;1075 1076 yyerrdefault: /* current state does not do anything special for the error token. */1077 1078 #if 01079 /* This is wrong; only states that explicitly want error tokens1080 should shift them. */1081 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/1082 if (yyn) goto yydefault;1083 #endif1084 1085 yyerrpop: /* pop the current state because it cannot handle the error token */1086 1087 if (yyssp == yyss) YYABORT;1088 yyvsp--;1089 yystate = *--yyssp;1090 #ifdef YYLSP_NEEDED1091 yylsp--;1092 #endif1093 1094 #if YYDEBUG != 01095 if (yydebug)1096 {1097 short *ssp1 = yyss - 1;1098 fprintf (stderr, "Error: state stack now");1099 while (ssp1 != yyssp)1100 fprintf (stderr, " %d", *++ssp1);1101 fprintf (stderr, "\n");1102 }1103 #endif1104 1105 yyerrhandle:1106 1107 yyn = yypact[yystate];1108 if (yyn == YYFLAG)1109 goto yyerrdefault;1110 1111 yyn += YYTERROR;1112 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)1113 goto yyerrdefault;1114 1115 yyn = yytable[yyn];1116 if (yyn < 0)1117 {1118 if (yyn == YYFLAG)1119 goto yyerrpop;1120 yyn = -yyn;1121 goto yyreduce;1122 }1123 else if (yyn == 0)1124 goto yyerrpop;1125 1461 1126 1462 if (yyn == YYFINAL) 1127 1463 YYACCEPT; 1128 1464 1129 #if YYDEBUG != 0 1130 if (yydebug) 1131 fprintf(stderr, "Shifting error token, "); 1132 #endif 1465 YYDPRINTF ((stderr, "Shifting error token, ")); 1133 1466 1134 1467 *++yyvsp = yylval; 1135 #ifdef YYLSP_NEEDED 1136 *++yylsp = yylloc; 1137 #endif 1468 1138 1469 1139 1470 yystate = yyn; 1140 1471 goto yynewstate; 1141 1472 1142 yyacceptlab: 1143 /* YYACCEPT comes here. */ 1144 if (yyfree_stacks) 1145 { 1146 free (yyss); 1147 free (yyvs); 1148 #ifdef YYLSP_NEEDED 1149 free (yyls); 1150 #endif 1151 } 1152 return 0; 1153 1154 yyabortlab: 1155 /* YYABORT comes here. */ 1156 if (yyfree_stacks) 1157 { 1158 free (yyss); 1159 free (yyvs); 1160 #ifdef YYLSP_NEEDED 1161 free (yyls); 1162 #endif 1163 } 1164 return 1; 1473 1474 /*-------------------------------------. 1475 | yyacceptlab -- YYACCEPT comes here. | 1476 `-------------------------------------*/ 1477 yyacceptlab: 1478 yyresult = 0; 1479 goto yyreturn; 1480 1481 /*-----------------------------------. 1482 | yyabortlab -- YYABORT comes here. | 1483 `-----------------------------------*/ 1484 yyabortlab: 1485 yyresult = 1; 1486 goto yyreturn; 1487 1488 #ifndef yyoverflow 1489 /*----------------------------------------------. 1490 | yyoverflowlab -- parser overflow comes here. | 1491 `----------------------------------------------*/ 1492 yyoverflowlab: 1493 yyerror ("parser stack overflow"); 1494 yyresult = 2; 1495 /* Fall through. */ 1496 #endif 1497 1498 yyreturn: 1499 #ifndef yyoverflow 1500 if (yyss != yyssa) 1501 YYSTACK_FREE (yyss); 1502 #endif 1503 return yyresult; 1165 1504 } 1166 #line 233 "zparse.y" 1505 1506 1507 #line 106 "zparse.y" 1167 1508 1168 1509 /*int strncasecmp (const char *, const char *,size_t);*/ … … 1188 1529 } 1189 1530 * */ 1531 -
trunk/gsdl/src/recpt/zparse.tab.h
r1347 r10705 1 typedef union { 1 /* A Bison parser, made by GNU Bison 1.875. */ 2 3 /* Skeleton parser for Yacc-like parsing with Bison, 4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc. 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2, or (at your option) 9 any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program; if not, write to the Free Software 18 Foundation, Inc., 59 Temple Place - Suite 330, 19 Boston, MA 02111-1307, USA. */ 20 21 /* As a special exception, when this file is copied by Bison into a 22 Bison output file, you may use that output file without restriction. 23 This special exception was added by the Free Software Foundation 24 in version 1.24 of Bison. */ 25 26 /* Tokens. */ 27 #ifndef YYTOKENTYPE 28 # define YYTOKENTYPE 29 /* Put the tokens into the symbol table, so that GDB and other debuggers 30 know about them. */ 31 enum yytokentype { 32 GSDLVERSION = 257, 33 GENERAL_SECTION = 258, 34 SEARCH_SECTION = 259, 35 BROWSE_SECTION = 260, 36 MACROS_SECTION = 261, 37 MAINTAINER = 262, 38 PUBLIC = 263, 39 TRUE = 264, 40 FALSE = 265, 41 LANGUAGES = 266, 42 EN = 267, 43 FR = 268, 44 MI = 269, 45 ZH = 270, 46 DE = 271, 47 NAME = 272, 48 STRING = 273, 49 ICON = 274, 50 SMALLICON = 275, 51 ABOUT = 276, 52 SEARCHTEXT = 277, 53 DOCUMENT = 278, 54 SECTION = 279, 55 BROWSE = 280, 56 TYPE = 281, 57 FORMAT = 282, 58 LIST = 283, 59 SORTEDLIST = 284, 60 SECTIONLIST = 285, 61 SORTEDSECTIONLIST = 286, 62 DATELIST = 287, 63 ICONLINK = 288, 64 TEXTLINK = 289, 65 DOCUMENTIMAGES = 290, 66 DOCUMENTHEADER = 291, 67 DOCUMENTTEXT = 292, 68 DOCUMENTBUTTONS = 293, 69 DOCUMENTARROWSBOTTOM = 294, 70 DATA = 295 71 }; 72 #endif 73 #define GSDLVERSION 257 74 #define GENERAL_SECTION 258 75 #define SEARCH_SECTION 259 76 #define BROWSE_SECTION 260 77 #define MACROS_SECTION 261 78 #define MAINTAINER 262 79 #define PUBLIC 263 80 #define TRUE 264 81 #define FALSE 265 82 #define LANGUAGES 266 83 #define EN 267 84 #define FR 268 85 #define MI 269 86 #define ZH 270 87 #define DE 271 88 #define NAME 272 89 #define STRING 273 90 #define ICON 274 91 #define SMALLICON 275 92 #define ABOUT 276 93 #define SEARCHTEXT 277 94 #define DOCUMENT 278 95 #define SECTION 279 96 #define BROWSE 280 97 #define TYPE 281 98 #define FORMAT 282 99 #define LIST 283 100 #define SORTEDLIST 284 101 #define SECTIONLIST 285 102 #define SORTEDSECTIONLIST 286 103 #define DATELIST 287 104 #define ICONLINK 288 105 #define TEXTLINK 289 106 #define DOCUMENTIMAGES 290 107 #define DOCUMENTHEADER 291 108 #define DOCUMENTTEXT 292 109 #define DOCUMENTBUTTONS 293 110 #define DOCUMENTARROWSBOTTOM 294 111 #define DATA 295 112 113 114 115 116 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) 117 #line 61 "zparse.y" 118 typedef union YYSTYPE { 2 119 char *string; 3 120 struct z3950cfg *cfg; … … 5 122 int number; 6 123 } YYSTYPE; 7 #define GSDLVERSION 257 8 #define GENERAL_SECTION 258 9 #define SEARCH_SECTION 259 10 #define BROWSE_SECTION 260 11 #define MACROS_SECTION 261 12 #define MAINTAINER 262 13 #define PUBLIC 263 14 #define TRUE 264 15 #define FALSE 265 16 #define LANGUAGES 266 17 #define EN 267 18 #define FR 268 19 #define MI 269 20 #define ZH 270 21 #define DE 271 22 #define NAME 272 23 #define STRING 273 24 #define ICON 274 25 #define SMALLICON 275 26 #define ABOUT 276 27 #define SEARCHTEXT 277 28 #define DOCUMENT 278 29 #define SECTION 279 30 #define BROWSE 280 31 #define TYPE 281 32 #define FORMAT 282 33 #define LIST 283 34 #define SORTEDLIST 284 35 #define SECTIONLIST 285 36 #define SORTEDSECTIONLIST 286 37 #define DATELIST 287 38 #define ICONLINK 288 39 #define TEXTLINK 289 40 #define DOCUMENTIMAGES 290 41 #define DOCUMENTHEADER 291 42 #define DOCUMENTTEXT 292 43 #define DOCUMENTBUTTONS 293 44 #define DOCUMENTARROWSBOTTOM 294 45 #define DATA 295 124 /* Line 1240 of yacc.c. */ 125 #line 125 "zparse.tab.h" 126 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 127 # define YYSTYPE_IS_DECLARED 1 128 # define YYSTYPE_IS_TRIVIAL 1 129 #endif 130 131 extern YYSTYPE yylval; 46 132 47 133 48 extern YYSTYPE yylval; 134 -
trunk/gsdl/src/recpt/zparse.y
r1450 r10705 31 31 #include <string.h> 32 32 #include <ctype.h> 33 #include "z3950cfg.h" 33 #include "z3950cfg.h" /* structure types, and #define of yyin/yyparse */ 34 34 35 35 #define YYDEBUG 1 36 36 #define YYERROR_VERBOSE 1 37 /* can't use default yyparse(), as this name is used elsewhere (eg mg)*/38 #define yyin zconfigin39 #define yyparse zconfigparse40 37 char defLanguage=0; 41 38
Note:
See TracChangeset
for help on using the changeset viewer.