3
ssl_expr_yyrcsid[] = "$FreeBSD: src/usr.bin/yacc/skeleton.c,v 1.28.2.1 2001/07/19 05:46:39 peter Exp $";
9
#define YYLEX ssl_expr_yylex()
11
#define ssl_expr_yyclearin (ssl_expr_yychar=(YYEMPTY))
12
#define ssl_expr_yyerrok (ssl_expr_yyerrflag=0)
13
#define YYRECOVERING() (ssl_expr_yyerrflag!=0)
14
#if defined(__cplusplus) || __STDC__
15
static int ssl_expr_yygrowstack(void);
17
static int ssl_expr_yygrowstack();
19
#define YYPREFIX "ssl_expr_yy"
20
#line 36 "ssl_expr_parse.y"
21
#include "ssl_private.h"
22
#line 39 "ssl_expr_parse.y"
36
#define T_FUNC_FILE 264
50
const short ssl_expr_yylhs[] = { -1,
51
0, 1, 1, 1, 1, 1, 1, 1, 2, 2,
52
2, 2, 2, 2, 2, 2, 2, 6, 6, 5,
53
5, 7, 7, 7, 7, 4, 4, 3,
55
const short ssl_expr_yylen[] = { 2,
56
1, 1, 1, 2, 3, 3, 1, 3, 3, 3,
57
3, 3, 3, 3, 3, 3, 3, 4, 3, 1,
58
3, 1, 1, 4, 1, 1, 1, 4,
60
const short ssl_expr_yydefred[] = { 0,
61
2, 3, 22, 23, 0, 0, 0, 0, 0, 0,
62
7, 25, 0, 0, 4, 0, 0, 0, 0, 0,
63
0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
64
0, 0, 6, 9, 10, 11, 12, 13, 14, 26,
65
27, 16, 17, 0, 0, 15, 28, 24, 0, 0,
68
const short ssl_expr_yydgoto[] = { 9,
69
10, 11, 12, 42, 50, 46, 13,
71
const short ssl_expr_yysindex[] = { -37,
72
0, 0, 0, 0, -16, -37, -37, -92, 0, -248,
73
0, 0, -250, -228, 0, -39, -226, -37, -37, -33,
74
-33, -33, -33, -33, -33, -233, -233, -118, -6, 0,
75
-88, -238, 0, 0, 0, 0, 0, 0, 0, 0,
76
0, 0, 0, -1, -33, 0, 0, 0, -33, -38,
79
const short ssl_expr_yyrindex[] = { 0,
80
0, 0, 0, 0, 0, 0, 0, 0, 0, 40,
81
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
82
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
83
0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
84
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
87
const short ssl_expr_yygindex[] = { 0,
88
7, 0, 0, 17, 0, 0, -13,
90
#define YYTABLESIZE 276
91
const short ssl_expr_yytable[] = { 8,
92
5, 30, 7, 8, 45, 54, 34, 35, 36, 37,
93
38, 39, 15, 16, 20, 21, 22, 23, 24, 25,
94
26, 27, 28, 14, 32, 33, 18, 19, 40, 41,
95
17, 51, 29, 31, 47, 52, 48, 19, 49, 1,
96
56, 5, 55, 43, 0, 0, 0, 0, 0, 0,
97
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
98
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
99
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
100
0, 0, 0, 0, 0, 0, 53, 0, 0, 0,
101
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
102
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
103
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
104
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
105
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
106
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
107
0, 0, 0, 0, 0, 44, 0, 0, 0, 0,
108
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
109
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
110
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
111
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
112
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
113
0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
114
2, 3, 0, 4, 0, 3, 5, 4, 0, 0,
115
5, 0, 0, 0, 0, 18, 19, 0, 0, 6,
116
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
117
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
118
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
121
const short ssl_expr_yycheck[] = { 37,
122
0, 41, 40, 37, 123, 44, 20, 21, 22, 23,
123
24, 25, 6, 7, 265, 266, 267, 268, 269, 270,
124
271, 272, 273, 40, 18, 19, 275, 276, 262, 263,
125
123, 45, 261, 260, 41, 49, 125, 276, 40, 0,
126
54, 41, 41, 27, -1, -1, -1, -1, -1, -1,
127
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
128
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
129
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
130
-1, -1, -1, -1, -1, -1, 125, -1, -1, -1,
131
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
132
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
133
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
134
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
135
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
136
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
137
-1, -1, -1, -1, -1, 274, -1, -1, -1, -1,
138
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
139
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
140
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
141
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
142
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
143
-1, -1, -1, -1, -1, -1, -1, -1, -1, 257,
144
258, 259, -1, 261, -1, 259, 264, 261, -1, -1,
145
264, -1, -1, -1, -1, 275, 276, -1, -1, 277,
146
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
147
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
148
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
149
-1, -1, -1, -1, -1, 275,
155
#define YYMAXTOKEN 277
157
const char * const ssl_expr_yyname[] = {
158
"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
159
0,0,0,"'%'",0,0,"'('","')'",0,0,"','",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
160
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
161
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'{'",0,"'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
162
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
163
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
164
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"T_TRUE",
165
"T_FALSE","T_DIGIT","T_ID","T_STRING","T_REGEX","T_REGEX_I","T_FUNC_FILE",
166
"T_OP_EQ","T_OP_NE","T_OP_LT","T_OP_LE","T_OP_GT","T_OP_GE","T_OP_REG",
167
"T_OP_NRE","T_OP_IN","T_OP_OID","T_OP_OR","T_OP_AND","T_OP_NOT",
169
const char * const ssl_expr_yyrule[] = {
174
"expr : T_OP_NOT expr",
175
"expr : expr T_OP_OR expr",
176
"expr : expr T_OP_AND expr",
178
"expr : '(' expr ')'",
179
"comparison : word T_OP_EQ word",
180
"comparison : word T_OP_NE word",
181
"comparison : word T_OP_LT word",
182
"comparison : word T_OP_LE word",
183
"comparison : word T_OP_GT word",
184
"comparison : word T_OP_GE word",
185
"comparison : word T_OP_IN wordlist",
186
"comparison : word T_OP_REG regex",
187
"comparison : word T_OP_NRE regex",
188
"wordlist : T_OP_OID '(' word ')'",
189
"wordlist : '{' words '}'",
191
"words : words ',' word",
194
"word : '%' '{' T_ID '}'",
198
"funccall : T_FUNC_FILE '(' T_STRING ')'",
206
#define YYMAXDEPTH YYSTACKSIZE
209
#define YYSTACKSIZE YYMAXDEPTH
211
#define YYSTACKSIZE 10000
212
#define YYMAXDEPTH 10000
215
#define YYINITSTACKSIZE 200
216
int ssl_expr_yydebug;
217
int ssl_expr_yynerrs;
218
int ssl_expr_yyerrflag;
220
short *ssl_expr_yyssp;
221
YYSTYPE *ssl_expr_yyvsp;
222
YYSTYPE ssl_expr_yyval;
223
YYSTYPE ssl_expr_yylval;
224
short *ssl_expr_yyss;
225
short *ssl_expr_yysslim;
226
YYSTYPE *ssl_expr_yyvs;
227
int ssl_expr_yystacksize;
228
#line 148 "ssl_expr_parse.y"
230
int ssl_expr_yyerror(char *s)
237
/* allocate initial stack or double stack size, up to YYMAXDEPTH */
238
static int ssl_expr_yygrowstack()
244
if ((newsize = ssl_expr_yystacksize) == 0)
245
newsize = YYINITSTACKSIZE;
246
else if (newsize >= YYMAXDEPTH)
248
else if ((newsize *= 2) > YYMAXDEPTH)
249
newsize = YYMAXDEPTH;
250
i = ssl_expr_yyssp - ssl_expr_yyss;
251
newss = ssl_expr_yyss ? (short *)realloc(ssl_expr_yyss, newsize * sizeof *newss) :
252
(short *)malloc(newsize * sizeof *newss);
255
ssl_expr_yyss = newss;
256
ssl_expr_yyssp = newss + i;
257
newvs = ssl_expr_yyvs ? (YYSTYPE *)realloc(ssl_expr_yyvs, newsize * sizeof *newvs) :
258
(YYSTYPE *)malloc(newsize * sizeof *newvs);
261
ssl_expr_yyvs = newvs;
262
ssl_expr_yyvsp = newvs + i;
263
ssl_expr_yystacksize = newsize;
264
ssl_expr_yysslim = ssl_expr_yyss + newsize - 1;
268
#define YYABORT goto ssl_expr_yyabort
269
#define YYREJECT goto ssl_expr_yyabort
270
#define YYACCEPT goto ssl_expr_yyaccept
271
#define YYERROR goto ssl_expr_yyerrlab
273
#ifndef YYPARSE_PARAM
274
#if defined(__cplusplus) || __STDC__
275
#define YYPARSE_PARAM_ARG void
276
#define YYPARSE_PARAM_DECL
277
#else /* ! ANSI-C/C++ */
278
#define YYPARSE_PARAM_ARG
279
#define YYPARSE_PARAM_DECL
280
#endif /* ANSI-C/C++ */
281
#else /* YYPARSE_PARAM */
282
#ifndef YYPARSE_PARAM_TYPE
283
#define YYPARSE_PARAM_TYPE void *
285
#if defined(__cplusplus) || __STDC__
286
#define YYPARSE_PARAM_ARG YYPARSE_PARAM_TYPE YYPARSE_PARAM
287
#define YYPARSE_PARAM_DECL
288
#else /* ! ANSI-C/C++ */
289
#define YYPARSE_PARAM_ARG YYPARSE_PARAM
290
#define YYPARSE_PARAM_DECL YYPARSE_PARAM_TYPE YYPARSE_PARAM;
291
#endif /* ANSI-C/C++ */
292
#endif /* ! YYPARSE_PARAM */
295
ssl_expr_yyparse (YYPARSE_PARAM_ARG)
298
register int ssl_expr_yym, ssl_expr_yyn, ssl_expr_yystate;
300
register const char *ssl_expr_yys;
302
if ((ssl_expr_yys = getenv("YYDEBUG")))
304
ssl_expr_yyn = *ssl_expr_yys;
305
if (ssl_expr_yyn >= '0' && ssl_expr_yyn <= '9')
306
ssl_expr_yydebug = ssl_expr_yyn - '0';
310
ssl_expr_yynerrs = 0;
311
ssl_expr_yyerrflag = 0;
312
ssl_expr_yychar = (-1);
314
if (ssl_expr_yyss == NULL && ssl_expr_yygrowstack()) goto ssl_expr_yyoverflow;
315
ssl_expr_yyssp = ssl_expr_yyss;
316
ssl_expr_yyvsp = ssl_expr_yyvs;
317
*ssl_expr_yyssp = ssl_expr_yystate = 0;
320
if ((ssl_expr_yyn = ssl_expr_yydefred[ssl_expr_yystate])) goto ssl_expr_yyreduce;
321
if (ssl_expr_yychar < 0)
323
if ((ssl_expr_yychar = ssl_expr_yylex()) < 0) ssl_expr_yychar = 0;
325
if (ssl_expr_yydebug)
328
if (ssl_expr_yychar <= YYMAXTOKEN) ssl_expr_yys = ssl_expr_yyname[ssl_expr_yychar];
329
if (!ssl_expr_yys) ssl_expr_yys = "illegal-symbol";
330
printf("%sdebug: state %d, reading %d (%s)\n",
331
YYPREFIX, ssl_expr_yystate, ssl_expr_yychar, ssl_expr_yys);
335
if ((ssl_expr_yyn = ssl_expr_yysindex[ssl_expr_yystate]) && (ssl_expr_yyn += ssl_expr_yychar) >= 0 &&
336
ssl_expr_yyn <= YYTABLESIZE && ssl_expr_yycheck[ssl_expr_yyn] == ssl_expr_yychar)
339
if (ssl_expr_yydebug)
340
printf("%sdebug: state %d, shifting to state %d\n",
341
YYPREFIX, ssl_expr_yystate, ssl_expr_yytable[ssl_expr_yyn]);
343
if (ssl_expr_yyssp >= ssl_expr_yysslim && ssl_expr_yygrowstack())
345
goto ssl_expr_yyoverflow;
347
*++ssl_expr_yyssp = ssl_expr_yystate = ssl_expr_yytable[ssl_expr_yyn];
348
*++ssl_expr_yyvsp = ssl_expr_yylval;
349
ssl_expr_yychar = (-1);
350
if (ssl_expr_yyerrflag > 0) --ssl_expr_yyerrflag;
351
goto ssl_expr_yyloop;
353
if ((ssl_expr_yyn = ssl_expr_yyrindex[ssl_expr_yystate]) && (ssl_expr_yyn += ssl_expr_yychar) >= 0 &&
354
ssl_expr_yyn <= YYTABLESIZE && ssl_expr_yycheck[ssl_expr_yyn] == ssl_expr_yychar)
356
ssl_expr_yyn = ssl_expr_yytable[ssl_expr_yyn];
357
goto ssl_expr_yyreduce;
359
if (ssl_expr_yyerrflag) goto ssl_expr_yyinrecovery;
360
#if defined(lint) || defined(__GNUC__)
361
goto ssl_expr_yynewerror;
364
ssl_expr_yyerror("syntax error");
365
#if defined(lint) || defined(__GNUC__)
366
goto ssl_expr_yyerrlab;
370
ssl_expr_yyinrecovery:
371
if (ssl_expr_yyerrflag < 3)
373
ssl_expr_yyerrflag = 3;
376
if ((ssl_expr_yyn = ssl_expr_yysindex[*ssl_expr_yyssp]) && (ssl_expr_yyn += YYERRCODE) >= 0 &&
377
ssl_expr_yyn <= YYTABLESIZE && ssl_expr_yycheck[ssl_expr_yyn] == YYERRCODE)
380
if (ssl_expr_yydebug)
381
printf("%sdebug: state %d, error recovery shifting\
382
to state %d\n", YYPREFIX, *ssl_expr_yyssp, ssl_expr_yytable[ssl_expr_yyn]);
384
if (ssl_expr_yyssp >= ssl_expr_yysslim && ssl_expr_yygrowstack())
386
goto ssl_expr_yyoverflow;
388
*++ssl_expr_yyssp = ssl_expr_yystate = ssl_expr_yytable[ssl_expr_yyn];
389
*++ssl_expr_yyvsp = ssl_expr_yylval;
390
goto ssl_expr_yyloop;
395
if (ssl_expr_yydebug)
396
printf("%sdebug: error recovery discarding state %d\n",
397
YYPREFIX, *ssl_expr_yyssp);
399
if (ssl_expr_yyssp <= ssl_expr_yyss) goto ssl_expr_yyabort;
407
if (ssl_expr_yychar == 0) goto ssl_expr_yyabort;
409
if (ssl_expr_yydebug)
412
if (ssl_expr_yychar <= YYMAXTOKEN) ssl_expr_yys = ssl_expr_yyname[ssl_expr_yychar];
413
if (!ssl_expr_yys) ssl_expr_yys = "illegal-symbol";
414
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
415
YYPREFIX, ssl_expr_yystate, ssl_expr_yychar, ssl_expr_yys);
418
ssl_expr_yychar = (-1);
419
goto ssl_expr_yyloop;
423
if (ssl_expr_yydebug)
424
printf("%sdebug: state %d, reducing by rule %d (%s)\n",
425
YYPREFIX, ssl_expr_yystate, ssl_expr_yyn, ssl_expr_yyrule[ssl_expr_yyn]);
427
ssl_expr_yym = ssl_expr_yylen[ssl_expr_yyn];
428
ssl_expr_yyval = ssl_expr_yyvsp[1-ssl_expr_yym];
429
switch (ssl_expr_yyn)
432
#line 84 "ssl_expr_parse.y"
433
{ ssl_expr_info.expr = ssl_expr_yyvsp[0].exVal; }
436
#line 87 "ssl_expr_parse.y"
437
{ ssl_expr_yyval.exVal = ssl_expr_make(op_True, NULL, NULL); }
440
#line 88 "ssl_expr_parse.y"
441
{ ssl_expr_yyval.exVal = ssl_expr_make(op_False, NULL, NULL); }
444
#line 89 "ssl_expr_parse.y"
445
{ ssl_expr_yyval.exVal = ssl_expr_make(op_Not, ssl_expr_yyvsp[0].exVal, NULL); }
448
#line 90 "ssl_expr_parse.y"
449
{ ssl_expr_yyval.exVal = ssl_expr_make(op_Or, ssl_expr_yyvsp[-2].exVal, ssl_expr_yyvsp[0].exVal); }
452
#line 91 "ssl_expr_parse.y"
453
{ ssl_expr_yyval.exVal = ssl_expr_make(op_And, ssl_expr_yyvsp[-2].exVal, ssl_expr_yyvsp[0].exVal); }
456
#line 92 "ssl_expr_parse.y"
457
{ ssl_expr_yyval.exVal = ssl_expr_make(op_Comp, ssl_expr_yyvsp[0].exVal, NULL); }
460
#line 93 "ssl_expr_parse.y"
461
{ ssl_expr_yyval.exVal = ssl_expr_yyvsp[-1].exVal; }
464
#line 96 "ssl_expr_parse.y"
465
{ ssl_expr_yyval.exVal = ssl_expr_make(op_EQ, ssl_expr_yyvsp[-2].exVal, ssl_expr_yyvsp[0].exVal); }
468
#line 97 "ssl_expr_parse.y"
469
{ ssl_expr_yyval.exVal = ssl_expr_make(op_NE, ssl_expr_yyvsp[-2].exVal, ssl_expr_yyvsp[0].exVal); }
472
#line 98 "ssl_expr_parse.y"
473
{ ssl_expr_yyval.exVal = ssl_expr_make(op_LT, ssl_expr_yyvsp[-2].exVal, ssl_expr_yyvsp[0].exVal); }
476
#line 99 "ssl_expr_parse.y"
477
{ ssl_expr_yyval.exVal = ssl_expr_make(op_LE, ssl_expr_yyvsp[-2].exVal, ssl_expr_yyvsp[0].exVal); }
480
#line 100 "ssl_expr_parse.y"
481
{ ssl_expr_yyval.exVal = ssl_expr_make(op_GT, ssl_expr_yyvsp[-2].exVal, ssl_expr_yyvsp[0].exVal); }
484
#line 101 "ssl_expr_parse.y"
485
{ ssl_expr_yyval.exVal = ssl_expr_make(op_GE, ssl_expr_yyvsp[-2].exVal, ssl_expr_yyvsp[0].exVal); }
488
#line 102 "ssl_expr_parse.y"
489
{ ssl_expr_yyval.exVal = ssl_expr_make(op_IN, ssl_expr_yyvsp[-2].exVal, ssl_expr_yyvsp[0].exVal); }
492
#line 103 "ssl_expr_parse.y"
493
{ ssl_expr_yyval.exVal = ssl_expr_make(op_REG, ssl_expr_yyvsp[-2].exVal, ssl_expr_yyvsp[0].exVal); }
496
#line 104 "ssl_expr_parse.y"
497
{ ssl_expr_yyval.exVal = ssl_expr_make(op_NRE, ssl_expr_yyvsp[-2].exVal, ssl_expr_yyvsp[0].exVal); }
500
#line 107 "ssl_expr_parse.y"
501
{ ssl_expr_yyval.exVal = ssl_expr_make(op_OidListElement, ssl_expr_yyvsp[-1].exVal, NULL); }
504
#line 108 "ssl_expr_parse.y"
505
{ ssl_expr_yyval.exVal = ssl_expr_yyvsp[-1].exVal ; }
508
#line 111 "ssl_expr_parse.y"
509
{ ssl_expr_yyval.exVal = ssl_expr_make(op_ListElement, ssl_expr_yyvsp[0].exVal, NULL); }
512
#line 112 "ssl_expr_parse.y"
513
{ ssl_expr_yyval.exVal = ssl_expr_make(op_ListElement, ssl_expr_yyvsp[0].exVal, ssl_expr_yyvsp[-2].exVal); }
516
#line 115 "ssl_expr_parse.y"
517
{ ssl_expr_yyval.exVal = ssl_expr_make(op_Digit, ssl_expr_yyvsp[0].cpVal, NULL); }
520
#line 116 "ssl_expr_parse.y"
521
{ ssl_expr_yyval.exVal = ssl_expr_make(op_String, ssl_expr_yyvsp[0].cpVal, NULL); }
524
#line 117 "ssl_expr_parse.y"
525
{ ssl_expr_yyval.exVal = ssl_expr_make(op_Var, ssl_expr_yyvsp[-1].cpVal, NULL); }
528
#line 118 "ssl_expr_parse.y"
529
{ ssl_expr_yyval.exVal = ssl_expr_yyvsp[0].exVal; }
532
#line 121 "ssl_expr_parse.y"
535
if ((regex = ap_pregcomp(ssl_expr_info.pool, ssl_expr_yyvsp[0].cpVal,
536
AP_REG_EXTENDED|AP_REG_NOSUB)) == NULL) {
537
ssl_expr_error = "Failed to compile regular expression";
540
ssl_expr_yyval.exVal = ssl_expr_make(op_Regex, regex, NULL);
544
#line 130 "ssl_expr_parse.y"
547
if ((regex = ap_pregcomp(ssl_expr_info.pool, ssl_expr_yyvsp[0].cpVal,
548
AP_REG_EXTENDED|AP_REG_NOSUB|AP_REG_ICASE)) == NULL) {
549
ssl_expr_error = "Failed to compile regular expression";
552
ssl_expr_yyval.exVal = ssl_expr_make(op_Regex, regex, NULL);
556
#line 141 "ssl_expr_parse.y"
558
ssl_expr *args = ssl_expr_make(op_ListElement, ssl_expr_yyvsp[-1].cpVal, NULL);
559
ssl_expr_yyval.exVal = ssl_expr_make(op_Func, "file", args);
564
ssl_expr_yyssp -= ssl_expr_yym;
565
ssl_expr_yystate = *ssl_expr_yyssp;
566
ssl_expr_yyvsp -= ssl_expr_yym;
567
ssl_expr_yym = ssl_expr_yylhs[ssl_expr_yyn];
568
if (ssl_expr_yystate == 0 && ssl_expr_yym == 0)
571
if (ssl_expr_yydebug)
572
printf("%sdebug: after reduction, shifting from state 0 to\
573
state %d\n", YYPREFIX, YYFINAL);
575
ssl_expr_yystate = YYFINAL;
576
*++ssl_expr_yyssp = YYFINAL;
577
*++ssl_expr_yyvsp = ssl_expr_yyval;
578
if (ssl_expr_yychar < 0)
580
if ((ssl_expr_yychar = ssl_expr_yylex()) < 0) ssl_expr_yychar = 0;
582
if (ssl_expr_yydebug)
585
if (ssl_expr_yychar <= YYMAXTOKEN) ssl_expr_yys = ssl_expr_yyname[ssl_expr_yychar];
586
if (!ssl_expr_yys) ssl_expr_yys = "illegal-symbol";
587
printf("%sdebug: state %d, reading %d (%s)\n",
588
YYPREFIX, YYFINAL, ssl_expr_yychar, ssl_expr_yys);
592
if (ssl_expr_yychar == 0) goto ssl_expr_yyaccept;
593
goto ssl_expr_yyloop;
595
if ((ssl_expr_yyn = ssl_expr_yygindex[ssl_expr_yym]) && (ssl_expr_yyn += ssl_expr_yystate) >= 0 &&
596
ssl_expr_yyn <= YYTABLESIZE && ssl_expr_yycheck[ssl_expr_yyn] == ssl_expr_yystate)
597
ssl_expr_yystate = ssl_expr_yytable[ssl_expr_yyn];
599
ssl_expr_yystate = ssl_expr_yydgoto[ssl_expr_yym];
601
if (ssl_expr_yydebug)
602
printf("%sdebug: after reduction, shifting from state %d \
603
to state %d\n", YYPREFIX, *ssl_expr_yyssp, ssl_expr_yystate);
605
if (ssl_expr_yyssp >= ssl_expr_yysslim && ssl_expr_yygrowstack())
607
goto ssl_expr_yyoverflow;
609
*++ssl_expr_yyssp = ssl_expr_yystate;
610
*++ssl_expr_yyvsp = ssl_expr_yyval;
611
goto ssl_expr_yyloop;
613
ssl_expr_yyerror("yacc stack overflow");