1
/* A Bison parser, made from ./fconfig.y
4
#define YYBISON 1 /* Identify Bison output. */
6
#define yyparse fconfparse
8
#define yyerror fconferror
9
#define yylval fconflval
10
#define yychar fconfchar
11
#define yydebug fconfdebug
12
#define yynerrs fconfnerrs
14
# define STRINGTYPE 258
18
# define MULTIENUMTOK 262
21
# define EXACT_REGEXP 265
22
# define INEXACT_REGEXP 266
25
# define ENUMSEPARATORSTOK 269
26
# define MULTITEXTTYPE 270
28
# define ENUM_IN_FILE 272
29
# define MULTI_ENUM_IN_FILE 273
31
# define FIELDSTOK 275
35
# define TEXTSEARCH 279
37
# define FORMATTOK 281
39
# define SEPARATORTOK 283
40
# define RESTRICTEDTOK 284
41
# define NOSPACESTOK 285
42
# define INTEGERTOK 286
43
# define INPUTDEFAULTTOK 287
44
# define BUILTINTOK 288
45
# define ALLOWANYVALUETOK 289
46
# define REQUIRETOK 290
47
# define APPENDFIELDTOK 291
48
# define SETFIELDTOK 292
49
# define CHANGETOK 293
50
# define DESCRIPTIONTOK 294
52
# define DATABASEINFOTOK 296
53
# define DEBUGMODETOK 297
54
# define KEEPRECTOK 298
55
# define NOTIFYEXPTOK 299
56
# define LIBEXECDIRTOK 300
57
# define SUBMITTERACKTOK 301
58
# define BUSINESSDAYTOK 302
59
# define BUSINESSWEEKTOK 303
60
# define CREATECATEGORYDIRSTOK 304
63
# define MAILFORMATTOK 307
64
# define TOADDRESSESTOK 308
65
# define FROMADDRESSTOK 309
66
# define REPLYTOTOK 310
69
# define HEADERTOK 313
70
# define AUDITTRAILFMTTOK 314
71
# define ADDAUDITTRAILTOK 315
72
# define REQUIRECHANGEREASONTOK 316
73
# define READONLYTOK 317
74
# define BINARYINDEXTOK 318
77
# define AUXFLAGSTOK 321
78
# define PRLISTTOK 322
79
# define MAXPRSTOK 323
80
# define EDITONLYTOK 324
81
# define VIRTUALFORMATTOK 325
82
# define CATPERMSTOK 326
89
extern DatabaseInfo databaseBeingDefined;
90
static FieldDef currField;
91
static ChangeActions currChange;
92
static FieldEdit *currEdit;
93
static QueryFormat *qformat;
94
static FieldList requiredFlds;
95
static InputTemplate *inputTemplate;
96
static MailMessageFormat mailFormat;
101
extern char *takeQString (struct qstring *str);
102
extern char *qStrVal (struct qstring *str);
104
#line 21 "./fconfig.y"
109
struct qstring *qstr;
110
AdmFieldDesc *adm_field_des;
112
StringList *stringlist;
113
InputTemplate *inputlist;
114
MailAddress *mailaddr;
115
MailAddressList *mailaddrlist;
117
# define YYSTYPE yystype
118
# define YYSTYPE_IS_TRIVIAL 1
127
#define YYFLAG -32768
130
/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
131
#define YYTRANSLATE(x) ((unsigned)(x) <= 326 ? yytranslate[x] : 165)
133
/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
134
static const char yytranslate[] =
136
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
137
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
138
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
139
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
140
2, 2, 2, 2, 2, 75, 2, 2, 2, 2,
141
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
142
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
143
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
144
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
145
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
146
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
147
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
148
2, 2, 2, 73, 76, 74, 2, 2, 2, 2,
149
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
150
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
151
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
152
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
153
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
154
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
155
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
156
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
157
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
158
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
159
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
160
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
161
2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
162
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
163
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
164
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
165
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
166
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
167
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
168
66, 67, 68, 69, 70, 71, 72
172
static const short yyprhs[] =
174
0, 0, 2, 4, 13, 18, 23, 24, 26, 28,
175
31, 34, 37, 40, 43, 46, 51, 56, 59, 62,
176
64, 66, 68, 69, 71, 74, 79, 84, 87, 89,
177
92, 94, 96, 98, 100, 103, 105, 107, 110, 112,
178
115, 118, 120, 126, 132, 134, 137, 142, 147, 152,
179
157, 162, 167, 168, 171, 175, 179, 183, 185, 186,
180
188, 191, 196, 201, 204, 207, 209, 212, 214, 216,
181
219, 221, 227, 232, 234, 236, 237, 239, 241, 244,
182
245, 249, 253, 254, 258, 261, 263, 266, 268, 271,
183
273, 276, 281, 286, 288, 290, 293, 295, 298, 301,
184
308, 313, 315, 317, 319, 322, 324, 327, 330, 333,
185
335, 338, 340, 343, 346, 348, 350, 352, 355, 357,
186
360, 362, 367, 369, 371, 374, 375, 377, 379, 382,
187
387, 392, 395, 398, 401, 404, 406, 409, 412, 413,
188
415, 417, 420, 425, 430, 432, 435, 437, 442, 447,
189
449, 451, 453, 456, 459, 464, 469, 471, 473, 476,
190
479, 482, 487, 492, 495, 496, 501, 506, 508, 511,
191
516, 521, 523, 526, 528, 531, 536, 541, 544, 546,
192
549, 551, 553, 558, 563, 568, 571, 574, 578, 582,
193
584, 586, 589, 592, 594, 596, 600, 602
195
static const short yyrhs[] =
197
78, 0, 80, 0, 79, 84, 127, 164, 151, 95,
198
139, 145, 0, 42, 73, 81, 74, 0, 42, 73,
199
80, 74, 0, 0, 1, 0, 82, 0, 81, 82,
200
0, 43, 83, 0, 44, 83, 0, 45, 83, 0,
201
46, 23, 0, 47, 83, 0, 48, 24, 75, 24,
202
0, 49, 24, 75, 24, 0, 50, 83, 0, 72,
203
23, 0, 51, 0, 52, 0, 85, 0, 0, 86,
204
0, 85, 86, 0, 87, 73, 88, 74, 0, 87,
205
73, 80, 74, 0, 3, 23, 0, 89, 0, 88,
206
89, 0, 91, 0, 125, 0, 124, 0, 90, 0,
207
71, 158, 0, 92, 0, 94, 0, 16, 109, 0,
208
17, 0, 32, 109, 0, 68, 110, 0, 4, 0,
209
4, 6, 73, 93, 74, 0, 4, 6, 73, 80,
210
74, 0, 23, 0, 93, 23, 0, 7, 73, 112,
211
74, 0, 18, 73, 117, 74, 0, 19, 73, 119,
212
74, 0, 8, 73, 113, 74, 0, 7, 73, 80,
213
74, 0, 18, 73, 80, 74, 0, 0, 95, 96,
214
0, 98, 100, 74, 0, 98, 100, 74, 0, 39,
215
99, 73, 0, 23, 0, 0, 101, 0, 100, 101,
216
0, 36, 73, 102, 74, 0, 36, 73, 80, 74,
217
0, 38, 104, 0, 37, 104, 0, 61, 0, 60,
218
158, 0, 62, 0, 103, 0, 102, 103, 0, 23,
219
0, 105, 73, 106, 107, 74, 0, 105, 73, 80,
220
74, 0, 23, 0, 23, 0, 0, 108, 0, 23,
221
0, 108, 23, 0, 0, 73, 121, 74, 0, 73,
222
80, 74, 0, 0, 73, 111, 74, 0, 69, 24,
223
0, 115, 0, 112, 115, 0, 114, 0, 113, 114,
224
0, 115, 0, 15, 23, 0, 9, 73, 116, 74,
225
0, 9, 73, 80, 74, 0, 121, 0, 23, 0,
226
116, 23, 0, 118, 0, 117, 118, 0, 20, 23,
227
0, 21, 73, 122, 74, 22, 23, 0, 21, 73,
228
80, 74, 0, 121, 0, 35, 0, 120, 0, 117,
229
120, 0, 118, 0, 15, 23, 0, 10, 23, 0,
230
33, 23, 0, 123, 0, 122, 123, 0, 23, 0,
231
5, 11, 0, 5, 12, 0, 25, 0, 30, 0,
232
31, 0, 34, 23, 0, 97, 0, 40, 23, 0,
233
63, 0, 67, 73, 126, 74, 0, 70, 0, 23,
234
0, 126, 23, 0, 0, 128, 0, 129, 0, 128,
235
129, 0, 130, 73, 131, 74, 0, 130, 73, 80,
236
74, 0, 26, 23, 0, 132, 133, 0, 134, 132,
237
0, 21, 13, 0, 136, 0, 135, 136, 0, 136,
238
135, 0, 0, 134, 0, 65, 0, 27, 23, 0,
239
21, 73, 137, 74, 0, 21, 73, 80, 74, 0,
240
138, 0, 137, 138, 0, 23, 0, 140, 73, 141,
241
74, 0, 140, 73, 80, 74, 0, 80, 0, 28,
242
0, 142, 0, 141, 142, 0, 20, 23, 0, 21,
243
73, 143, 74, 0, 21, 73, 80, 74, 0, 144,
244
0, 138, 0, 143, 138, 0, 29, 23, 0, 64,
245
83, 0, 41, 73, 146, 74, 0, 41, 73, 80,
246
74, 0, 149, 147, 0, 0, 36, 73, 148, 74,
247
0, 36, 73, 80, 74, 0, 138, 0, 148, 138,
248
0, 21, 73, 150, 74, 0, 21, 73, 80, 74,
249
0, 23, 0, 150, 23, 0, 152, 0, 151, 152,
250
0, 153, 73, 154, 74, 0, 153, 73, 80, 74,
251
0, 53, 23, 0, 155, 0, 154, 155, 0, 156,
252
0, 157, 0, 54, 73, 160, 74, 0, 55, 73,
253
161, 74, 0, 56, 73, 160, 74, 0, 58, 158,
254
0, 59, 158, 0, 159, 131, 74, 0, 159, 80,
255
74, 0, 73, 0, 161, 0, 160, 161, 0, 57,
256
23, 0, 162, 0, 163, 0, 162, 76, 163, 0,
263
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
264
static const short yyrline[] =
266
0, 62, 63, 66, 69, 70, 71, 76, 78, 79,
267
82, 85, 88, 91, 94, 97, 100, 103, 106, 111,
268
112, 115, 116, 121, 122, 125, 128, 133, 148, 149,
269
152, 153, 154, 155, 158, 164, 165, 166, 170, 174,
270
178, 184, 187, 190, 193, 197, 203, 207, 212, 217,
271
226, 227, 230, 231, 234, 240, 251, 260, 263, 268,
272
269, 272, 273, 274, 278, 283, 286, 290, 295, 296,
273
299, 307, 308, 311, 322, 327, 330, 334, 339, 346,
274
347, 348, 351, 352, 355, 360, 361, 364, 365, 368,
275
369, 374, 375, 376, 379, 383, 389, 390, 393, 396,
276
423, 424, 425, 430, 431, 434, 435, 440, 443, 448,
277
453, 460, 468, 471, 476, 479, 482, 485, 495, 496,
278
499, 502, 505, 510, 514, 520, 521, 524, 525, 528,
279
532, 538, 548, 549, 552, 553, 554, 555, 558, 559,
280
562, 567, 572, 573, 576, 579, 585, 599, 603, 607,
281
610, 615, 616, 619, 622, 623, 624, 627, 630, 635,
282
638, 643, 644, 647, 652, 653, 656, 662, 665, 671,
283
675, 680, 702, 729, 730, 733, 737, 743, 757, 758,
284
761, 765, 769, 772, 775, 780, 783, 786, 787, 793,
285
803, 808, 818, 823, 830, 833, 843, 849
290
#if (YYDEBUG) || defined YYERROR_VERBOSE
292
/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
293
static const char *const yytname[] =
295
"$", "error", "$undefined.", "FIELD", "STRINGTYPE", "QDEFAULT",
296
"MATCHING", "ENUM", "MULTIENUMTOK", "VALUES", "DEFAULT", "EXACT_REGEXP",
297
"INEXACT_REGEXP", "ALL", "FORMAT", "ENUMSEPARATORSTOK", "MULTITEXTTYPE",
298
"DATETYPE", "ENUM_IN_FILE", "MULTI_ENUM_IN_FILE", "PATHTOK",
299
"FIELDSTOK", "KEYTOK", "QSTRING", "INTVAL", "TEXTSEARCH", "QUERYTOK",
300
"FORMATTOK", "INDEXTOK", "SEPARATORTOK", "RESTRICTEDTOK", "NOSPACESTOK",
301
"INTEGERTOK", "INPUTDEFAULTTOK", "BUILTINTOK", "ALLOWANYVALUETOK",
302
"REQUIRETOK", "APPENDFIELDTOK", "SETFIELDTOK", "CHANGETOK",
303
"DESCRIPTIONTOK", "INPUTTOK", "DATABASEINFOTOK", "DEBUGMODETOK",
304
"KEEPRECTOK", "NOTIFYEXPTOK", "LIBEXECDIRTOK", "SUBMITTERACKTOK",
305
"BUSINESSDAYTOK", "BUSINESSWEEKTOK", "CREATECATEGORYDIRSTOK",
306
"FALSETOK", "TRUETOK", "MAILFORMATTOK", "TOADDRESSESTOK",
307
"FROMADDRESSTOK", "REPLYTOTOK", "FIXEDTOK", "BODYTOK", "HEADERTOK",
308
"AUDITTRAILFMTTOK", "ADDAUDITTRAILTOK", "REQUIRECHANGEREASONTOK",
309
"READONLYTOK", "BINARYINDEXTOK", "RAWTOK", "BADTOK", "AUXFLAGSTOK",
310
"PRLISTTOK", "MAXPRSTOK", "EDITONLYTOK", "VIRTUALFORMATTOK",
311
"CATPERMSTOK", "'{'", "'}'", "'-'", "'|'", "config", "configEnts",
312
"databaseInfo", "parseError", "databaseInfoList", "databaseInfoEnt",
313
"booleanVal", "fieldDecStmt", "fieldDecList", "fieldDec",
314
"startFieldDec", "fieldDataList", "fieldData", "virtualFieldFormat",
315
"fieldDataType", "stringType", "regexpList", "enumType",
316
"globalChangeEnts", "globalChangeEnt", "changeClause", "changeHeader",
317
"optChangeExpr", "changeOpts", "changeOpt", "reqFieldNameList",
318
"reqFieldNameEnt", "fieldEditOpts", "fieldEditName", "fieldEditFormat",
319
"optFieldEditFieldList", "fieldEditFieldList", "optSimple",
320
"prListOpts", "prListOptList", "enumcontents", "multienumcontents",
321
"multiEnumItem", "enumItem", "enumValueList", "enumFileContents",
322
"enumFileItem", "multiEnumFileContents", "multiEnumFileItem",
323
"defaultFieldVal", "enumFieldList", "enumFieldMember", "queryDefault",
324
"miscOptions", "auxFlagsList", "optQueryList", "queryList", "query",
325
"queryBegin", "queryFmt", "queryFieldDesc", "optQueryOpts", "queryOpts",
326
"queryPrintf", "queryfields", "queryFieldsList", "FieldListMember",
327
"indexDescription", "indexheader", "indexlist", "indexEnt",
328
"indexFieldList", "indexSep", "inputDescription", "inputEnt",
329
"requiredFields", "requiredFieldsList", "inputFields",
330
"inputFieldsList", "mailFormatList", "mailFormat", "mailFormatHeader",
331
"mailFormatBody", "mailFormatEnt", "bodyFormat", "headerFormat",
332
"plainFormat", "plainFormatHeader", "mailAddressList", "mailAddress",
333
"mailAddressTries", "MailAddressMember", "auditTrailFmt", 0
337
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
338
static const short yyr1[] =
340
0, 77, 77, 78, 79, 79, 79, 80, 81, 81,
341
82, 82, 82, 82, 82, 82, 82, 82, 82, 83,
342
83, 84, 84, 85, 85, 86, 86, 87, 88, 88,
343
89, 89, 89, 89, 90, 91, 91, 91, 91, 91,
344
91, 92, 92, 92, 93, 93, 94, 94, 94, 94,
345
94, 94, 95, 95, 96, 97, 98, 99, 99, 100,
346
100, 101, 101, 101, 101, 101, 101, 101, 102, 102,
347
103, 104, 104, 105, 106, 107, 107, 108, 108, 109,
348
109, 109, 110, 110, 111, 112, 112, 113, 113, 114,
349
114, 115, 115, 115, 116, 116, 117, 117, 118, 118,
350
118, 118, 118, 119, 119, 120, 120, 121, 121, 122,
351
122, 123, 124, 124, 125, 125, 125, 125, 125, 125,
352
125, 125, 125, 126, 126, 127, 127, 128, 128, 129,
353
129, 130, 131, 131, 132, 132, 132, 132, 133, 133,
354
134, 135, 136, 136, 137, 137, 138, 139, 139, 139,
355
140, 141, 141, 142, 142, 142, 142, 143, 143, 144,
356
144, 145, 145, 146, 147, 147, 147, 148, 148, 149,
357
149, 150, 150, 151, 151, 152, 152, 153, 154, 154,
358
155, 155, 155, 155, 155, 156, 157, 158, 158, 159,
359
160, 160, 161, 161, 162, 162, 163, 164
362
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
363
static const short yyr2[] =
365
0, 1, 1, 8, 4, 4, 0, 1, 1, 2,
366
2, 2, 2, 2, 2, 4, 4, 2, 2, 1,
367
1, 1, 0, 1, 2, 4, 4, 2, 1, 2,
368
1, 1, 1, 1, 2, 1, 1, 2, 1, 2,
369
2, 1, 5, 5, 1, 2, 4, 4, 4, 4,
370
4, 4, 0, 2, 3, 3, 3, 1, 0, 1,
371
2, 4, 4, 2, 2, 1, 2, 1, 1, 2,
372
1, 5, 4, 1, 1, 0, 1, 1, 2, 0,
373
3, 3, 0, 3, 2, 1, 2, 1, 2, 1,
374
2, 4, 4, 1, 1, 2, 1, 2, 2, 6,
375
4, 1, 1, 1, 2, 1, 2, 2, 2, 1,
376
2, 1, 2, 2, 1, 1, 1, 2, 1, 2,
377
1, 4, 1, 1, 2, 0, 1, 1, 2, 4,
378
4, 2, 2, 2, 2, 1, 2, 2, 0, 1,
379
1, 2, 4, 4, 1, 2, 1, 4, 4, 1,
380
1, 1, 2, 2, 4, 4, 1, 1, 2, 2,
381
2, 4, 4, 2, 0, 4, 4, 1, 2, 4,
382
4, 1, 2, 1, 2, 4, 4, 2, 1, 2,
383
1, 1, 4, 4, 4, 2, 2, 3, 3, 1,
384
1, 2, 2, 1, 1, 3, 1, 2
387
/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
388
doesn't specify something else to do. Zero means the default is an
390
static const short yydefact[] =
392
0, 7, 0, 1, 22, 2, 0, 0, 125, 21,
393
23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
394
0, 0, 0, 8, 27, 0, 0, 126, 127, 0,
395
24, 0, 19, 20, 10, 11, 12, 13, 14, 0,
396
0, 17, 18, 5, 4, 9, 131, 0, 0, 128,
397
0, 41, 0, 0, 0, 79, 38, 0, 0, 114,
398
115, 116, 79, 0, 58, 0, 120, 0, 82, 122,
399
0, 0, 0, 28, 33, 30, 35, 36, 118, 0,
400
32, 31, 0, 0, 189, 197, 0, 0, 52, 173,
401
0, 0, 0, 140, 0, 0, 138, 0, 0, 135,
402
0, 112, 113, 0, 0, 0, 37, 0, 0, 39,
403
117, 57, 0, 119, 0, 0, 40, 34, 26, 25,
404
29, 0, 0, 0, 0, 65, 67, 0, 59, 15,
405
16, 0, 0, 177, 0, 174, 0, 134, 0, 141,
406
130, 129, 132, 139, 133, 0, 136, 137, 0, 0,
407
0, 0, 0, 0, 85, 93, 0, 0, 87, 89,
408
0, 0, 0, 0, 102, 0, 0, 96, 101, 0,
409
0, 96, 0, 103, 56, 123, 0, 0, 0, 0,
410
73, 64, 0, 63, 66, 55, 60, 188, 187, 150,
411
149, 53, 0, 0, 0, 0, 0, 0, 0, 0,
412
0, 0, 178, 180, 181, 146, 0, 0, 144, 44,
413
0, 0, 0, 107, 108, 50, 46, 86, 90, 49,
414
88, 81, 80, 98, 0, 51, 47, 97, 106, 97,
415
104, 48, 124, 121, 84, 83, 70, 0, 0, 68,
416
0, 0, 0, 3, 0, 0, 0, 0, 185, 186,
417
176, 175, 179, 143, 142, 145, 43, 45, 42, 94,
418
0, 0, 111, 0, 0, 109, 62, 61, 69, 74,
419
0, 75, 54, 0, 0, 0, 0, 0, 0, 0,
420
151, 156, 196, 0, 0, 190, 193, 194, 0, 0,
421
92, 95, 91, 100, 0, 110, 72, 77, 0, 76,
422
0, 0, 0, 164, 153, 0, 159, 160, 148, 147,
423
152, 192, 182, 191, 0, 183, 184, 0, 71, 78,
424
0, 162, 161, 0, 163, 0, 157, 0, 195, 99,
425
171, 0, 0, 0, 155, 154, 158, 170, 172, 169,
426
0, 167, 0, 166, 165, 168, 0, 0, 0
429
static const short yydefgoto[] =
431
346, 3, 4, 5, 22, 23, 34, 8, 9, 10,
432
11, 72, 73, 74, 75, 76, 211, 77, 134, 191,
433
78, 79, 112, 127, 128, 238, 239, 181, 182, 271,
434
298, 299, 106, 116, 178, 153, 157, 158, 159, 261,
435
166, 167, 172, 173, 155, 264, 265, 80, 81, 176,
436
26, 27, 28, 29, 95, 96, 142, 97, 98, 99,
437
207, 208, 193, 194, 279, 280, 327, 281, 243, 302,
438
324, 342, 303, 332, 88, 89, 90, 201, 202, 203,
439
204, 85, 86, 284, 285, 286, 287, 48
442
static const short yypact[] =
444
23,-32768, -52,-32768, 25,-32768, 7, 9, 12, 25,
445
-32768, -9, -15, -15, -15, 71, -15, 80, 82, -15,
446
85, 36, 212,-32768,-32768, 96, 61, 12,-32768, 54,
447
-32768, 140,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 94,
448
119,-32768,-32768,-32768,-32768,-32768,-32768, 79, 70,-32768,
449
21, 154, 175, 108, 124, 127,-32768, 129, 131,-32768,
450
-32768,-32768, 127, 190, 213, 214,-32768, 162, 169,-32768,
451
79, 171, 159,-32768,-32768,-32768,-32768,-32768,-32768, 187,
452
-32768,-32768, 219, 228,-32768,-32768, 21, 240, 70,-32768,
453
193, 14, 245,-32768, 196, 197, 207, 2, 259, 256,
454
215,-32768,-32768, 152, 186, 106,-32768, 211, 254,-32768,
455
-32768,-32768, 217,-32768, 262, 222,-32768,-32768,-32768,-32768,
456
-32768, 220, 269, 269, 79,-32768,-32768, 76,-32768,-32768,
457
-32768, 221, 224,-32768, 181,-32768, 34,-32768, 95,-32768,
458
-32768,-32768,-32768,-32768,-32768, 229,-32768,-32768, 132, 230,
459
271, 273, 226, 8,-32768,-32768, 278, 0,-32768,-32768,
460
231, 232, 281, 234,-32768, 235, 10,-32768,-32768, 285,
461
254, 236, 237,-32768,-32768,-32768, 17, 288, 239, 182,
462
-32768,-32768, 242,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
463
-32768,-32768, 187, 275, 244, 246, 247, 248, 79, 79,
464
249, 223,-32768,-32768,-32768,-32768, 251, 24,-32768,-32768,
465
252, 46, 191,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
466
-32768,-32768,-32768,-32768, 227,-32768,-32768,-32768,-32768, 236,
467
-32768,-32768,-32768,-32768,-32768,-32768,-32768, 255, 48,-32768,
468
250, 179, 257,-32768, 38, 86, 86, 86,-32768,-32768,
469
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
470
258, 50,-32768, 260, 52,-32768,-32768,-32768,-32768,-32768,
471
261, 295,-32768, 167, 299, 263, 301, -15, 264, 41,
472
-32768,-32768,-32768, 305, -11,-32768, 265,-32768, 266, 11,
473
-32768,-32768,-32768,-32768, 309,-32768,-32768,-32768, 268, 310,
474
270, 272, 274, 303,-32768, 95,-32768,-32768,-32768,-32768,
475
-32768,-32768,-32768,-32768, 314,-32768,-32768, 321,-32768,-32768,
476
253,-32768,-32768, 276,-32768, 277,-32768, 55,-32768,-32768,
477
-32768, 279, 72, 95,-32768,-32768,-32768,-32768,-32768,-32768,
478
280,-32768, 77,-32768,-32768,-32768, 345, 347,-32768
481
static const short yypgoto[] =
483
-32768,-32768,-32768, -6,-32768, 328, -12,-32768,-32768, 343,
484
-32768,-32768, 283,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
485
-32768, 225,-32768, 164, -124,-32768, 120, 238,-32768,-32768,
486
-32768,-32768, 298,-32768,-32768,-32768,-32768, 200, -87,-32768,
487
267, -89,-32768, 192, -94,-32768, 99,-32768,-32768,-32768,
488
-32768,-32768, 337,-32768, 282, 284,-32768, 286, 287, 289,
489
-32768, -202,-32768,-32768,-32768, 87,-32768,-32768,-32768,-32768,
490
-32768,-32768,-32768,-32768,-32768, 290,-32768,-32768, 166,-32768,
491
-32768, -64,-32768, 118, -135,-32768, 56,-32768
498
static const short yytable[] =
500
21, 35, 36, 186, 38, 255, 117, 41, 1, 149,
501
150, 161, 282, 168, 168, 156, 154, 149, 150, 171,
502
150, 6, 1, 91, 1, 71, -6, 137, 7, 92,
503
162, 163, 24, 151, 282, 1, 32, 33, 25, 1,
504
232, 151, 91, 151, 94, 164, 283, 205, 92, -6,
505
12, 13, 14, 15, 16, 17, 18, 19, 274, 275,
506
184, 274, 275, 312, 31, 2, 217, 276, 283, 257,
507
276, 236, 168, 291, 219, 262, 168, 227, 205, 20,
508
131, 229, 216, -6, 226, 316, 93, 138, 195, 196,
509
197, 233, 198, 199, 37, 338, 1, 152, 254, 160,
510
205, 165, 277, 326, 39, 277, 40, 1, 42, 282,
511
43, 288, 121, 122, 123, 309, 150, 186, 205, 46,
512
258, 47, 267, 87, 292, 336, 294, 50, 190, 335,
513
200, 341, 206, 1, 248, 249, 124, 125, 126, 151,
514
345, 1, 210, 283, 51, 52, 339, 53, 54, 313,
515
185, 344, 84, 1, 313, 209, 55, 56, 57, 58,
516
100, 149, 150, 51, 52, 59, 53, 54, 1, 82,
517
60, 61, 62, 237, 63, 55, 56, 57, 58, 64,
518
65, 103, 1, 1, 59, 151, 101, 102, 300, 60,
519
61, 62, 1, 63, 83, 149, 150, 104, 64, 65,
520
105, 156, 107, 66, 108, 236, 260, 67, 68, 189,
521
69, 70, 1, 110, 259, 121, 122, 123, 263, 151,
522
64, 150, 66, 121, 122, 123, 67, 68, 1, 69,
523
70, 162, 163, 119, 270, 114, 111, 113, 278, 124,
524
125, 126, 115, 129, 151, 118, 164, 124, 125, 126,
525
262, 1, 130, 272, 1, 12, 13, 14, 15, 16,
526
17, 18, 19, 133, 150, 307, 136, 301, 139, 169,
527
140, 141, 93, 269, 162, 163, 330, 195, 196, 197,
528
145, 198, 199, 92, 20, 175, 44, 151, 148, 164,
529
174, 177, 180, 179, 213, 187, 214, 251, 188, 325,
530
215, 218, 138, 212, 223, 221, 222, 224, 228, 225,
531
-105, 231, 234, 235, 331, 240, 242, 244, 297, 245,
532
246, 247, 304, 250, 306, 253, 256, 340, 311, 266,
533
273, 317, 290, 319, 293, 296, 305, 282, 308, 323,
534
315, 314, 318, 320, 329, 347, 321, 348, 322, 333,
535
45, 334, 30, 337, 343, 120, 241, 220, 268, 192,
536
109, 183, 230, 295, 49, 289, 310, 252, 132, 0,
537
328, 0, 0, 0, 0, 170, 0, 0, 135, 0,
538
0, 144, 143, 0, 0, 0, 147, 146
541
static const short yycheck[] =
543
6, 13, 14, 127, 16, 207, 70, 19, 1, 9,
544
10, 105, 23, 107, 108, 15, 103, 9, 10, 108,
545
10, 73, 1, 21, 1, 31, 3, 13, 3, 27,
546
20, 21, 23, 33, 23, 1, 51, 52, 26, 1,
547
23, 33, 21, 33, 50, 35, 57, 23, 27, 26,
548
43, 44, 45, 46, 47, 48, 49, 50, 20, 21,
549
124, 20, 21, 74, 73, 42, 153, 29, 57, 23,
550
29, 23, 166, 23, 74, 23, 170, 166, 23, 72,
551
86, 170, 74, 60, 74, 74, 65, 73, 54, 55,
552
56, 74, 58, 59, 23, 23, 1, 103, 74, 105,
553
23, 107, 64, 305, 24, 64, 24, 1, 23, 23,
554
74, 246, 36, 37, 38, 74, 10, 241, 23, 23,
555
74, 60, 74, 53, 74, 327, 74, 73, 134, 74,
556
136, 333, 138, 1, 198, 199, 60, 61, 62, 33,
557
342, 1, 148, 57, 4, 5, 74, 7, 8, 284,
558
74, 74, 73, 1, 289, 23, 16, 17, 18, 19,
559
6, 9, 10, 4, 5, 25, 7, 8, 1, 75,
560
30, 31, 32, 179, 34, 16, 17, 18, 19, 39,
561
40, 73, 1, 1, 25, 33, 11, 12, 21, 30,
562
31, 32, 1, 34, 75, 9, 10, 73, 39, 40,
563
73, 15, 73, 63, 73, 23, 212, 67, 68, 28,
564
70, 71, 1, 23, 23, 36, 37, 38, 224, 33,
565
39, 10, 63, 36, 37, 38, 67, 68, 1, 70,
566
71, 20, 21, 74, 240, 73, 23, 23, 244, 60,
567
61, 62, 73, 24, 33, 74, 35, 60, 61, 62,
568
23, 1, 24, 74, 1, 43, 44, 45, 46, 47,
569
48, 49, 50, 23, 10, 277, 73, 273, 23, 15,
570
74, 74, 65, 23, 20, 21, 23, 54, 55, 56,
571
21, 58, 59, 27, 72, 23, 74, 33, 73, 35,
572
73, 69, 23, 73, 23, 74, 23, 74, 74, 305,
573
74, 23, 73, 73, 23, 74, 74, 73, 23, 74,
574
74, 74, 24, 74, 320, 73, 41, 73, 23, 73,
575
73, 73, 23, 74, 23, 74, 74, 333, 23, 74,
576
73, 22, 74, 23, 74, 74, 73, 23, 74, 36,
577
74, 76, 74, 73, 23, 0, 74, 0, 74, 73,
578
22, 74, 9, 74, 74, 72, 192, 157, 238, 134,
579
62, 123, 170, 264, 27, 247, 279, 201, 86, -1,
580
314, -1, -1, -1, -1, 108, -1, -1, 88, -1,
581
-1, 97, 96, -1, -1, -1, 99, 98
583
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
584
#line 3 "/usr/share/bison/bison.simple"
586
/* Skeleton output parser for bison,
588
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
591
This program is free software; you can redistribute it and/or modify
592
it under the terms of the GNU General Public License as published by
593
the Free Software Foundation; either version 2, or (at your option)
596
This program is distributed in the hope that it will be useful,
597
but WITHOUT ANY WARRANTY; without even the implied warranty of
598
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
599
GNU General Public License for more details.
601
You should have received a copy of the GNU General Public License
602
along with this program; if not, write to the Free Software
603
Foundation, Inc., 59 Temple Place - Suite 330,
604
Boston, MA 02111-1307, USA. */
606
/* As a special exception, when this file is copied by Bison into a
607
Bison output file, you may use that output file without restriction.
608
This special exception was added by the Free Software Foundation
609
in version 1.24 of Bison. */
611
/* This is the parser code that is written into each bison parser when
612
the %semantic_parser declaration is not specified in the grammar.
613
It was written by Richard Stallman by simplifying the hairy parser
614
used when %semantic_parser is specified. */
616
/* All symbols defined below should begin with yy or YY, to avoid
617
infringing on user name space. This should be done even for local
618
variables, as they might otherwise be expanded by user macros.
619
There are some unavoidable exceptions within include files to
620
define necessary library symbols; they are noted "INFRINGES ON
621
USER NAME SPACE" below. */
623
#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
625
/* The parser invokes alloca or malloc; define the necessary symbols. */
627
# if YYSTACK_USE_ALLOCA
628
# define YYSTACK_ALLOC alloca
630
# ifndef YYSTACK_USE_ALLOCA
631
# if defined (alloca) || defined (_ALLOCA_H)
632
# define YYSTACK_ALLOC alloca
635
# define YYSTACK_ALLOC __builtin_alloca
641
# ifdef YYSTACK_ALLOC
642
/* Pacify GCC's `empty if-body' warning. */
643
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
645
# if defined (__STDC__) || defined (__cplusplus)
646
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
647
# define YYSIZE_T size_t
649
# define YYSTACK_ALLOC malloc
650
# define YYSTACK_FREE free
652
#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
655
#if (! defined (yyoverflow) \
656
&& (! defined (__cplusplus) \
657
|| (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
659
/* A type that is properly aligned for any stack member. */
669
/* The size of the maximum gap between one aligned stack and the next. */
670
# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
672
/* The size of an array large to enough to hold all stacks, each with
675
# define YYSTACK_BYTES(N) \
676
((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
677
+ 2 * YYSTACK_GAP_MAX)
679
# define YYSTACK_BYTES(N) \
680
((N) * (sizeof (short) + sizeof (YYSTYPE)) \
684
/* Copy COUNT objects from FROM to TO. The source and destination do
688
# define YYCOPY(To, From, Count) \
689
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
691
# define YYCOPY(To, From, Count) \
694
register YYSIZE_T yyi; \
695
for (yyi = 0; yyi < (Count); yyi++) \
696
(To)[yyi] = (From)[yyi]; \
702
/* Relocate STACK from its old location to the new one. The
703
local variables YYSIZE and YYSTACKSIZE give the old and new number of
704
elements in the stack, and YYPTR gives the new location of the
705
stack. Advance YYPTR to a properly aligned location for the next
707
# define YYSTACK_RELOCATE(Stack) \
710
YYSIZE_T yynewbytes; \
711
YYCOPY (&yyptr->Stack, Stack, yysize); \
712
Stack = &yyptr->Stack; \
713
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
714
yyptr += yynewbytes / sizeof (*yyptr); \
721
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
722
# define YYSIZE_T __SIZE_TYPE__
724
#if ! defined (YYSIZE_T) && defined (size_t)
725
# define YYSIZE_T size_t
727
#if ! defined (YYSIZE_T)
728
# if defined (__STDC__) || defined (__cplusplus)
729
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
730
# define YYSIZE_T size_t
733
#if ! defined (YYSIZE_T)
734
# define YYSIZE_T unsigned int
737
#define yyerrok (yyerrstatus = 0)
738
#define yyclearin (yychar = YYEMPTY)
741
#define YYACCEPT goto yyacceptlab
742
#define YYABORT goto yyabortlab
743
#define YYERROR goto yyerrlab1
744
/* Like YYERROR except do call yyerror. This remains here temporarily
745
to ease the transition to the new meaning of YYERROR, for GCC.
746
Once GCC version 2 has supplanted version 1, this can go. */
747
#define YYFAIL goto yyerrlab
748
#define YYRECOVERING() (!!yyerrstatus)
749
#define YYBACKUP(Token, Value) \
751
if (yychar == YYEMPTY && yylen == 1) \
755
yychar1 = YYTRANSLATE (yychar); \
761
yyerror ("syntax error: cannot back up"); \
767
#define YYERRCODE 256
770
/* YYLLOC_DEFAULT -- Compute the default location (before the actions
773
When YYLLOC_DEFAULT is run, CURRENT is set the location of the
774
first token. By default, to implement support for ranges, extend
775
its range to the last symbol. */
777
#ifndef YYLLOC_DEFAULT
778
# define YYLLOC_DEFAULT(Current, Rhs, N) \
779
Current.last_line = Rhs[N].last_line; \
780
Current.last_column = Rhs[N].last_column;
784
/* YYLEX -- calling `yylex' with the right arguments. */
789
# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
791
# define YYLEX yylex (&yylval, &yylloc)
793
# else /* !YYLSP_NEEDED */
795
# define YYLEX yylex (&yylval, YYLEX_PARAM)
797
# define YYLEX yylex (&yylval)
799
# endif /* !YYLSP_NEEDED */
801
# define YYLEX yylex ()
805
/* Enable debugging if requested. */
809
# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
810
# define YYFPRINTF fprintf
813
# define YYDPRINTF(Args) \
818
/* Nonzero means print parse trace. It is left uninitialized so that
819
multiple parsers can coexist. */
822
# define YYDPRINTF(Args)
823
#endif /* !YYDEBUG */
825
/* YYINITDEPTH -- initial size of the parser's stacks. */
827
# define YYINITDEPTH 200
830
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
831
if the built-in stack extension method is used).
833
Do not make this value too large; the results are undefined if
834
SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
835
evaluated with infinite-precision integer arithmetic. */
842
# define YYMAXDEPTH 10000
845
#ifdef YYERROR_VERBOSE
848
# if defined (__GLIBC__) && defined (_STRING_H)
849
# define yystrlen strlen
851
/* Return the length of YYSTR. */
853
# if defined (__STDC__) || defined (__cplusplus)
854
yystrlen (const char *yystr)
860
register const char *yys = yystr;
862
while (*yys++ != '\0')
865
return yys - yystr - 1;
871
# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
873
# define yystpcpy stpcpy
875
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
878
# if defined (__STDC__) || defined (__cplusplus)
879
yystpcpy (char *yydest, const char *yysrc)
881
yystpcpy (yydest, yysrc)
886
register char *yyd = yydest;
887
register const char *yys = yysrc;
889
while ((*yyd++ = *yys++) != '\0')
898
#line 316 "/usr/share/bison/bison.simple"
901
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
902
into yyparse. The argument should have type void *.
903
It should actually point to an object.
904
Grammar actions can access the variable by casting it
905
to the proper pointer type. */
908
# if defined (__STDC__) || defined (__cplusplus)
909
# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
910
# define YYPARSE_PARAM_DECL
912
# define YYPARSE_PARAM_ARG YYPARSE_PARAM
913
# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
915
#else /* !YYPARSE_PARAM */
916
# define YYPARSE_PARAM_ARG
917
# define YYPARSE_PARAM_DECL
918
#endif /* !YYPARSE_PARAM */
920
/* Prevent warning if -Wstrict-prototypes. */
922
# ifdef YYPARSE_PARAM
923
int yyparse (void *);
929
/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
930
variables are global, or local to YYPARSE. */
932
#define YY_DECL_NON_LSP_VARIABLES \
933
/* The lookahead symbol. */ \
936
/* The semantic value of the lookahead symbol. */ \
939
/* Number of parse errors so far. */ \
943
# define YY_DECL_VARIABLES \
944
YY_DECL_NON_LSP_VARIABLES \
946
/* Location data for the lookahead symbol. */ \
949
# define YY_DECL_VARIABLES \
950
YY_DECL_NON_LSP_VARIABLES
954
/* If nonreentrant, generate the variables here. */
961
yyparse (YYPARSE_PARAM_ARG)
964
/* If reentrant, generate the variables here. */
969
register int yystate;
972
/* Number of tokens to shift before error messages enabled. */
974
/* Lookahead token as an internal (translated) token number. */
977
/* Three stacks and their tools:
978
`yyss': related to states,
979
`yyvs': related to semantic values,
980
`yyls': related to locations.
982
Refer to the stacks thru separate pointers, to allow yyoverflow
983
to reallocate them elsewhere. */
985
/* The state stack. */
986
short yyssa[YYINITDEPTH];
988
register short *yyssp;
990
/* The semantic value stack. */
991
YYSTYPE yyvsa[YYINITDEPTH];
992
YYSTYPE *yyvs = yyvsa;
993
register YYSTYPE *yyvsp;
996
/* The location stack. */
997
YYLTYPE yylsa[YYINITDEPTH];
998
YYLTYPE *yyls = yylsa;
1003
# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1005
# define YYPOPSTACK (yyvsp--, yyssp--)
1008
YYSIZE_T yystacksize = YYINITDEPTH;
1011
/* The variables used to return semantic value and location from the
1018
/* When reducing, the number of symbols on the RHS of the reduced
1022
YYDPRINTF ((stderr, "Starting parse\n"));
1027
yychar = YYEMPTY; /* Cause a token to be read. */
1029
/* Initialize stack pointers.
1030
Waste one element of value and location stack
1031
so that they stay on the same level as the state stack.
1032
The wasted elements are never initialized. */
1041
/*------------------------------------------------------------.
1042
| yynewstate -- Push a new state, which is found in yystate. |
1043
`------------------------------------------------------------*/
1045
/* In all cases, when you get here, the value and location stacks
1046
have just been pushed. so pushing a state here evens the stacks.
1053
if (yyssp >= yyss + yystacksize - 1)
1055
/* Get the current used size of the three stacks, in elements. */
1056
YYSIZE_T yysize = yyssp - yyss + 1;
1060
/* Give user a chance to reallocate the stack. Use copies of
1061
these so that the &'s don't force the real ones into
1063
YYSTYPE *yyvs1 = yyvs;
1064
short *yyss1 = yyss;
1066
/* Each stack pointer address is followed by the size of the
1067
data in use in that stack, in bytes. */
1069
YYLTYPE *yyls1 = yyls;
1070
/* This used to be a conditional around just the two extra args,
1071
but that might be undefined if yyoverflow is a macro. */
1072
yyoverflow ("parser stack overflow",
1073
&yyss1, yysize * sizeof (*yyssp),
1074
&yyvs1, yysize * sizeof (*yyvsp),
1075
&yyls1, yysize * sizeof (*yylsp),
1079
yyoverflow ("parser stack overflow",
1080
&yyss1, yysize * sizeof (*yyssp),
1081
&yyvs1, yysize * sizeof (*yyvsp),
1087
#else /* no yyoverflow */
1088
# ifndef YYSTACK_RELOCATE
1091
/* Extend the stack our own way. */
1092
if (yystacksize >= YYMAXDEPTH)
1095
if (yystacksize > YYMAXDEPTH)
1096
yystacksize = YYMAXDEPTH;
1099
short *yyss1 = yyss;
1100
union yyalloc *yyptr =
1101
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1104
YYSTACK_RELOCATE (yyss);
1105
YYSTACK_RELOCATE (yyvs);
1107
YYSTACK_RELOCATE (yyls);
1109
# undef YYSTACK_RELOCATE
1111
YYSTACK_FREE (yyss1);
1114
#endif /* no yyoverflow */
1116
yyssp = yyss + yysize - 1;
1117
yyvsp = yyvs + yysize - 1;
1119
yylsp = yyls + yysize - 1;
1122
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1123
(unsigned long int) yystacksize));
1125
if (yyssp >= yyss + yystacksize - 1)
1129
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1139
/* Do appropriate processing given the current state. */
1140
/* Read a lookahead token if we need one and don't already have one. */
1143
/* First try to decide what to do without reference to lookahead token. */
1145
yyn = yypact[yystate];
1149
/* Not known => get a lookahead token if don't already have one. */
1151
/* yychar is either YYEMPTY or YYEOF
1152
or a valid token in external form. */
1154
if (yychar == YYEMPTY)
1156
YYDPRINTF ((stderr, "Reading a token: "));
1160
/* Convert token to internal form (in yychar1) for indexing tables with */
1162
if (yychar <= 0) /* This means end of input. */
1165
yychar = YYEOF; /* Don't call YYLEX any more */
1167
YYDPRINTF ((stderr, "Now at end of input.\n"));
1171
yychar1 = YYTRANSLATE (yychar);
1174
/* We have to keep this `#if YYDEBUG', since we use variables
1175
which are defined only if `YYDEBUG' is set. */
1178
YYFPRINTF (stderr, "Next token is %d (%s",
1179
yychar, yytname[yychar1]);
1180
/* Give the individual parser a way to print the precise
1181
meaning of a token, for further debugging info. */
1183
YYPRINT (stderr, yychar, yylval);
1185
YYFPRINTF (stderr, ")\n");
1191
if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1196
/* yyn is what to do for this token type in this state.
1197
Negative => reduce, -yyn is rule number.
1198
Positive => shift, yyn is new state.
1199
New state is final state => don't bother to shift,
1200
just return success.
1201
0, or most negative number => error. */
1216
/* Shift the lookahead token. */
1217
YYDPRINTF ((stderr, "Shifting token %d (%s), ",
1218
yychar, yytname[yychar1]));
1220
/* Discard the token being shifted unless it is eof. */
1221
if (yychar != YYEOF)
1229
/* Count tokens shifted since error; after three, turn off error
1238
/*-----------------------------------------------------------.
1239
| yydefault -- do the default action for the current state. |
1240
`-----------------------------------------------------------*/
1242
yyn = yydefact[yystate];
1248
/*-----------------------------.
1249
| yyreduce -- Do a reduction. |
1250
`-----------------------------*/
1252
/* yyn is the number of a rule to reduce with. */
1255
/* If YYLEN is nonzero, implement the default value of the action:
1258
Otherwise, the following line sets YYVAL to the semantic value of
1259
the lookahead token. This behavior is undocumented and Bison
1260
users should not rely upon it. Assigning to YYVAL
1261
unconditionally makes the parser a bit smaller, and it avoids a
1262
GCC warning that YYVAL may be used uninitialized. */
1263
yyval = yyvsp[1-yylen];
1266
/* Similarly for the default location. Let the user run additional
1267
commands if for instance locations are ranges. */
1268
yyloc = yylsp[1-yylen];
1269
YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
1273
/* We have to keep this `#if YYDEBUG', since we use variables which
1274
are defined only if `YYDEBUG' is set. */
1279
YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
1282
/* Print the symbols being reduced, and their result. */
1283
for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
1284
YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
1285
YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1292
#line 71 "./fconfig.y"
1294
fconferror ("Missing/bad database info section");
1298
#line 76 "./fconfig.y"
1302
#line 82 "./fconfig.y"
1304
setDebugMode (databaseBeingDefined, yyvsp[0].intval);
1308
#line 85 "./fconfig.y"
1310
setKeepReceivedHeaders (databaseBeingDefined, yyvsp[0].intval);
1314
#line 88 "./fconfig.y"
1316
setNotifyExpire (databaseBeingDefined, yyvsp[0].intval);
1320
#line 91 "./fconfig.y"
1322
setBinDir (databaseBeingDefined, qStrVal (yyvsp[0].qstr));
1326
#line 94 "./fconfig.y"
1328
setSubmitterAck (databaseBeingDefined, yyvsp[0].intval);
1332
#line 97 "./fconfig.y"
1334
setBusinessDay (databaseBeingDefined, yyvsp[-2].intval, yyvsp[0].intval);
1338
#line 100 "./fconfig.y"
1340
setBusinessWeek(databaseBeingDefined,yyvsp[-2].intval, yyvsp[0].intval);
1344
#line 103 "./fconfig.y"
1346
setCreateCategoryDirs (databaseBeingDefined, yyvsp[0].intval);
1350
#line 106 "./fconfig.y"
1352
setCategoryDirPerms (databaseBeingDefined, qStrVal (yyvsp[0].qstr));
1356
#line 111 "./fconfig.y"
1357
{ yyval.intval = 0; ;
1360
#line 112 "./fconfig.y"
1361
{ yyval.intval = 1; ;
1364
#line 116 "./fconfig.y"
1366
fconferror ("Missing/bad field declarations");
1370
#line 125 "./fconfig.y"
1376
#line 128 "./fconfig.y"
1382
#line 133 "./fconfig.y"
1384
char *fname = takeQString (yyvsp[0].qstr);
1385
currField = newFieldDef (databaseBeingDefined, fname);
1386
if (currField == NULL)
1389
asprintf (&msg, "Duplicate field definition for %s\n",
1394
currField->default_value = NULL;
1398
#line 158 "./fconfig.y"
1400
currField->virtualFormat = qformat;
1405
#line 166 "./fconfig.y"
1407
currField->datatype = MultiText;
1408
currField->defaultSearchType = NilSearch;
1412
#line 170 "./fconfig.y"
1414
currField->datatype = Date;
1415
currField->defaultSearchType = LessThan;
1419
#line 174 "./fconfig.y"
1421
currField->datatype = Integer;
1422
currField->defaultSearchType = NilSearch;
1426
#line 178 "./fconfig.y"
1428
currField->datatype = PRListType;
1429
currField->defaultSearchType = RegCmp;
1433
#line 184 "./fconfig.y"
1435
currField->datatype = Text;
1439
#line 187 "./fconfig.y"
1441
currField->datatype = TextWithRegex;
1445
#line 193 "./fconfig.y"
1447
yyval.stringlist = new_string_list_ent (takeQString (yyvsp[0].qstr), NULL);
1448
currField->regex = yyval.stringlist;
1452
#line 197 "./fconfig.y"
1454
yyvsp[-1].stringlist->next = new_string_list_ent (takeQString (yyvsp[0].qstr), NULL);
1455
yyval.stringlist = yyvsp[-1].stringlist->next;
1459
#line 203 "./fconfig.y"
1461
currField->datatype = Enum;
1462
currField->defaultSearchType = RegCmp;
1466
#line 207 "./fconfig.y"
1468
currField->datatype = Enum;
1469
currField->defaultSearchType = RegCmp;
1470
initAdmField (currField);
1474
#line 212 "./fconfig.y"
1476
currField->datatype = MultiEnum;
1477
currField->defaultSearchType = RegCmp;
1478
initAdmField (currField);
1482
#line 217 "./fconfig.y"
1484
currField->datatype = MultiEnum;
1485
currField->defaultSearchType = RegCmp;
1486
if (currField->multiEnumSeparator == NULL)
1488
currField->multiEnumSeparator
1489
= xstrdup (DEFAULT_MULTIENUM_SEPARATOR);
1494
#line 234 "./fconfig.y"
1496
addGlobalChangeActions (databaseBeingDefined, currChange);
1501
#line 240 "./fconfig.y"
1503
ChangeActions *p = &(currField->changeActions);
1513
#line 251 "./fconfig.y"
1515
currChange = newChangeAction (databaseBeingDefined, yyvsp[-1].sval);
1516
if (yyvsp[-1].sval != NULL)
1518
free (yyvsp[-1].sval);
1523
#line 260 "./fconfig.y"
1525
yyval.sval = takeQString (yyvsp[0].qstr);
1529
#line 263 "./fconfig.y"
1535
#line 274 "./fconfig.y"
1537
currChange->edits = currEdit;
1542
#line 278 "./fconfig.y"
1544
currEdit->append = 1;
1545
currChange->edits = currEdit;
1550
#line 283 "./fconfig.y"
1552
currChange->addAuditTrail = 1;
1556
#line 286 "./fconfig.y"
1558
currChange->auditTrailFormat = qformat;
1563
#line 290 "./fconfig.y"
1565
currChange->requireChangeReason = 1;
1569
#line 299 "./fconfig.y"
1572
= newFieldListEnt (databaseBeingDefined, qStrVal (yyvsp[0].qstr),
1573
currChange->requiredFields);
1574
currChange->requiredFields = foo;
1578
#line 311 "./fconfig.y"
1580
currEdit = (FieldEdit *) xmalloc (sizeof (FieldEdit));
1581
currEdit->expr = NULL;
1582
currEdit->fieldToEditName = takeQString (yyvsp[0].qstr);
1583
currEdit->append = 0;
1584
currEdit->textFormat = NULL;
1585
currEdit->fieldsForFormat = NULL;
1586
currEdit->next = NULL;
1590
#line 322 "./fconfig.y"
1592
currEdit->textFormat = takeQString (yyvsp[0].qstr);
1596
#line 327 "./fconfig.y"
1598
currEdit->fieldsForFormat = NULL;
1602
#line 330 "./fconfig.y"
1607
#line 334 "./fconfig.y"
1609
yyval.flist = newFieldListEnt (databaseBeingDefined, qStrVal (yyvsp[0].qstr),
1611
currEdit->fieldsForFormat = yyval.flist;
1615
#line 339 "./fconfig.y"
1617
yyval.flist = newFieldListEnt (databaseBeingDefined, qStrVal (yyvsp[0].qstr),
1619
yyvsp[-1].flist->next = yyval.flist;
1623
#line 355 "./fconfig.y"
1625
currField->maxPrsPerLine = yyvsp[0].intval;
1629
#line 369 "./fconfig.y"
1631
currField->multiEnumSeparator = takeQString (yyvsp[0].qstr);
1635
#line 379 "./fconfig.y"
1637
yyval.stringlist = new_string_list_ent (takeQString (yyvsp[0].qstr), NULL);
1638
currField->enumValues = yyval.stringlist;
1642
#line 383 "./fconfig.y"
1644
yyvsp[-1].stringlist->next = new_string_list_ent (takeQString (yyvsp[0].qstr), NULL);
1645
yyval.stringlist = yyvsp[-1].stringlist->next;
1649
#line 393 "./fconfig.y"
1651
currField->adm_db_name = takeQString (yyvsp[0].qstr);
1655
#line 396 "./fconfig.y"
1660
for (p = currField->adm_field_des; p != NULL; p = p->next)
1662
if (strcmp (p->name, qStrVal (yyvsp[0].qstr)) == 0)
1671
currField->key_field = which;
1677
asprintf (&msg, "Invalid adm subfield %s\n",
1678
qStrVal (yyvsp[0].qstr));
1685
#line 425 "./fconfig.y"
1687
currField->allow_any_value = 1;
1691
#line 435 "./fconfig.y"
1693
currField->multiEnumSeparator = takeQString (yyvsp[0].qstr);
1697
#line 440 "./fconfig.y"
1699
currField->default_value = takeQString (yyvsp[0].qstr);
1703
#line 443 "./fconfig.y"
1705
currField->input_default_value = takeQString (yyvsp[0].qstr);
1709
#line 448 "./fconfig.y"
1711
currField->adm_db_fields = 1;
1712
currField->adm_field_des = yyvsp[0].adm_field_des;
1713
yyval.adm_field_des = yyvsp[0].adm_field_des;
1717
#line 453 "./fconfig.y"
1719
yyvsp[-1].adm_field_des->next = yyvsp[0].adm_field_des;
1720
yyval.adm_field_des = yyvsp[0].adm_field_des;
1721
currField->adm_db_fields++;
1725
#line 460 "./fconfig.y"
1727
yyval.adm_field_des = (AdmFieldDesc *)
1728
xmalloc (sizeof (AdmFieldDesc));
1729
yyval.adm_field_des->name = takeQString (yyvsp[0].qstr);
1730
yyval.adm_field_des->next = NULL;
1734
#line 468 "./fconfig.y"
1736
currField->defaultSearchType = RegCmp;
1740
#line 471 "./fconfig.y"
1742
currField->defaultSearchType = RegFind;
1746
#line 476 "./fconfig.y"
1748
currField->textsearch = 1;
1752
#line 479 "./fconfig.y"
1754
currField->restricted = 1;
1758
#line 482 "./fconfig.y"
1760
currField->nospaces = 1;
1764
#line 485 "./fconfig.y"
1766
if (setBuiltinField (currField, qStrVal (yyvsp[0].qstr)) != 0)
1769
asprintf (&msg, "Invalid builtin fieldname %s",
1770
qStrVal (yyvsp[0].qstr));
1777
#line 496 "./fconfig.y"
1779
currField->description = takeQString (yyvsp[0].qstr);
1783
#line 499 "./fconfig.y"
1785
currField->readonly = 1;
1789
#line 502 "./fconfig.y"
1791
currField->auxFlags = yyvsp[-1].stringlist;
1795
#line 505 "./fconfig.y"
1797
currField->editonly = 1;
1801
#line 510 "./fconfig.y"
1803
yyval.stringlist = new_string_list_ent (takeQString (yyvsp[0].qstr), NULL);
1804
currField->auxFlags = yyval.stringlist;
1808
#line 514 "./fconfig.y"
1810
yyvsp[-1].stringlist->next = new_string_list_ent (takeQString (yyvsp[0].qstr), NULL);
1811
yyval.stringlist = yyvsp[-1].stringlist->next;
1815
#line 528 "./fconfig.y"
1817
addQueryFormat (databaseBeingDefined, qformat);
1822
#line 532 "./fconfig.y"
1824
freeQueryFormat (qformat);
1829
#line 538 "./fconfig.y"
1831
qformat = (QueryFormat *) xmalloc (sizeof (QueryFormat));
1832
qformat->name = takeQString (yyvsp[0].qstr);
1833
qformat->printf = NULL;
1834
qformat->separator = NULL;
1835
qformat->fields = NULL;
1836
qformat->next = NULL;
1840
#line 562 "./fconfig.y"
1842
qformat->rawQuery = 1;
1846
#line 567 "./fconfig.y"
1848
qformat->printf = takeQString (yyvsp[0].qstr);
1852
#line 576 "./fconfig.y"
1854
qformat->fields = yyvsp[0].flist;
1858
#line 579 "./fconfig.y"
1860
yyvsp[-1].flist->next = yyvsp[0].flist;
1861
yyval.flist = yyvsp[0].flist;
1865
#line 585 "./fconfig.y"
1867
yyval.flist = newFieldListEnt (databaseBeingDefined, qStrVal (yyvsp[0].qstr),
1869
if (parseComplexFieldIndex (yyval.flist->ent) != 0)
1873
asprintf (&msg, "Field %s is invalid\n", qStrVal (yyvsp[0].qstr));
1880
#line 599 "./fconfig.y"
1882
setIndexDesc (databaseBeingDefined, indexEntry);
1887
#line 603 "./fconfig.y"
1889
freeIndexDesc (indexEntry);
1894
#line 610 "./fconfig.y"
1896
indexEntry = newIndexDesc (databaseBeingDefined);
1900
#line 619 "./fconfig.y"
1902
setIndexDescPath (indexEntry, qStrVal (yyvsp[0].qstr));
1906
#line 627 "./fconfig.y"
1908
addFieldToIndex (indexEntry, yyvsp[0].flist);
1912
#line 630 "./fconfig.y"
1914
addFieldToIndex (indexEntry, yyvsp[0].flist);
1918
#line 635 "./fconfig.y"
1920
setIndexDescSeparator (indexEntry, takeQString (yyvsp[0].qstr));
1924
#line 638 "./fconfig.y"
1926
setIndexDescBinary (indexEntry, yyvsp[0].intval);
1930
#line 647 "./fconfig.y"
1932
setInputTemplate (databaseBeingDefined, yyvsp[-1].inputlist);
1936
#line 653 "./fconfig.y"
1938
setRequiredInputFields (databaseBeingDefined, requiredFlds);
1942
#line 656 "./fconfig.y"
1944
freeFieldList (requiredFlds);
1945
requiredFlds = NULL;
1949
#line 662 "./fconfig.y"
1951
requiredFlds = yyvsp[0].flist;
1955
#line 665 "./fconfig.y"
1957
yyvsp[-1].flist->next = yyvsp[0].flist;
1958
yyval.flist = yyvsp[0].flist;
1962
#line 671 "./fconfig.y"
1964
yyval.inputlist = inputTemplate;
1965
inputTemplate = NULL;
1969
#line 675 "./fconfig.y"
1971
yyval.inputlist = NULL;
1975
#line 680 "./fconfig.y"
1977
yyval.inputlist = (InputTemplate *)
1978
xmalloc (sizeof (InputTemplate));
1979
yyval.inputlist->index = find_field_index (databaseBeingDefined,
1980
qStrVal (yyvsp[0].qstr));
1981
if (yyval.inputlist->index == InvalidFieldIndex)
1985
asprintf (&msg, "Field %s is invalid\n",
1986
qStrVal (yyvsp[0].qstr));
1988
free (yyval.inputlist);
1990
inputTemplate = NULL;
1994
inputTemplate = yyval.inputlist;
1995
yyval.inputlist->next = NULL;
2000
#line 702 "./fconfig.y"
2002
yyval.inputlist = (InputTemplate *)
2003
xmalloc (sizeof (InputTemplate));
2004
yyval.inputlist->index = find_field_index (databaseBeingDefined,
2005
qStrVal (yyvsp[0].qstr));
2006
if (yyval.inputlist->index == InvalidFieldIndex)
2010
asprintf (&msg, "Field %s is invalid\n",
2011
qStrVal (yyvsp[0].qstr));
2014
free (yyval.inputlist);
2018
yyval.inputlist->next = NULL;
2019
yyvsp[-1].inputlist->next = yyval.inputlist;
2020
if (inputTemplate == NULL)
2022
inputTemplate = yyval.inputlist;
2028
#line 733 "./fconfig.y"
2030
addMessageFormat (databaseBeingDefined, mailFormat);
2035
#line 737 "./fconfig.y"
2037
freeMessageFormat (mailFormat);
2042
#line 743 "./fconfig.y"
2045
= (MailMessageFormat)
2046
xmalloc (sizeof (struct mail_message_format));
2047
mailFormat->name = takeQString (yyvsp[0].qstr);
2048
mailFormat->toAddresses = NULL;
2049
mailFormat->fromAddress = NULL;
2050
mailFormat->replyTo = NULL;
2051
mailFormat->body = NULL;
2052
mailFormat->header = NULL;
2053
mailFormat->next = NULL;
2057
#line 761 "./fconfig.y"
2059
mailFormat->body = qformat;
2064
#line 765 "./fconfig.y"
2066
mailFormat->header = qformat;
2071
#line 769 "./fconfig.y"
2073
mailFormat->toAddresses = yyvsp[-1].mailaddrlist;
2077
#line 772 "./fconfig.y"
2079
mailFormat->fromAddress = yyvsp[-1].mailaddr;
2083
#line 775 "./fconfig.y"
2085
mailFormat->replyTo = yyvsp[-1].mailaddrlist;
2089
#line 787 "./fconfig.y"
2091
freeQueryFormat (qformat);
2096
#line 793 "./fconfig.y"
2098
qformat = (QueryFormat *) xmalloc (sizeof (QueryFormat));
2099
qformat->name = NULL;
2100
qformat->printf = NULL;
2101
qformat->separator = NULL;
2102
qformat->fields = NULL;
2103
qformat->next = NULL;
2107
#line 803 "./fconfig.y"
2109
yyval.mailaddrlist = (MailAddressList *) xmalloc (sizeof (MailAddressList));
2110
yyval.mailaddrlist->address = yyvsp[0].mailaddr;
2111
yyval.mailaddrlist->next = NULL;
2115
#line 808 "./fconfig.y"
2117
MailAddressList *lp = yyval.mailaddrlist;
2118
while (lp->next != NULL) { lp = lp->next; }
2120
(MailAddressList *) xmalloc (sizeof (MailAddressList));
2121
lp->next->address = yyvsp[0].mailaddr;
2122
lp->next->next = NULL;
2126
#line 818 "./fconfig.y"
2128
yyval.mailaddr = (MailAddress *) xmalloc (sizeof (MailAddress));
2129
yyval.mailaddr->fixedAddress = takeQString (yyvsp[0].qstr);
2130
yyval.mailaddr->addresses = NULL;
2134
#line 823 "./fconfig.y"
2136
yyval.mailaddr = (MailAddress *) xmalloc (sizeof (MailAddress));
2137
yyval.mailaddr->fixedAddress = NULL;
2138
yyval.mailaddr->addresses = yyvsp[0].flist;
2142
#line 830 "./fconfig.y"
2144
yyval.flist = yyvsp[0].flist;
2148
#line 833 "./fconfig.y"
2150
FieldList p = yyval.flist;
2151
while (p->next != NULL)
2155
p->next = yyvsp[0].flist;
2159
#line 843 "./fconfig.y"
2161
yyval.flist = newFieldListEnt (databaseBeingDefined, qStrVal (yyvsp[0].qstr),
2166
#line 849 "./fconfig.y"
2168
setAuditTrailFormat (databaseBeingDefined, qformat);
2173
#line 706 "/usr/share/bison/bison.simple"
2185
short *yyssp1 = yyss - 1;
2186
YYFPRINTF (stderr, "state stack now");
2187
while (yyssp1 != yyssp)
2188
YYFPRINTF (stderr, " %d", *++yyssp1);
2189
YYFPRINTF (stderr, "\n");
2198
/* Now `shift' the result of the reduction. Determine what state
2199
that goes to, based on the state we popped back to and the rule
2200
number reduced by. */
2204
yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
2205
if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2206
yystate = yytable[yystate];
2208
yystate = yydefgoto[yyn - YYNTBASE];
2213
/*------------------------------------.
2214
| yyerrlab -- here on detecting error |
2215
`------------------------------------*/
2217
/* If not already recovering from an error, report this error. */
2222
#ifdef YYERROR_VERBOSE
2223
yyn = yypact[yystate];
2225
if (yyn > YYFLAG && yyn < YYLAST)
2227
YYSIZE_T yysize = 0;
2232
/* Start YYX at -YYN if negative to avoid negative indexes in
2234
for (yyx = yyn < 0 ? -yyn : 0;
2235
yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
2236
if (yycheck[yyx + yyn] == yyx)
2237
yysize += yystrlen (yytname[yyx]) + 15, yycount++;
2238
yysize += yystrlen ("parse error, unexpected ") + 1;
2239
yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
2240
yymsg = (char *) YYSTACK_ALLOC (yysize);
2243
char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
2244
yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
2249
for (yyx = yyn < 0 ? -yyn : 0;
2250
yyx < (int) (sizeof (yytname) / sizeof (char *));
2252
if (yycheck[yyx + yyn] == yyx)
2254
const char *yyq = ! yycount ? ", expecting " : " or ";
2255
yyp = yystpcpy (yyp, yyq);
2256
yyp = yystpcpy (yyp, yytname[yyx]);
2261
YYSTACK_FREE (yymsg);
2264
yyerror ("parse error; also virtual memory exhausted");
2267
#endif /* defined (YYERROR_VERBOSE) */
2268
yyerror ("parse error");
2273
/*--------------------------------------------------.
2274
| yyerrlab1 -- error raised explicitly by an action |
2275
`--------------------------------------------------*/
2277
if (yyerrstatus == 3)
2279
/* If just tried and failed to reuse lookahead token after an
2280
error, discard it. */
2282
/* return failure if at end of input */
2283
if (yychar == YYEOF)
2285
YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
2286
yychar, yytname[yychar1]));
2290
/* Else will try to reuse lookahead token after shifting the error
2293
yyerrstatus = 3; /* Each real token shifted decrements this */
2298
/*-------------------------------------------------------------------.
2299
| yyerrdefault -- current state does not do anything special for the |
2301
`-------------------------------------------------------------------*/
2304
/* This is wrong; only states that explicitly want error tokens
2305
should shift them. */
2307
/* If its default is to accept any token, ok. Otherwise pop it. */
2308
yyn = yydefact[yystate];
2314
/*---------------------------------------------------------------.
2315
| yyerrpop -- pop the current state because it cannot handle the |
2317
`---------------------------------------------------------------*/
2330
short *yyssp1 = yyss - 1;
2331
YYFPRINTF (stderr, "Error: state stack now");
2332
while (yyssp1 != yyssp)
2333
YYFPRINTF (stderr, " %d", *++yyssp1);
2334
YYFPRINTF (stderr, "\n");
2342
yyn = yypact[yystate];
2347
if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
2364
YYDPRINTF ((stderr, "Shifting error token, "));
2375
/*-------------------------------------.
2376
| yyacceptlab -- YYACCEPT comes here. |
2377
`-------------------------------------*/
2382
/*-----------------------------------.
2383
| yyabortlab -- YYABORT comes here. |
2384
`-----------------------------------*/
2389
/*---------------------------------------------.
2390
| yyoverflowab -- parser overflow comes here. |
2391
`---------------------------------------------*/
2393
yyerror ("parser stack overflow");
2400
YYSTACK_FREE (yyss);
2404
#line 853 "./fconfig.y"