Coverage Report

Created: 2026-08-31 06:36

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/opensips/cfg.tab.c
Line
Count
Source
1
/* A Bison parser, made by GNU Bison 3.5.1.  */
2
3
/* Bison implementation for Yacc-like parsers in C
4
5
   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
6
   Inc.
7
8
   This program is free software: you can redistribute it and/or modify
9
   it under the terms of the GNU General Public License as published by
10
   the Free Software Foundation, either version 3 of the License, or
11
   (at your option) any later version.
12
13
   This program is distributed in the hope that it will be useful,
14
   but WITHOUT ANY WARRANTY; without even the implied warranty of
15
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
   GNU General Public License for more details.
17
18
   You should have received a copy of the GNU General Public License
19
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
20
21
/* As a special exception, you may create a larger work that contains
22
   part or all of the Bison parser skeleton and distribute that work
23
   under terms of your choice, so long as that work isn't itself a
24
   parser generator using the skeleton or a modified version thereof
25
   as a parser skeleton.  Alternatively, if you modify or redistribute
26
   the parser skeleton itself, you may (at your option) remove this
27
   special exception, which will cause the skeleton and the resulting
28
   Bison output files to be licensed under the GNU General Public
29
   License without this special exception.
30
31
   This special exception was added by the Free Software Foundation in
32
   version 2.2 of Bison.  */
33
34
/* C LALR(1) parser skeleton written by Richard Stallman, by
35
   simplifying the original so-called "semantic" parser.  */
36
37
/* All symbols defined below should begin with yy or YY, to avoid
38
   infringing on user name space.  This should be done even for local
39
   variables, as they might otherwise be expanded by user macros.
40
   There are some unavoidable exceptions within include files to
41
   define necessary library symbols; they are noted "INFRINGES ON
42
   USER NAME SPACE" below.  */
43
44
/* Undocumented macros, especially those whose name start with YY_,
45
   are private implementation details.  Do not rely on them.  */
46
47
/* Identify Bison output.  */
48
#define YYBISON 1
49
50
/* Bison version.  */
51
#define YYBISON_VERSION "3.5.1"
52
53
/* Skeleton name.  */
54
#define YYSKELETON_NAME "yacc.c"
55
56
/* Pure parsers.  */
57
#define YYPURE 0
58
59
/* Push parsers.  */
60
#define YYPUSH 0
61
62
/* Pull parsers.  */
63
#define YYPULL 1
64
65
66
67
68
/* First part of user prologue.  */
69
#line 79 "cfg.y"
70
71
72
#include <stdlib.h>
73
#include <stdio.h>
74
#include <sys/socket.h>
75
#include <unistd.h>
76
#include <netinet/in.h>
77
#include <netinet/in_systm.h>
78
#include <netinet/ip.h>
79
#include <arpa/inet.h>
80
#include <string.h>
81
#include <errno.h>
82
#include "route_struct.h"
83
#include "globals.h"
84
#include "route.h"
85
#include "dprint.h"
86
#include "cfg_pp.h"
87
#include "sr_module.h"
88
#include "modparam.h"
89
#include "ip_addr.h"
90
#include "resolve.h"
91
#include "socket_info.h"
92
#include "name_alias.h"
93
#include "ut.h"
94
#include "pt_scaling.h"
95
#include "dset.h"
96
#include "pvar.h"
97
#include "blacklists.h"
98
#include "xlog.h"
99
#include "db/db_insertq.h"
100
#include "bin_interface.h"
101
#include "net/trans.h"
102
#include "config.h"
103
#include "mem/rpm_mem.h"
104
#include "poll_types.h"
105
#include "reactor_defs.h"
106
107
#ifdef SHM_EXTRA_STATS
108
#include "mem/module_info.h"
109
#endif
110
111
#ifdef DEBUG_DMALLOC
112
#include <dmalloc.h>
113
#endif
114
115
/* hack to avoid alloca usage in the generated C file (needed for compiler
116
 with no built in alloca, like icc*/
117
#undef _ALLOCA_H
118
119
#undef MIN
120
#undef MAX
121
122
extern int yylex();
123
static void yyerror(char* s);
124
static void yyerrorf(char* fmt, ...);
125
static char* tmp;
126
static int i_tmp, rc;
127
static struct socket_id* lst_tmp;
128
static int rt;  /* Type of route block for find_export */
129
static str s_tmp;
130
static str tstr;
131
static struct net* net_tmp;
132
static pv_spec_t *spec;
133
static pv_elem_t *elem;
134
static struct bl_rule *bl_head = 0;
135
static struct bl_rule *bl_tail = 0;
136
static struct script_route_ref *rt_ref = NULL;
137
138
action_elem_t elems[MAX_ACTION_ELEMS];
139
static action_elem_t route_elems[MAX_ACTION_ELEMS];
140
action_elem_t *a_tmp;
141
142
struct port_range {
143
  int min;
144
  int max;
145
  struct port_range *next;
146
} *pr_tmp;
147
static struct script_return_param sr_tmp;
148
149
static inline void warn(char* s);
150
static struct socket_id* mk_listen_id(char*, enum sip_protos, int);
151
static struct socket_id* mk_listen_id_range(char*, enum sip_protos, struct port_range *);
152
static struct socket_id* set_listen_id_adv(struct socket_id *, char *, int);
153
static struct socket_id* mk_bond_id(char*, struct socket_bond_elem *);
154
static struct multi_str *new_string(char *s);
155
static struct port_range* mk_port_range(int, int);
156
static struct socket_bond_elem *new_socket_bond_elem(char *name);
157
static int parse_ipnet(char *in, int len, struct net **ipnet);
158
static struct script_return_param *mk_script_return(enum script_return_type type)
159
0
{
160
0
  struct script_return_param *param = pkg_malloc(sizeof *param);
161
0
  if (!param)
162
0
    return NULL;
163
0
  *param = sr_tmp;
164
0
  param->type = type;
165
0
  param->next = NULL;
166
0
  return param;
167
0
}
168
169
extern int line;
170
extern int column;
171
extern int startcolumn;
172
extern char *finame;
173
174
struct listen_param {
175
  enum si_flags flags;
176
  int workers;
177
  int tos;
178
  struct socket_id *socket;
179
  char *tag;
180
  char *auto_scaling_profile;
181
} p_tmp;
182
static void fill_socket_id(struct listen_param *param, struct socket_id *s);
183
184
union route_name_var {
185
  int iname;
186
  struct _pv_spec *sname;
187
  struct _pv_elem *ename;
188
  void *data;
189
} rn_tmp;
190
191
#ifndef SHM_EXTRA_STATS
192
struct multi_str{
193
  char *s;
194
  struct multi_str* next;
195
};
196
#else
197
static struct multi_str *tmp_mod;
198
#endif
199
200
#define get_cfg_file_name \
201
0
  ((finame) ? finame : cfg_file ? cfg_file : "default")
202
203
0
#define si_subdomain_to_alias_flag(_flags) (int) _flags & SI_ACCEPT_SUBDOMAIN_ALIAS
204
205
#define mk_action_(_res, _type, _no, _elems) \
206
0
  do { \
207
0
    _res = mk_action(_type, _no, _elems, line, get_cfg_file_name); \
208
0
  } while(0)
209
#define mk_action0(_res, _type) \
210
0
  do { \
211
0
    _res = mk_action(_type, 0, 0, line, get_cfg_file_name); \
212
0
  } while(0)
213
#define mk_action1(_res, _type, _p1_type, _p1) \
214
0
  do { \
215
0
    elems[0].type = _p1_type; \
216
0
    elems[0].u.data = _p1; \
217
0
    _res = mk_action(_type, 1, elems, line, get_cfg_file_name); \
218
0
  } while(0)
219
#define mk_action2(_res, _type, _p1_type, _p2_type, _p1, _p2) \
220
0
  do { \
221
0
    elems[0].type = _p1_type; \
222
0
    elems[0].u.data = _p1; \
223
0
    elems[1].type = _p2_type; \
224
0
    elems[1].u.data = _p2; \
225
0
    _res = mk_action(_type, 2, elems, line, get_cfg_file_name); \
226
0
  } while(0)
227
#define mk_action3(_res, _type, _p1_type, _p2_type, _p3_type, _p1, _p2, _p3) \
228
0
  do { \
229
0
    elems[0].type = _p1_type; \
230
0
    elems[0].u.data = _p1; \
231
0
    elems[1].type = _p2_type; \
232
0
    elems[1].u.data = _p2; \
233
0
    elems[2].type = _p3_type; \
234
0
    elems[2].u.data = _p3; \
235
0
    _res = mk_action(_type, 3, elems, line, get_cfg_file_name); \
236
0
  } while(0)
237
238
extern int cfg_parse_only_routes;
239
#define IFOR(_instr) \
240
0
  if (cfg_parse_only_routes==1) {_instr;break;}
241
242
243
#line 244 "cfg.tab.c"
244
245
# ifndef YY_CAST
246
#  ifdef __cplusplus
247
#   define YY_CAST(Type, Val) static_cast<Type> (Val)
248
#   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
249
#  else
250
0
#   define YY_CAST(Type, Val) ((Type) (Val))
251
#   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
252
#  endif
253
# endif
254
# ifndef YY_NULLPTR
255
#  if defined __cplusplus
256
#   if 201103L <= __cplusplus
257
#    define YY_NULLPTR nullptr
258
#   else
259
#    define YY_NULLPTR 0
260
#   endif
261
#  else
262
#   define YY_NULLPTR ((void*)0)
263
#  endif
264
# endif
265
266
/* Enabling verbose error messages.  */
267
#ifdef YYERROR_VERBOSE
268
# undef YYERROR_VERBOSE
269
# define YYERROR_VERBOSE 1
270
#else
271
# define YYERROR_VERBOSE 0
272
#endif
273
274
/* Use api.header.include to #include this header
275
   instead of duplicating it here.  */
276
#ifndef YY_YY_CFG_TAB_H_INCLUDED
277
# define YY_YY_CFG_TAB_H_INCLUDED
278
/* Debug traces.  */
279
#ifndef YYDEBUG
280
# define YYDEBUG 0
281
#endif
282
#if YYDEBUG
283
extern int yydebug;
284
#endif
285
286
/* Token type.  */
287
#ifndef YYTOKENTYPE
288
# define YYTOKENTYPE
289
  enum yytokentype
290
  {
291
    DROP = 258,
292
    ASSERT = 259,
293
    EXIT = 260,
294
    RETURN = 261,
295
    LOG_TOK = 262,
296
    PI_FRAMEWORK = 263,
297
    ERROR = 264,
298
    ROUTE = 265,
299
    ROUTE_FAILURE = 266,
300
    ROUTE_ONREPLY = 267,
301
    ROUTE_BRANCH = 268,
302
    ROUTE_ERROR = 269,
303
    ROUTE_LOCAL = 270,
304
    ROUTE_STARTUP = 271,
305
    ROUTE_TIMER = 272,
306
    ROUTE_EVENT = 273,
307
    IF = 274,
308
    ELSE = 275,
309
    SWITCH = 276,
310
    CASE = 277,
311
    DEFAULT = 278,
312
    BREAK = 279,
313
    WHILE = 280,
314
    FOR = 281,
315
    IN = 282,
316
    READONLY = 283,
317
    EXPIRE = 284,
318
    NULLV = 285,
319
    XDBG = 286,
320
    XLOG = 287,
321
    XLOG_BUF_SIZE = 288,
322
    XLOG_FORCE_COLOR = 289,
323
    XLOG_PRINT_LEVEL = 290,
324
    XLOG_LEVEL = 291,
325
    PV_PRINT_BUF_SIZE = 292,
326
    DEBUG_MODE = 293,
327
    ENABLE_ASSERTS = 294,
328
    ABORT_ON_ASSERT = 295,
329
    LOGLEVEL = 296,
330
    LOGPREFIX = 297,
331
    LOGSTDOUT = 298,
332
    STDERROR_ENABLED = 299,
333
    SYSLOG_ENABLED = 300,
334
    LOG_EVENT_ENABLED = 301,
335
    STDERROR_LEVEL_FILTER = 302,
336
    SYSLOG_LEVEL_FILTER = 303,
337
    LOG_EVENT_LEVEL_FILTER = 304,
338
    STDERROR_FORMAT = 305,
339
    SYSLOG_FORMAT = 306,
340
    LOG_JSON_BUF_SIZE = 307,
341
    LOG_MSG_BUF_SIZE = 308,
342
    SYSLOG_FACILITY = 309,
343
    SYSLOG_NAME = 310,
344
    AVP_ALIASES = 311,
345
    SOCKET = 312,
346
    MEMGROUP = 313,
347
    ALIAS = 314,
348
    AUTO_ALIASES = 315,
349
    TAG = 316,
350
    DNS = 317,
351
    REV_DNS = 318,
352
    DNS_TRY_IPV6 = 319,
353
    DNS_TRY_NAPTR = 320,
354
    DNS_RETR_TIME = 321,
355
    DNS_RETR_NO = 322,
356
    DNS_SERVERS_NO = 323,
357
    DNS_USE_SEARCH = 324,
358
    MAX_WHILE_LOOPS = 325,
359
    UDP_WORKERS = 326,
360
    CHECK_VIA = 327,
361
    SHM_HASH_SPLIT_PERCENTAGE = 328,
362
    SHM_SECONDARY_HASH_SIZE = 329,
363
    MEM_WARMING_ENABLED = 330,
364
    MEM_WARMING_PATTERN_FILE = 331,
365
    MEM_WARMING_PERCENTAGE = 332,
366
    RPM_MEM_FILE = 333,
367
    RPM_MEM_SIZE = 334,
368
    MEMLOG = 335,
369
    MEMDUMP = 336,
370
    SHM_MEMLOG_SIZE = 337,
371
    EXECMSGTHRESHOLD = 338,
372
    WORKER_REACTOR_TIMEOUT = 339,
373
    EXECDNSTHRESHOLD = 340,
374
    TCPTHRESHOLD = 341,
375
    EVENT_SHM_THRESHOLD = 342,
376
    EVENT_PKG_THRESHOLD = 343,
377
    QUERYBUFFERSIZE = 344,
378
    QUERYFLUSHTIME = 345,
379
    SIP_WARNING = 346,
380
    SERVER_SIGNATURE = 347,
381
    SERVER_HEADER = 348,
382
    USER_AGENT_HEADER = 349,
383
    LOADMODULE = 350,
384
    MPATH = 351,
385
    MODPARAM = 352,
386
    MAXBUFFER = 353,
387
    CHROOT = 354,
388
    WDIR = 355,
389
    MHOMED = 356,
390
    POLL_METHOD = 357,
391
    TCP_ACCEPT_ALIASES = 358,
392
    TCP_WORKERS = 359,
393
    TCP_CONNECT_TIMEOUT = 360,
394
    TCP_CON_LIFETIME = 361,
395
    TCP_SOCKET_BACKLOG = 362,
396
    TCP_MAX_CONNECTIONS = 363,
397
    TCP_NO_NEW_CONN_BFLAG = 364,
398
    TCP_NO_NEW_CONN_RPLFLAG = 365,
399
    TCP_KEEPALIVE = 366,
400
    TCP_KEEPCOUNT = 367,
401
    TCP_KEEPIDLE = 368,
402
    TCP_KEEPINTERVAL = 369,
403
    TCP_MAX_MSG_TIME = 370,
404
    TCP_THREADS = 371,
405
    ADVERTISED_ADDRESS = 372,
406
    ADVERTISED_PORT = 373,
407
    DISABLE_CORE = 374,
408
    OPEN_FD_LIMIT = 375,
409
    MCAST_LOOPBACK = 376,
410
    MCAST_TTL = 377,
411
    TOS = 378,
412
    DISABLE_DNS_FAILOVER = 379,
413
    DISABLE_DNS_BLACKLIST = 380,
414
    DST_BLACKLIST = 381,
415
    DISABLE_STATELESS_FWD = 382,
416
    DB_VERSION_TABLE = 383,
417
    DB_DEFAULT_URL = 384,
418
    DB_MAX_ASYNC_CONNECTIONS = 385,
419
    DISABLE_503_TRANSLATION = 386,
420
    SYNC_TOKEN = 387,
421
    ASYNC_TOKEN = 388,
422
    LAUNCH_TOKEN = 389,
423
    AUTO_SCALING_PROFILE = 390,
424
    AUTO_SCALING_CYCLE = 391,
425
    TIMER_WORKERS = 392,
426
    EQUAL = 393,
427
    EQUAL_T = 394,
428
    GT = 395,
429
    LT = 396,
430
    GTE = 397,
431
    LTE = 398,
432
    DIFF = 399,
433
    MATCH = 400,
434
    NOTMATCH = 401,
435
    COLONEQ = 402,
436
    PLUSEQ = 403,
437
    MINUSEQ = 404,
438
    SLASHEQ = 405,
439
    MULTEQ = 406,
440
    MODULOEQ = 407,
441
    BANDEQ = 408,
442
    BOREQ = 409,
443
    BXOREQ = 410,
444
    OR = 411,
445
    AND = 412,
446
    BOR = 413,
447
    BAND = 414,
448
    BXOR = 415,
449
    BLSHIFT = 416,
450
    BRSHIFT = 417,
451
    PLUS = 418,
452
    MINUS = 419,
453
    SLASH = 420,
454
    MULT = 421,
455
    MODULO = 422,
456
    NOT = 423,
457
    BNOT = 424,
458
    RPAREN = 425,
459
    NUMBER = 426,
460
    ZERO = 427,
461
    ID = 428,
462
    STRING = 429,
463
    SCRIPTVAR = 430,
464
    IPV6ADDR = 431,
465
    IPV4ADDR = 432,
466
    IPNET = 433,
467
    COMMA = 434,
468
    SEMICOLON = 435,
469
    LPAREN = 436,
470
    LBRACE = 437,
471
    RBRACE = 438,
472
    LBRACK = 439,
473
    RBRACK = 440,
474
    AS = 441,
475
    USE_WORKERS = 442,
476
    SOCK_TOS = 443,
477
    USE_AUTO_SCALING_PROFILE = 444,
478
    MAX = 445,
479
    MIN = 446,
480
    DOT = 447,
481
    CR = 448,
482
    COLON = 449,
483
    ANY = 450,
484
    ANYCAST = 451,
485
    ACCEPT_SUBDOMAIN = 452,
486
    FRAG = 453,
487
    REUSE_PORT = 454,
488
    ALLOW_PROXY_PROTOCOL = 455,
489
    SEND_PROXY_PROTOCOL = 456,
490
    PROXY_PROTOCOL = 457,
491
    SCRIPTVARERR = 458,
492
    SCALE_UP_TO = 459,
493
    SCALE_DOWN_TO = 460,
494
    ON = 461,
495
    CYCLES = 462,
496
    CYCLES_WITHIN = 463,
497
    PERCENTAGE = 464,
498
    BOND = 465
499
  };
500
#endif
501
502
/* Value type.  */
503
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
504
union YYSTYPE
505
{
506
#line 254 "cfg.y"
507
508
  long intval;
509
  unsigned long uval;
510
  char* strval;
511
  struct expr* expr;
512
  struct action* action;
513
  struct net* ipnet;
514
  struct ip_addr* ipaddr;
515
  struct socket_id* sockid;
516
  struct socket_bond_elem* bondlst;
517
  struct listen_param* listen_param;
518
  struct _pv_spec *specval;
519
  struct multi_str* multistr;
520
  struct port_range* portrange;
521
  struct script_return_param* return_params;
522
523
#line 524 "cfg.tab.c"
524
525
};
526
typedef union YYSTYPE YYSTYPE;
527
# define YYSTYPE_IS_TRIVIAL 1
528
# define YYSTYPE_IS_DECLARED 1
529
#endif
530
531
532
extern YYSTYPE yylval;
533
534
int yyparse (void);
535
536
#endif /* !YY_YY_CFG_TAB_H_INCLUDED  */
537
538
539
540
#ifdef short
541
# undef short
542
#endif
543
544
/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
545
   <limits.h> and (if available) <stdint.h> are included
546
   so that the code can choose integer types of a good width.  */
547
548
#ifndef __PTRDIFF_MAX__
549
# include <limits.h> /* INFRINGES ON USER NAME SPACE */
550
# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
551
#  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
552
#  define YY_STDINT_H
553
# endif
554
#endif
555
556
/* Narrow types that promote to a signed type and that can represent a
557
   signed or unsigned integer of at least N bits.  In tables they can
558
   save space and decrease cache pressure.  Promoting to a signed type
559
   helps avoid bugs in integer arithmetic.  */
560
561
#ifdef __INT_LEAST8_MAX__
562
typedef __INT_LEAST8_TYPE__ yytype_int8;
563
#elif defined YY_STDINT_H
564
typedef int_least8_t yytype_int8;
565
#else
566
typedef signed char yytype_int8;
567
#endif
568
569
#ifdef __INT_LEAST16_MAX__
570
typedef __INT_LEAST16_TYPE__ yytype_int16;
571
#elif defined YY_STDINT_H
572
typedef int_least16_t yytype_int16;
573
#else
574
typedef short yytype_int16;
575
#endif
576
577
#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
578
typedef __UINT_LEAST8_TYPE__ yytype_uint8;
579
#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
580
       && UINT_LEAST8_MAX <= INT_MAX)
581
typedef uint_least8_t yytype_uint8;
582
#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
583
typedef unsigned char yytype_uint8;
584
#else
585
typedef short yytype_uint8;
586
#endif
587
588
#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
589
typedef __UINT_LEAST16_TYPE__ yytype_uint16;
590
#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
591
       && UINT_LEAST16_MAX <= INT_MAX)
592
typedef uint_least16_t yytype_uint16;
593
#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
594
typedef unsigned short yytype_uint16;
595
#else
596
typedef int yytype_uint16;
597
#endif
598
599
#ifndef YYPTRDIFF_T
600
# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
601
0
#  define YYPTRDIFF_T __PTRDIFF_TYPE__
602
#  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
603
# elif defined PTRDIFF_MAX
604
#  ifndef ptrdiff_t
605
#   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
606
#  endif
607
#  define YYPTRDIFF_T ptrdiff_t
608
#  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
609
# else
610
#  define YYPTRDIFF_T long
611
#  define YYPTRDIFF_MAXIMUM LONG_MAX
612
# endif
613
#endif
614
615
#ifndef YYSIZE_T
616
# ifdef __SIZE_TYPE__
617
#  define YYSIZE_T __SIZE_TYPE__
618
# elif defined size_t
619
#  define YYSIZE_T size_t
620
# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
621
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
622
#  define YYSIZE_T size_t
623
# else
624
#  define YYSIZE_T unsigned
625
# endif
626
#endif
627
628
#define YYSIZE_MAXIMUM                                  \
629
  YY_CAST (YYPTRDIFF_T,                                 \
630
           (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
631
            ? YYPTRDIFF_MAXIMUM                         \
632
            : YY_CAST (YYSIZE_T, -1)))
633
634
0
#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
635
636
/* Stored state numbers (used for stacks). */
637
typedef yytype_int16 yy_state_t;
638
639
/* State numbers in computations.  */
640
typedef int yy_state_fast_t;
641
642
#ifndef YY_
643
# if defined YYENABLE_NLS && YYENABLE_NLS
644
#  if ENABLE_NLS
645
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
646
#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
647
#  endif
648
# endif
649
# ifndef YY_
650
0
#  define YY_(Msgid) Msgid
651
# endif
652
#endif
653
654
#ifndef YY_ATTRIBUTE_PURE
655
# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
656
#  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
657
# else
658
#  define YY_ATTRIBUTE_PURE
659
# endif
660
#endif
661
662
#ifndef YY_ATTRIBUTE_UNUSED
663
# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
664
#  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
665
# else
666
#  define YY_ATTRIBUTE_UNUSED
667
# endif
668
#endif
669
670
/* Suppress unused-variable warnings by "using" E.  */
671
#if ! defined lint || defined __GNUC__
672
0
# define YYUSE(E) ((void) (E))
673
#else
674
# define YYUSE(E) /* empty */
675
#endif
676
677
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
678
/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
679
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                            \
680
    _Pragma ("GCC diagnostic push")                                     \
681
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
682
    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
683
# define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
684
    _Pragma ("GCC diagnostic pop")
685
#else
686
# define YY_INITIAL_VALUE(Value) Value
687
#endif
688
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
689
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
690
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
691
#endif
692
#ifndef YY_INITIAL_VALUE
693
# define YY_INITIAL_VALUE(Value) /* Nothing. */
694
#endif
695
696
#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
697
# define YY_IGNORE_USELESS_CAST_BEGIN                          \
698
    _Pragma ("GCC diagnostic push")                            \
699
    _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
700
# define YY_IGNORE_USELESS_CAST_END            \
701
    _Pragma ("GCC diagnostic pop")
702
#endif
703
#ifndef YY_IGNORE_USELESS_CAST_BEGIN
704
# define YY_IGNORE_USELESS_CAST_BEGIN
705
# define YY_IGNORE_USELESS_CAST_END
706
#endif
707
708
709
0
#define YY_ASSERT(E) ((void) (0 && (E)))
710
711
#if ! defined yyoverflow || YYERROR_VERBOSE
712
713
/* The parser invokes alloca or malloc; define the necessary symbols.  */
714
715
# ifdef YYSTACK_USE_ALLOCA
716
#  if YYSTACK_USE_ALLOCA
717
#   ifdef __GNUC__
718
#    define YYSTACK_ALLOC __builtin_alloca
719
#   elif defined __BUILTIN_VA_ARG_INCR
720
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
721
#   elif defined _AIX
722
#    define YYSTACK_ALLOC __alloca
723
#   elif defined _MSC_VER
724
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
725
#    define alloca _alloca
726
#   else
727
#    define YYSTACK_ALLOC alloca
728
#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
729
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
730
      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
731
#     ifndef EXIT_SUCCESS
732
#      define EXIT_SUCCESS 0
733
#     endif
734
#    endif
735
#   endif
736
#  endif
737
# endif
738
739
# ifdef YYSTACK_ALLOC
740
   /* Pacify GCC's 'empty if-body' warning.  */
741
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
742
#  ifndef YYSTACK_ALLOC_MAXIMUM
743
    /* The OS might guarantee only one guard page at the bottom of the stack,
744
       and a page size can be as small as 4096 bytes.  So we cannot safely
745
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
746
       to allow for a few compiler-allocated temporary stack slots.  */
747
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
748
#  endif
749
# else
750
#  define YYSTACK_ALLOC YYMALLOC
751
0
#  define YYSTACK_FREE YYFREE
752
#  ifndef YYSTACK_ALLOC_MAXIMUM
753
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
754
#  endif
755
#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
756
       && ! ((defined YYMALLOC || defined malloc) \
757
             && (defined YYFREE || defined free)))
758
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
759
#   ifndef EXIT_SUCCESS
760
#    define EXIT_SUCCESS 0
761
#   endif
762
#  endif
763
#  ifndef YYMALLOC
764
#   define YYMALLOC malloc
765
#   if ! defined malloc && ! defined EXIT_SUCCESS
766
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
767
#   endif
768
#  endif
769
#  ifndef YYFREE
770
0
#   define YYFREE free
771
#   if ! defined free && ! defined EXIT_SUCCESS
772
void free (void *); /* INFRINGES ON USER NAME SPACE */
773
#   endif
774
#  endif
775
# endif
776
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
777
778
779
#if (! defined yyoverflow \
780
     && (! defined __cplusplus \
781
         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
782
783
/* A type that is properly aligned for any stack member.  */
784
union yyalloc
785
{
786
  yy_state_t yyss_alloc;
787
  YYSTYPE yyvs_alloc;
788
};
789
790
/* The size of the maximum gap between one aligned stack and the next.  */
791
0
# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
792
793
/* The size of an array large to enough to hold all stacks, each with
794
   N elements.  */
795
# define YYSTACK_BYTES(N) \
796
     ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
797
      + YYSTACK_GAP_MAXIMUM)
798
799
# define YYCOPY_NEEDED 1
800
801
/* Relocate STACK from its old location to the new one.  The
802
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
803
   elements in the stack, and YYPTR gives the new location of the
804
   stack.  Advance YYPTR to a properly aligned location for the next
805
   stack.  */
806
# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
807
0
    do                                                                  \
808
0
      {                                                                 \
809
0
        YYPTRDIFF_T yynewbytes;                                         \
810
0
        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
811
0
        Stack = &yyptr->Stack_alloc;                                    \
812
0
        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
813
0
        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
814
0
      }                                                                 \
815
0
    while (0)
816
817
#endif
818
819
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
820
/* Copy COUNT objects from SRC to DST.  The source and destination do
821
   not overlap.  */
822
# ifndef YYCOPY
823
#  if defined __GNUC__ && 1 < __GNUC__
824
#   define YYCOPY(Dst, Src, Count) \
825
0
      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
826
#  else
827
#   define YYCOPY(Dst, Src, Count)              \
828
      do                                        \
829
        {                                       \
830
          YYPTRDIFF_T yyi;                      \
831
          for (yyi = 0; yyi < (Count); yyi++)   \
832
            (Dst)[yyi] = (Src)[yyi];            \
833
        }                                       \
834
      while (0)
835
#  endif
836
# endif
837
#endif /* !YYCOPY_NEEDED */
838
839
/* YYFINAL -- State number of the termination state.  */
840
0
#define YYFINAL  230
841
/* YYLAST -- Last index in YYTABLE.  */
842
0
#define YYLAST   2316
843
844
/* YYNTOKENS -- Number of terminals.  */
845
0
#define YYNTOKENS  211
846
/* YYNNTS -- Number of nonterminals.  */
847
#define YYNNTS  93
848
/* YYNRULES -- Number of rules.  */
849
#define YYNRULES  542
850
/* YYNSTATES -- Number of states.  */
851
#define YYNSTATES  1028
852
853
0
#define YYUNDEFTOK  2
854
0
#define YYMAXUTOK   465
855
856
857
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
858
   as returned by yylex, with out-of-bounds checking.  */
859
#define YYTRANSLATE(YYX)                                                \
860
0
  (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
861
862
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
863
   as returned by yylex.  */
864
static const yytype_uint8 yytranslate[] =
865
{
866
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
867
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
868
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
869
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
870
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
871
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
872
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
873
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
874
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
875
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
876
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
877
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
878
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
879
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
880
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
881
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
882
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
883
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
884
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
885
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
886
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
887
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
888
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
889
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
890
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
891
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
892
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
893
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
894
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
895
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
896
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
897
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
898
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
899
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
900
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
901
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
902
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
903
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
904
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
905
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
906
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
907
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
908
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
909
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
910
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
911
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
912
     205,   206,   207,   208,   209,   210
913
};
914
915
#if YYDEBUG
916
  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
917
static const yytype_int16 yyrline[] =
918
{
919
       0,   534,   534,   537,   538,   539,   542,   543,   544,   544,
920
     545,   545,   546,   546,   547,   547,   548,   548,   549,   549,
921
     550,   550,   551,   551,   552,   552,   554,   557,   572,   581,
922
     596,   597,   600,   601,   615,   620,   630,   631,   634,   647,
923
     656,   663,   665,   666,   667,   671,   673,   675,   680,   688,
924
     690,   692,   694,   696,   701,   708,   710,   712,   714,   718,
925
     721,   722,   728,   729,   732,   734,   736,   742,   745,   748,
926
     751,   754,   757,   760,   763,   766,   769,   772,   775,   780,
927
     781,   784,   790,   799,   800,   800,   805,   813,   814,   816,
928
     817,   820,   828,   837,   843,   850,   856,   863,   869,   876,
929
     882,   889,   895,   904,   905,   906,   909,   910,   911,   914,
930
     915,   918,   919,   920,   923,   924,   928,   936,   944,   950,
931
     958,   962,   966,   967,   979,   980,   981,   982,   983,   984,
932
     999,  1001,  1004,  1005,  1016,  1017,  1028,  1029,  1038,  1039,
933
    1045,  1046,  1052,  1053,  1055,  1056,  1081,  1106,  1114,  1115,
934
    1123,  1124,  1130,  1131,  1132,  1133,  1134,  1135,  1136,  1137,
935
    1138,  1139,  1140,  1141,  1142,  1143,  1144,  1145,  1146,  1147,
936
    1148,  1149,  1150,  1151,  1152,  1153,  1154,  1158,  1159,  1162,
937
    1166,  1167,  1168,  1176,  1184,  1192,  1200,  1208,  1216,  1224,
938
    1232,  1240,  1248,  1251,  1252,  1255,  1256,  1257,  1258,  1259,
939
    1260,  1261,  1262,  1263,  1264,  1265,  1266,  1267,  1268,  1269,
940
    1270,  1280,  1281,  1295,  1296,  1297,  1298,  1299,  1300,  1301,
941
    1302,  1303,  1304,  1305,  1306,  1307,  1308,  1309,  1310,  1320,
942
    1330,  1331,  1336,  1337,  1340,  1344,  1345,  1350,  1351,  1354,
943
    1355,  1358,  1359,  1362,  1363,  1370,  1371,  1378,  1380,  1383,
944
    1384,  1387,  1388,  1393,  1396,  1403,  1404,  1411,  1412,  1419,
945
    1420,  1422,  1423,  1427,  1428,  1431,  1432,  1434,  1435,  1437,
946
    1439,  1441,  1442,  1443,  1444,  1446,  1447,  1456,  1459,  1503,
947
    1504,  1509,  1511,  1513,  1514,  1520,  1522,  1536,  1538,  1541,
948
    1542,  1545,  1546,  1553,  1554,  1561,  1562,  1566,  1594,  1595,
949
    1596,  1597,  1600,  1601,  1604,  1605,  1615,  1625,  1627,  1629,
950
    1630,  1632,  1633,  1635,  1638,  1640,  1643,  1644,  1647,  1649,
951
    1652,  1655,  1659,  1660,  1666,  1672,  1678,  1682,  1683,  1686,
952
    1702,  1718,  1719,  1722,  1728,  1738,  1748,  1759,  1762,  1771,
953
    1776,  1799,  1804,  1812,  1828,  1831,  1837,  1840,  1848,  1854,
954
    1857,  1863,  1866,  1874,  1877,  1885,  1888,  1896,  1899,  1912,
955
    1915,  1921,  1926,  1927,  1928,  1929,  1930,  1931,  1934,  1935,
956
    1938,  1939,  1940,  1941,  1943,  1944,  1947,  1948,  1951,  1952,
957
    1953,  1956,  1972,  1977,  1978,  1979,  1981,  1986,  1989,  1992,
958
    1995,  1998,  2004,  2005,  2006,  2007,  2008,  2009,  2010,  2011,
959
    2012,  2013,  2017,  2018,  2019,  2020,  2021,  2022,  2025,  2028,
960
    2031,  2034,  2037,  2040,  2043,  2046,  2049,  2052,  2055,  2058,
961
    2071,  2084,  2099,  2100,  2101,  2102,  2103,  2106,  2107,  2108,
962
    2111,  2112,  2113,  2116,  2117,  2118,  2122,  2123,  2124,  2127,
963
    2128,  2129,  2130,  2131,  2132,  2133,  2134,  2137,  2138,  2139,
964
    2140,  2141,  2142,  2143,  2144,  2145,  2148,  2156,  2166,  2174,
965
    2184,  2192,  2210,  2219,  2220,  2222,  2223,  2226,  2232,  2238,
966
    2244,  2252,  2255,  2258,  2263,  2273,  2280,  2287,  2297,  2302,
967
    2309,  2319,  2324,  2331,  2343,  2348,  2353,  2358,  2363,  2373,
968
    2383,  2393,  2405,  2423,  2454,  2458,  2464,  2465,  2466,  2468,
969
    2471,  2472,  2475,  2478,  2481,  2482,  2483,  2484,  2485,  2491,
970
    2497,  2503,  2509,  2515,  2521,  2527,  2533,  2538,  2541,  2547,
971
    2548,  2550,  2556,  2557,  2559,  2563,  2582,  2583,  2585,  2608,
972
    2644,  2646,  2649,  2651,  2653,  2655,  2657,  2659,  2661,  2668,
973
    2675,  2682,  2689
974
};
975
#endif
976
977
#if YYDEBUG || YYERROR_VERBOSE || 0
978
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
979
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
980
static const char *const yytname[] =
981
{
982
  "$end", "error", "$undefined", "DROP", "ASSERT", "EXIT", "RETURN",
983
  "LOG_TOK", "PI_FRAMEWORK", "ERROR", "ROUTE", "ROUTE_FAILURE",
984
  "ROUTE_ONREPLY", "ROUTE_BRANCH", "ROUTE_ERROR", "ROUTE_LOCAL",
985
  "ROUTE_STARTUP", "ROUTE_TIMER", "ROUTE_EVENT", "IF", "ELSE", "SWITCH",
986
  "CASE", "DEFAULT", "BREAK", "WHILE", "FOR", "IN", "READONLY", "EXPIRE",
987
  "NULLV", "XDBG", "XLOG", "XLOG_BUF_SIZE", "XLOG_FORCE_COLOR",
988
  "XLOG_PRINT_LEVEL", "XLOG_LEVEL", "PV_PRINT_BUF_SIZE", "DEBUG_MODE",
989
  "ENABLE_ASSERTS", "ABORT_ON_ASSERT", "LOGLEVEL", "LOGPREFIX",
990
  "LOGSTDOUT", "STDERROR_ENABLED", "SYSLOG_ENABLED", "LOG_EVENT_ENABLED",
991
  "STDERROR_LEVEL_FILTER", "SYSLOG_LEVEL_FILTER", "LOG_EVENT_LEVEL_FILTER",
992
  "STDERROR_FORMAT", "SYSLOG_FORMAT", "LOG_JSON_BUF_SIZE",
993
  "LOG_MSG_BUF_SIZE", "SYSLOG_FACILITY", "SYSLOG_NAME", "AVP_ALIASES",
994
  "SOCKET", "MEMGROUP", "ALIAS", "AUTO_ALIASES", "TAG", "DNS", "REV_DNS",
995
  "DNS_TRY_IPV6", "DNS_TRY_NAPTR", "DNS_RETR_TIME", "DNS_RETR_NO",
996
  "DNS_SERVERS_NO", "DNS_USE_SEARCH", "MAX_WHILE_LOOPS", "UDP_WORKERS",
997
  "CHECK_VIA", "SHM_HASH_SPLIT_PERCENTAGE", "SHM_SECONDARY_HASH_SIZE",
998
  "MEM_WARMING_ENABLED", "MEM_WARMING_PATTERN_FILE",
999
  "MEM_WARMING_PERCENTAGE", "RPM_MEM_FILE", "RPM_MEM_SIZE", "MEMLOG",
1000
  "MEMDUMP", "SHM_MEMLOG_SIZE", "EXECMSGTHRESHOLD",
1001
  "WORKER_REACTOR_TIMEOUT", "EXECDNSTHRESHOLD", "TCPTHRESHOLD",
1002
  "EVENT_SHM_THRESHOLD", "EVENT_PKG_THRESHOLD", "QUERYBUFFERSIZE",
1003
  "QUERYFLUSHTIME", "SIP_WARNING", "SERVER_SIGNATURE", "SERVER_HEADER",
1004
  "USER_AGENT_HEADER", "LOADMODULE", "MPATH", "MODPARAM", "MAXBUFFER",
1005
  "CHROOT", "WDIR", "MHOMED", "POLL_METHOD", "TCP_ACCEPT_ALIASES",
1006
  "TCP_WORKERS", "TCP_CONNECT_TIMEOUT", "TCP_CON_LIFETIME",
1007
  "TCP_SOCKET_BACKLOG", "TCP_MAX_CONNECTIONS", "TCP_NO_NEW_CONN_BFLAG",
1008
  "TCP_NO_NEW_CONN_RPLFLAG", "TCP_KEEPALIVE", "TCP_KEEPCOUNT",
1009
  "TCP_KEEPIDLE", "TCP_KEEPINTERVAL", "TCP_MAX_MSG_TIME", "TCP_THREADS",
1010
  "ADVERTISED_ADDRESS", "ADVERTISED_PORT", "DISABLE_CORE", "OPEN_FD_LIMIT",
1011
  "MCAST_LOOPBACK", "MCAST_TTL", "TOS", "DISABLE_DNS_FAILOVER",
1012
  "DISABLE_DNS_BLACKLIST", "DST_BLACKLIST", "DISABLE_STATELESS_FWD",
1013
  "DB_VERSION_TABLE", "DB_DEFAULT_URL", "DB_MAX_ASYNC_CONNECTIONS",
1014
  "DISABLE_503_TRANSLATION", "SYNC_TOKEN", "ASYNC_TOKEN", "LAUNCH_TOKEN",
1015
  "AUTO_SCALING_PROFILE", "AUTO_SCALING_CYCLE", "TIMER_WORKERS", "EQUAL",
1016
  "EQUAL_T", "GT", "LT", "GTE", "LTE", "DIFF", "MATCH", "NOTMATCH",
1017
  "COLONEQ", "PLUSEQ", "MINUSEQ", "SLASHEQ", "MULTEQ", "MODULOEQ",
1018
  "BANDEQ", "BOREQ", "BXOREQ", "OR", "AND", "BOR", "BAND", "BXOR",
1019
  "BLSHIFT", "BRSHIFT", "PLUS", "MINUS", "SLASH", "MULT", "MODULO", "NOT",
1020
  "BNOT", "RPAREN", "NUMBER", "ZERO", "ID", "STRING", "SCRIPTVAR",
1021
  "IPV6ADDR", "IPV4ADDR", "IPNET", "COMMA", "SEMICOLON", "LPAREN",
1022
  "LBRACE", "RBRACE", "LBRACK", "RBRACK", "AS", "USE_WORKERS", "SOCK_TOS",
1023
  "USE_AUTO_SCALING_PROFILE", "MAX", "MIN", "DOT", "CR", "COLON", "ANY",
1024
  "ANYCAST", "ACCEPT_SUBDOMAIN", "FRAG", "REUSE_PORT",
1025
  "ALLOW_PROXY_PROTOCOL", "SEND_PROXY_PROTOCOL", "PROXY_PROTOCOL",
1026
  "SCRIPTVARERR", "SCALE_UP_TO", "SCALE_DOWN_TO", "ON", "CYCLES",
1027
  "CYCLES_WITHIN", "PERCENTAGE", "BOND", "$accept", "cfg", "statements",
1028
  "statement", "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8",
1029
  "$@9", "listen_id", "host_sep", "host", "proto", "port", "portrange",
1030
  "snumber", "phostport", "phostportrange", "any_alias", "alias_def",
1031
  "id_lst", "listen_id_def", "socket_def_param", "socket_def_params",
1032
  "socket_bond_elems", "socket_def", "$@10", "any_proto", "multi_string",
1033
  "blst_elem", "blst_def", "blst_flag", "blst_flags", "blst_elem_list",
1034
  "mpath_def_list", "auto_scale_profile_def", "assign_stm", "module_stm",
1035
  "ip", "ipv4", "ipv6addr", "ipv6", "ipnet", "folded_string", "route_name",
1036
  "route_name_var", "route_stm", "failure_route_stm", "onreply_route_stm",
1037
  "branch_route_stm", "error_route_stm", "local_route_stm",
1038
  "startup_route_stm", "timer_route_stm", "event_route_stm", "exp",
1039
  "equalop", "compop", "matchop", "intop", "strop", "script_var",
1040
  "exp_elem", "exp_cond", "assignop", "assignexp", "assign_cmd", "exp_stm",
1041
  "brk_stm", "stm", "actions", "brk_actions", "action", "brk_action",
1042
  "brk_if_cmd", "if_cmd", "while_cmd", "foreach_cmd", "switch_cmd",
1043
  "switch_stm", "case_stms", "case_stm", "default_stm", "func_param",
1044
  "route_param", "async_func", "return_param", "return_params", "cmd", YY_NULLPTR
1045
};
1046
#endif
1047
1048
# ifdef YYPRINT
1049
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
1050
   (internal) symbol number NUM (which must be that of a token).  */
1051
static const yytype_int16 yytoknum[] =
1052
{
1053
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1054
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1055
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1056
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1057
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1058
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1059
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1060
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1061
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1062
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1063
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1064
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1065
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1066
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
1067
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
1068
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1069
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
1070
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
1071
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1072
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1073
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1074
     465
1075
};
1076
# endif
1077
1078
0
#define YYPACT_NINF (-874)
1079
1080
#define yypact_value_is_default(Yyn) \
1081
0
  ((Yyn) == YYPACT_NINF)
1082
1083
#define YYTABLE_NINF (-472)
1084
1085
#define yytable_value_is_error(Yyn) \
1086
0
  0
1087
1088
  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1089
     STATE-NUM.  */
1090
static const yytype_int16 yypact[] =
1091
{
1092
    2123,   -96,   -69,   -57,   -25,    -9,    18,   204,   231,   243,
1093
     259,   271,   283,   286,   300,   308,   318,   321,   323,   336,
1094
     338,   382,   398,   418,   426,   432,   444,   445,   479,   503,
1095
     536,   544,    22,    44,    45,   121,   337,   342,   550,   554,
1096
     589,   608,   609,   620,   622,   623,   630,   663,   679,   681,
1097
     682,   683,   693,   700,   702,   703,   705,   712,   713,   730,
1098
     735,   737,   740,    64,   745,    30,   746,   765,   770,   776,
1099
     785,   791,   801,   802,   806,   808,   810,   813,   829,   834,
1100
     838,   839,   841,   845,   848,   849,   854,   857,   859,   861,
1101
     862,   864,   386,   387,   873,   874,   877,   878,   886,   887,
1102
     889,   891,   893,  -874,   107,  1991,  -874,   171,   166,   640,
1103
     643,   756,   831,   769,   846,   867,  -874,  -874,  -874,    99,
1104
      42,    96,   100,   394,   347,   359,   371,   372,   515,   116,
1105
     374,   375,   377,   392,   409,   433,   450,   787,   840,   403,
1106
     404,   110,   120,     2,   858,   190,   405,   427,   440,  -874,
1107
     788,  -874,   863,  -874,   865,  -874,   866,  -874,   871,  -874,
1108
     880,   441,   456,   459,   462,   466,   482,   127,   484,   129,
1109
     486,   468,   483,   500,   488,   499,   505,   514,   518,   520,
1110
     522,   525,   527,   543,   146,   158,  -874,  -874,   165,  -874,
1111
     881,   561,   115,   124,   570,   162,   583,   591,   594,   598,
1112
     600,   601,   126,   131,   617,   618,   635,   641,   647,   664,
1113
     241,   665,   666,   668,   674,   676,   104,  -874,   885,  -874,
1114
     896,   875,   897,   167,   170,   686,   696,   172,   698,   898,
1115
    -874,   -96,  -874,    33,  -874,    23,  -874,    66,  -874,    43,
1116
    -874,     7,  -874,    21,  -874,    28,  -874,    46,  -874,    57,
1117
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1118
     899,   905,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1119
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1120
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1121
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1122
    -874,   883,   884,   821,  -874,   907,  -874,  1079,   910,  -874,
1123
    -874,  -874,   914,   916,  -874,  -129,   917,  -874,   894,   911,
1124
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1125
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1126
     919,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1127
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1128
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1129
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1130
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,   927,
1131
     904,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1132
    -874,  -874,  -874,  -874,  -874,  -874,  -874,   924,  -874,  -874,
1133
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1134
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1135
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1136
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1137
    -109,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1138
    -874,   901,  -874,  -874,  -874,   942,  -874,  1820,   317,  -874,
1139
     317,  -874,  1820,   317,  -874,   317,  -874,  1820,  -874,  1820,
1140
    -874,  1820,  -874,   317,  -874,   317,  -874,  -874,   962,  1088,
1141
    1323,   191,  -874,   955,   797,  -874,   267,   968,   797,  -874,
1142
    -874,   970,   972,   978,   983,   843,   975,  -874,   987,   986,
1143
     979,   980,   985,   755,    39,    63,    73,   990,   991,  1003,
1144
    1015,  1017,  1018,  1019,  1022,    85,  -874,  -874,  -874,  1706,
1145
     984,   772,  -874,  -874,  -874,  -874,  -874,    51,  -874,  -874,
1146
    -874,   982,  1020,   823,  1021,  1024,   855,   906,   959,   989,
1147
    1025,  1029,  1010,  1023,  1039,   797,  1043,  1045,  1046,  -874,
1148
    -874,  -874,  -874,  -874,  -874,  -874,  1323,  -874,  -874,  1044,
1149
    -874,  -874,  1027,  -874,  -874,  1031,  -874,  -874,  1050,  -874,
1150
    -874,  -874,  -874,  -874,  -118,   939,  1032,  -874,  1065,  1465,
1151
    1069,   725,  -874,  -874,  -874,   291,  -874,   197,  -874,    78,
1152
    1465,  -121,  1465,  -121,  1066,  1067,  1071,  1071,  -874,    58,
1153
    1212,  1215,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1154
    1599,  -874,  -874,  -874,  -874,  -874,  -874,  1068,  1073,  -874,
1155
    1074,  1075,  -874,  -874,  -874,  1076,  1078,  1077,   699,   706,
1156
    -874,  1055,  -874,  -874,  -874,  -874,  -874,  -874,    19,    24,
1157
     592,   843,  -874,   876,  -874,   960,  -874,  -874,    86,  -874,
1158
    -874,  1092,  -874,  1465,  1465,  1667,  1599,  -874,   -21,  1744,
1159
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,   307,  -104,
1160
    -102,  1097,  1099,  1091,  1101,  1095,  1105,  -874,   -31,  -874,
1161
     -16,  1109,    -6,  1253,   -32,   -13,   616,   210,    95,  1103,
1162
      15,  1118,  -874,  -874,   779,  -874,  -874,   212,  -874,  -874,
1163
    1599,  -874,  1599,  -874,  1048,  -874,  1779,  -874,  1820,  1820,
1164
    1820,  1820,  1106,  1820,  1113,  1110,  -874,  1130,  1116,  -874,
1165
    1116,   708,  -874,  -874,  -874,  -874,  -874,  -874,   610,  1127,
1166
     723,  -874,   960,  -874,  -874,  -874,  1119,   229,  -874,   632,
1167
    -874,  1133,  -874,   280,  -874,  1040,  1460,  1465,  1465,  -874,
1168
    1128,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,   255,
1169
     -91,  -874,   515,   -41,  -874,  -874,  -874,  -874,  -874,   256,
1170
    -874,   307,  -874,   307,  -874,  -874,  1129,  -874,  1134,  -874,
1171
    -874,   509,  1699,  1122,  1482,  -121,  -874,  -874,  -874,  -874,
1172
    -874,  1139,  -874,  -874,   183,   317,  -874,   317,  -874,  -874,
1173
    -874,  -874,  -874,   830,  -874,  1761,  1599,  1599,  1599,  1599,
1174
    1599,  1599,  1599,  1599,  1599,  1599,  1093,  1144,  1176,  1227,
1175
    1125,  1280,  1077,  -874,  1143,  1145,  -874,  1116,  -874,  -874,
1176
    -874,  1136,   294,   757,  -874,   -52,  -874,  1292,  -874,  -874,
1177
    -874,  -874,  -874,  1150,  -874,  -874,  -874,  -874,  -874,  -874,
1178
     307,   332,   534,  1151,  1152,  -874,  -874,  -874,  -874,   540,
1179
    1733,  1303,  -874,  1304,  1157,  1159,  -874,  1546,  1160,  -874,
1180
    -874,  -874,  -874,  -874,  -874,    98,  1155,   747,   750,  1171,
1181
    -874,   551,   563,   569,  -874,  -874,  -874,  -874,   963,   963,
1182
     963,   963,   963,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1183
    -874,  -874,  1820,  -874,  -874,  -874,  1178,   757,  -874,   -52,
1184
     604,  1173,  1174,  -874,  -874,  -874,  -874,  -874,  -874,  -874,
1185
     531,  -874,  1361,  1699,   727,  1161,   101,  -874,  1465,  -874,
1186
    -874,   619,  -874,  -874,  -874,  -874,  1482,  -874,  -874,  -874,
1187
    -874,  -874,  1175,  -874,  1179,  1414,  1177,   626,  1180,  -874,
1188
     -52,  -874,   508,  -874,  -874,  -874,  -874,  -874,  -874,  1158,
1189
    1163,  -874,  1164,  -874,  -874,   579,  -874,  -874,  -874,  -874,
1190
    1184,  1185,  -874,  -874,  -874,   -52,  -874,   644,  1167,  1192,
1191
    1784,  1784,  1784,  1482,  -874,  -874,   655,  -874,  1195,  1202,
1192
    1169,   528,   584,   719,  1355,  -874,  1203,  1206,  1172,  1210,
1193
    1482,  1213,  -874,  1214,  1182,  -874,  -874,  1222,  1219,  1365,
1194
    1228,  1223,  1370,  1190,  1230,  -874,  1191,  -874
1195
};
1196
1197
  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1198
     Performed when YYTABLE does not specify something else to do.  Zero
1199
     means the default is an error.  */
1200
static const yytype_int16 yydefact[] =
1201
{
1202
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1203
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1204
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1205
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1206
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1207
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1208
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1209
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1210
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1211
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1212
       0,     0,     0,    26,     0,     0,     4,     0,     0,     0,
1213
       0,     0,     0,     0,     0,     0,     6,     7,   320,     0,
1214
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1215
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1216
       0,     0,     0,     0,     0,     0,     0,     0,     0,   160,
1217
       0,   162,     0,   164,     0,   166,     0,   168,     0,   170,
1218
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1219
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1220
       0,     0,     0,     0,     0,     0,   322,   321,     0,   326,
1221
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1222
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1223
       0,     0,     0,     0,     0,     0,     0,   302,     0,   304,
1224
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1225
       1,     5,     3,     0,     9,     0,    11,     0,    13,     0,
1226
      15,     0,    17,     0,    19,     0,    21,     0,    23,     0,
1227
      25,   122,   121,   271,   268,   272,   269,   273,   270,   275,
1228
       0,     0,    42,   274,   267,   266,   130,   129,   126,   125,
1229
     128,   127,   120,   124,   123,   132,   131,   134,   133,   136,
1230
     135,   138,   137,   140,   139,   142,   141,   144,   143,   145,
1231
     146,   148,   147,   150,   149,   152,   151,   154,   153,   277,
1232
      35,     0,     0,    83,   276,     0,   281,     0,    32,    28,
1233
     330,   329,     0,     0,    55,    29,     0,    59,    60,    62,
1234
     280,    27,   327,   331,   328,   283,   282,   156,   155,   158,
1235
     157,   159,   161,   163,   165,   167,   169,   172,   171,   177,
1236
     175,   181,   180,   183,   182,   185,   184,   187,   186,   189,
1237
     188,   191,   190,   193,   192,   195,   194,   197,   196,   201,
1238
     200,   199,   198,   203,   202,   205,   204,   207,   206,   209,
1239
     208,   211,   210,   213,   212,   215,   214,   217,   216,   219,
1240
     218,   261,   260,   263,   262,   265,   264,   300,   115,   299,
1241
       0,   174,   173,   222,   221,   220,   225,   224,   223,   227,
1242
     226,   230,   228,   229,   232,   231,   235,   233,   237,   236,
1243
     239,   238,   241,   240,   243,   242,   245,   244,   247,   246,
1244
     249,   248,   255,   254,   257,   256,   259,   258,   251,   250,
1245
     253,   252,   285,    32,   284,   287,   286,   289,   288,   291,
1246
     290,   293,   292,   295,   294,   298,   296,   297,   301,   303,
1247
     105,   307,   309,   308,   311,   310,   313,   312,   315,   314,
1248
     317,     0,   316,   319,   318,   178,   344,     0,     0,   346,
1249
       0,   349,     0,     0,   351,     0,   353,     0,   355,     0,
1250
     357,     0,   359,     0,   361,     0,    43,    44,     0,     0,
1251
       0,     0,    48,     0,     0,    31,     0,     0,     0,    61,
1252
      63,     0,     0,     0,     0,     0,     0,   306,     0,     0,
1253
     504,     0,   506,   516,     0,     0,     0,     0,     0,     0,
1254
       0,     0,     0,     0,     0,     0,   381,   445,   382,     0,
1255
       0,     0,   434,   440,   441,   442,   443,     0,   338,   337,
1256
     339,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1257
       0,     0,    49,    50,     0,     0,     0,     0,     0,    67,
1258
      70,    68,    69,    71,    72,    73,    79,    85,   279,    89,
1259
     278,   332,    56,    34,    33,    45,   176,   114,     0,   234,
1260
     108,   106,   107,   110,   105,     0,     0,   179,     0,     0,
1261
       0,     0,   511,   508,   519,     0,   522,     0,   526,     0,
1262
       0,     0,     0,     0,     0,     0,     0,     0,   531,     0,
1263
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
1264
       0,   444,   435,   342,   433,   446,   439,     0,     0,   347,
1265
       0,     0,   352,   354,   356,     0,     0,     0,     0,     0,
1266
      77,    64,    76,    74,    75,    78,    80,    90,     0,     0,
1267
       0,     0,   305,     0,   333,     0,   104,   112,     0,   334,
1268
     101,     0,   505,     0,     0,     0,     0,   385,     0,   386,
1269
     367,   383,   424,   384,   423,   422,   507,   514,     0,     0,
1270
       0,     0,     0,     0,     0,     0,     0,   340,     0,   341,
1271
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1272
       0,     0,   528,   473,   475,   478,   481,     0,   420,   421,
1273
       0,   403,     0,   402,   404,   405,   419,   406,     0,     0,
1274
       0,     0,     0,     0,    81,     0,    53,    41,    51,    54,
1275
      52,     0,    58,    36,    37,    57,    47,    46,     0,     0,
1276
       0,   109,     0,   102,    87,    88,     0,     0,   113,     0,
1277
     103,     0,   364,     0,   426,     0,     0,     0,     0,   503,
1278
       0,   368,   370,   371,   372,   373,   369,   374,   375,   376,
1279
     377,   380,     0,     0,   499,   498,   497,   496,   500,     0,
1280
     512,     0,   509,     0,   520,   517,     0,   523,     0,   527,
1281
     524,     0,     0,     0,     0,     0,   532,   335,   533,   336,
1282
     534,     0,   535,   495,     0,     0,   542,     0,   530,   476,
1283
     479,   482,   529,   477,   417,     0,     0,     0,     0,     0,
1284
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1285
       0,     0,     0,    86,     0,     0,    66,    65,   323,   325,
1286
     324,     0,     0,     0,    99,     0,   111,     0,   365,   425,
1287
     366,   363,   362,     0,   390,   391,   389,   388,   387,   515,
1288
       0,     0,     0,     0,     0,   486,   484,   485,   487,     0,
1289
       0,   458,   430,     0,     0,     0,   454,     0,     0,   460,
1290
     427,   449,   450,   451,   452,     0,     0,     0,     0,     0,
1291
     492,     0,     0,     0,   474,   480,   483,   418,   413,   412,
1292
     414,   415,   416,   407,   408,   410,   409,   411,   343,   345,
1293
     348,   350,     0,   360,    82,    40,    39,     0,   100,     0,
1294
       0,     0,     0,   502,   501,   513,   510,   518,   521,   525,
1295
       0,   432,     0,     0,     0,     0,   464,   466,     0,   447,
1296
     429,     0,   437,   453,   455,   448,     0,   536,   537,   494,
1297
     493,   538,     0,   541,     0,     0,     0,     0,     0,    95,
1298
       0,    97,     0,   491,   488,   489,   490,   431,   459,     0,
1299
       0,   462,     0,   465,   463,     0,   438,   428,   436,   461,
1300
       0,     0,   358,    38,    96,     0,    98,     0,   119,     0,
1301
     470,   468,   472,     0,   539,   540,     0,    93,     0,     0,
1302
     118,     0,     0,     0,   456,    94,     0,     0,     0,     0,
1303
       0,     0,    91,     0,     0,   457,    92,     0,     0,     0,
1304
       0,     0,     0,     0,     0,   117,     0,   116
1305
};
1306
1307
  /* YYPGOTO[NTERM-NUM].  */
1308
static const yytype_int16 yypgoto[] =
1309
{
1310
    -874,  -874,  -874,  1294,  -874,  -874,  -874,  -874,  -874,  -874,
1311
    -874,  -874,  -874,  -203,  -874,  -874,  -142,  -645,  -613,  -123,
1312
    -874,  -874,  -874,  -874,  1084,  -874,  -874,   842,   572,  -874,
1313
    -874,   667,   836,   657,   827,   761,  -874,  -874,  -874,  -874,
1314
    -874,  -874,  -139,  -874,  1104,  -874,  -638,  -595,  -413,  -874,
1315
    -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -874,  -549,
1316
    -874,  -874,  -874,  -874,  -874,  -511,  -874,  -570,  -874,   512,
1317
    -424,  -874,  -873,   489,  -463,  -846,  -510,    72,  -874,  -561,
1318
    -767,  -590,  -498,  -874,  -874,   490,  -874,   621,  -874,   820,
1319
     568,  -385,  -494
1320
};
1321
1322
  /* YYDEFGOTO[NTERM-NUM].  */
1323
static const yytype_int16 yydefgoto[] =
1324
{
1325
      -1,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1326
     113,   114,   115,   314,   497,   315,   316,   735,   728,   713,
1327
     317,   303,   318,   319,   320,   642,   566,   567,   725,   304,
1328
     490,   746,   570,   657,   507,   583,   584,   658,   389,   462,
1329
     116,   117,   659,   322,   323,   324,   660,   695,   541,   688,
1330
     234,   236,   238,   240,   242,   244,   246,   248,   250,   668,
1331
     769,   770,   771,   772,   773,   529,   670,   715,   620,   716,
1332
     530,   673,   879,   871,   531,   941,   532,   880,   881,   533,
1333
     534,   535,   536,   935,   936,   937,   974,   707,   869,   699,
1334
     778,   779,   537
1335
};
1336
1337
  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1338
     positive, shift that token.  If negative, reduce the rule whose
1339
     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1340
static const yytype_int16 yytable[] =
1341
{
1342
     263,   302,   593,   299,   737,   272,   321,   434,   476,   543,
1343
     697,   284,   286,   288,   546,   743,   547,   747,   548,   671,
1344
     732,   624,   478,   149,   469,   736,   730,   882,   674,   480,
1345
     671,   189,   671,   624,   466,   495,   624,   624,   624,   674,
1346
     594,   674,   118,   253,   474,   151,   153,   482,   358,   360,
1347
     362,   690,   625,   692,   526,   740,   505,   542,   484,   701,
1348
     544,   651,   545,   496,   596,   186,   780,   471,   782,   119,
1349
     549,   321,   550,   979,   598,   781,   506,   783,   669,   686,
1350
     680,   120,   528,  -379,  -379,   506,   608,   748,   689,   669,
1351
     691,   669,   693,   671,   671,   675,   803,   255,   706,   944,
1352
     251,   257,   674,   674,   842,   445,   675,   230,   675,   714,
1353
     882,   295,  -379,   121,   752,   753,   393,   273,   837,   733,
1354
    1004,   297,   155,   934,   972,   396,   717,   416,   349,   122,
1355
     353,   855,   418,   857,   526,   757,   758,  1015,   796,   790,
1356
     757,   758,   797,   734,  1001,  1002,  1003,   383,   791,   759,
1357
     757,   758,   669,   669,   792,   714,   123,   798,   760,   385,
1358
     150,   799,   528,   401,   794,   672,   387,   777,   452,   675,
1359
     675,   454,   717,   460,   882,   300,   672,   235,   672,   882,
1360
     321,   233,   152,   154,   889,   806,   687,   671,   671,   477,
1361
     733,   306,   568,   811,   807,   733,   674,   674,   684,   714,
1362
     921,   714,   755,   479,   883,   920,   888,   470,   851,   852,
1363
     481,   190,   301,   254,   734,   467,   717,   468,   717,   734,
1364
     595,   260,   261,   882,   882,   882,   882,   475,   702,   262,
1365
     483,   626,   703,   526,   882,   882,   882,   704,   187,   672,
1366
     672,   485,   432,   882,   597,   624,   669,   669,   472,   538,
1367
     473,   539,   540,   526,   599,   826,   827,   828,   829,   156,
1368
     831,   528,   858,   675,   675,   749,   609,   256,   573,   750,
1369
     777,   258,   777,   252,   958,   446,   804,   447,   945,   957,
1370
     868,   528,   872,   296,   886,   854,   553,   883,   394,   395,
1371
     274,   572,   681,   706,   298,   575,   884,   397,   398,   417,
1372
     885,   350,   896,   354,   419,   714,   714,   714,   714,   714,
1373
     714,   714,   714,   714,   714,   987,   624,   624,   624,   624,
1374
     384,   624,   717,   717,   717,   717,   717,   717,   717,   717,
1375
     717,   717,   386,   672,   672,   402,   403,   774,   157,   388,
1376
     996,   453,   124,   159,   455,   461,   260,   261,   264,   777,
1377
     321,   883,   641,   890,   262,   321,   883,   703,   526,   321,
1378
     266,   307,   704,   308,   309,   569,   310,   311,   671,   125,
1379
     878,   685,   268,   270,   312,   275,   277,   674,   279,   884,
1380
     802,   126,   812,   885,   799,   313,   528,   217,   219,   975,
1381
     592,   813,   892,   281,   893,   259,   861,   127,   862,   844,
1382
     883,   883,   883,   883,   291,   293,   325,   932,   845,   128,
1383
     283,   883,   883,   883,   433,   309,   321,   310,   311,   966,
1384
     883,   129,   624,   872,   130,   312,   859,   669,   327,  -378,
1385
    -378,   310,   311,   654,   285,   860,   757,   758,   131,   312,
1386
     -30,   329,   337,   884,   675,   624,   132,   885,   884,   955,
1387
     848,   287,   885,   878,   260,   261,   133,   339,  -378,   134,
1388
     341,   135,   262,   343,   918,   682,   667,   345,   679,   357,
1389
     260,   261,   683,   919,   136,   158,   137,   667,   262,   667,
1390
     160,   775,   526,   347,   359,   351,   705,   355,   538,   363,
1391
     539,   540,   884,   884,   884,   884,   885,   885,   885,   885,
1392
     365,   361,   925,   884,   884,   884,   367,   885,   885,   885,
1393
     528,   860,   884,   745,   672,   369,   885,   878,   265,   371,
1394
     138,   373,   878,   375,   218,   220,   377,   739,   379,   976,
1395
     267,   510,   511,   512,   513,   514,   139,   515,   516,   865,
1396
     667,   667,   269,   271,   381,   276,   278,   874,   280,   518,
1397
    -469,  -469,   875,   519,   520,   776,   140,   260,   261,   521,
1398
     522,   963,   391,   282,   141,   262,   878,   878,   878,   878,
1399
     142,   399,   260,   261,   292,   294,   326,   878,   878,   878,
1400
     262,   810,   143,   144,   404,   976,   878,   510,   511,   512,
1401
     513,   514,   406,   515,   516,   408,   260,   261,   328,   410,
1402
     745,   412,   414,   874,   262,   518,  -467,  -467,   875,   519,
1403
     520,   330,   338,   260,   261,   521,   522,   145,   420,   422,
1404
     976,   262,   510,   511,   512,   513,   514,   340,   515,   516,
1405
     342,   260,   261,   344,   667,   667,   424,   346,   874,   262,
1406
     518,   146,   426,   875,   519,   520,   260,   261,   428,   856,
1407
     521,   522,   237,   348,   262,   352,   239,   356,   776,   364,
1408
     776,   523,   524,   260,   261,   430,   435,   437,   867,   439,
1409
     366,   262,   260,   261,   147,   441,   368,   443,   260,   261,
1410
     262,   705,   148,   866,   526,   370,   262,   456,   161,   372,
1411
     895,   374,   162,   376,   260,   261,   378,   458,   380,   463,
1412
     726,   525,   262,   526,   926,   964,   526,   729,   876,   836,
1413
     929,  -469,   528,   860,   382,   988,   989,   523,   524,   930,
1414
     976,   950,   510,   511,   512,   513,   514,   163,   515,   516,
1415
     813,   528,   392,   951,   528,   757,   758,   776,   874,   953,
1416
     518,   400,   952,   875,   519,   520,   164,   165,   954,   993,
1417
     521,   522,   523,   524,   405,   260,   261,   525,   166,   526,
1418
     167,   168,   407,   262,   876,   409,   738,  -467,   169,   411,
1419
     241,   413,   415,   622,   959,   510,   511,   512,   513,   514,
1420
     838,   515,   516,   960,   797,   245,   800,   528,   421,   423,
1421
     797,   517,   525,   518,   526,   801,   984,   519,   520,   876,
1422
     653,   170,   977,   521,   522,   985,   425,   965,   310,   311,
1423
     654,   970,   427,   655,   997,   667,   312,   171,   429,   172,
1424
     173,   174,   528,   998,   622,  1005,   510,   511,   512,   513,
1425
     514,   175,   515,   516,  1006,   431,   436,   438,   176,   440,
1426
     177,   178,   517,   179,   518,   442,   243,   444,   519,   520,
1427
     180,   181,   523,   524,   521,   522,   622,   457,   510,   511,
1428
     512,   513,   514,   247,   515,   516,   580,   459,   182,   464,
1429
     727,   581,   582,   183,   517,   184,   518,   727,   185,   727,
1430
     519,   520,   -84,   188,   191,   249,   521,   522,   260,   261,
1431
     260,   261,   525,   840,   526,   677,   262,   799,   262,   876,
1432
     526,   969,  -471,   192,   678,   523,   524,   622,   193,   510,
1433
     511,   512,   513,   514,   194,   515,   516,   947,   260,   261,
1434
     948,   797,   528,   195,   799,   517,   262,   518,   528,   196,
1435
     526,   519,   520,   310,   311,   654,   591,   521,   522,   197,
1436
     198,   312,   260,   261,   199,   525,   200,   526,   201,   942,
1437
     262,   202,   527,   809,   526,   623,   523,   524,   528,   331,
1438
     622,   289,   510,   511,   512,   513,   514,   203,   515,   516,
1439
     433,   309,   204,   310,   311,   528,   205,   206,   517,   207,
1440
     518,   312,   528,   208,   519,   520,   209,   210,   523,   524,
1441
     521,   522,   211,   260,   261,   212,   525,   213,   526,   214,
1442
     215,   262,   216,   527,   894,   526,   629,   -84,   -84,   -84,
1443
     -84,   221,   222,   978,   290,   223,   224,   -84,   -84,   -84,
1444
     -84,   -84,   -84,   -84,   225,   226,   528,   227,   525,   228,
1445
     526,   229,   305,   528,   332,   527,   333,   334,   632,   523,
1446
     524,   622,   335,   510,   511,   512,   513,   514,   450,   515,
1447
     516,   336,   310,   311,   654,   390,   448,   742,   528,   517,
1448
     312,   518,   942,   942,   942,   519,   520,   449,   451,   465,
1449
     486,   521,   522,   978,   978,   978,   487,   488,   489,   525,
1450
     492,   526,   307,   503,   308,   309,   527,   310,   311,   633,
1451
     310,   499,   523,   524,   622,   312,   510,   511,   512,   513,
1452
     514,   491,   515,   516,   -35,   508,   313,   653,   501,   528,
1453
     494,   498,   517,   504,   518,   310,   311,   654,   519,   520,
1454
     655,   502,   656,   312,   521,   522,   821,   822,   823,   824,
1455
     825,   509,   525,   300,   526,   551,   310,   311,   654,   527,
1456
     571,   574,   634,   576,   312,   622,   577,   510,   511,   512,
1457
     513,   514,   578,   515,   516,   744,   579,   585,   586,   587,
1458
     588,   589,   528,   517,   621,   518,   590,   627,   635,   519,
1459
     520,   600,   601,   523,   524,   521,   522,   622,   756,   510,
1460
     511,   512,   513,   514,   602,   515,   516,   761,   762,   763,
1461
     764,   765,   766,   767,   768,   517,   603,   518,   604,   605,
1462
     606,   519,   520,   607,   638,   628,   630,   521,   522,   631,
1463
     636,   637,   640,   525,   643,   526,   644,   639,   569,   645,
1464
     527,   648,   814,   849,   815,   649,   523,   524,   622,   650,
1465
     510,   511,   512,   513,   514,   662,   515,   516,   661,   676,
1466
     694,   696,   708,   528,   698,   709,   517,   722,   518,   731,
1467
     718,   724,   519,   520,   552,   719,   720,   721,   521,   522,
1468
     723,   433,   309,   751,   310,   311,   525,   784,   526,   785,
1469
     786,   787,   312,   527,   788,   789,   908,   523,   524,   793,
1470
     795,   622,   805,   510,   511,   512,   513,   514,   808,   515,
1471
     516,   830,   832,   833,   834,   835,   528,   839,   843,   517,
1472
     847,   518,   853,   863,   873,   519,   520,   912,   864,   523,
1473
     524,   521,   522,   887,   915,   917,   916,   525,   922,   526,
1474
     923,   927,   928,   933,   527,   946,   934,   909,   898,   899,
1475
     900,   901,   902,   903,   904,   905,   906,   907,   938,   939,
1476
     943,   949,   956,   961,   971,   962,   980,   528,   983,   525,
1477
     986,   526,   990,   981,   994,   995,   527,   991,   992,   910,
1478
     523,   524,   622,  1000,   510,   511,   512,   513,   514,  1007,
1479
     515,   516,   999,  1008,  1009,  1010,  1012,  1011,  1013,   528,
1480
     517,  1014,   518,  1016,   554,  1017,   519,   520,  1018,  1019,
1481
    1020,  1021,   521,   522,  1023,  1022,  1024,  1025,  1027,   232,
1482
     525,  1026,   526,   500,   914,   647,   846,   527,   646,   841,
1483
     911,   652,   741,   523,   524,   622,   493,   510,   511,   512,
1484
     513,   514,   968,   515,   516,   891,   973,   700,   924,     0,
1485
     528,     0,     0,   517,     0,   518,     0,     0,     0,   519,
1486
     520,     0,     0,     0,     0,   521,   522,     0,     0,     0,
1487
       0,     0,     0,   525,     0,   526,     0,     0,     0,     0,
1488
     527,     0,     0,   913,     0,     0,     0,     0,   510,   511,
1489
     512,   513,   514,     0,   515,   516,     0,     0,     0,     0,
1490
       0,     0,     0,   528,   517,   510,   511,   512,   513,   514,
1491
       0,   515,   516,     0,   523,   524,   521,   522,     0,     0,
1492
       0,   874,     0,   518,     0,     0,   875,   519,   520,   555,
1493
     556,   557,   558,   521,   522,     0,     0,     0,     0,   559,
1494
     560,   561,   562,   563,   564,   565,     0,     0,     0,     0,
1495
       0,     0,     0,     0,   525,     0,   526,     0,     0,     0,
1496
       0,   527,     0,     0,   967,     0,     0,   523,   524,   510,
1497
     511,   512,   513,   514,     0,   515,   516,     0,     0,     0,
1498
       0,     0,     0,     0,   528,   874,     0,   518,     0,     0,
1499
     875,   519,   520,     0,     0,     0,     0,   521,   522,     0,
1500
       0,     0,     0,     0,     0,     0,     0,   525,     0,   526,
1501
       0,     0,     0,     0,   527,     0,     0,   982,   523,   524,
1502
       0,     0,   510,   511,   512,   513,   514,     0,   515,   516,
1503
       0,     0,     0,     0,     0,   523,   524,   528,   816,   817,
1504
     818,   819,   820,   821,   822,   823,   824,   825,   260,   261,
1505
     521,   522,     0,   663,     0,     0,   262,     0,   525,     0,
1506
     526,     0,     0,     0,     0,   850,   664,   665,     0,   666,
1507
       0,     0,     0,     0,     0,   525,     0,   526,     0,     0,
1508
       0,     0,   876,     0,   877,     0,     0,     0,   528,     0,
1509
     510,   511,   512,   513,   514,     0,   515,   516,     0,   523,
1510
     524,     0,     0,     0,     0,   528,   517,     0,   518,     0,
1511
       0,     0,   519,   520,     0,     0,     0,     0,   521,   522,
1512
       0,     0,   510,   511,   512,   513,   514,     0,   515,   516,
1513
       0,     0,     0,     0,     0,     0,     0,     0,   517,   525,
1514
     518,   526,     0,     0,   519,   520,   876,     0,     0,   940,
1515
     521,   522,   523,   524,     0,     0,   510,   511,   512,   513,
1516
     514,     0,   515,   516,     0,     0,     0,     0,     0,   528,
1517
       0,     0,   517,     0,   518,     0,     0,     0,   519,   520,
1518
       0,     0,   260,   261,   521,   522,     0,     0,   710,     0,
1519
     262,     0,   525,   711,   526,     0,     0,     0,     0,     0,
1520
     712,     0,     0,     0,     0,     0,     0,   510,   511,   512,
1521
     513,   514,     0,   515,   516,     0,     0,     0,     0,     0,
1522
     523,   524,   528,   874,     0,   518,     0,     0,   875,   519,
1523
     520,     0,     0,     0,     0,   521,   522,     0,     0,     0,
1524
       0,     0,     0,   510,   511,   512,   513,   514,     0,   515,
1525
     516,     0,   523,   524,     0,     0,     0,     0,     0,   517,
1526
     525,   518,   526,     0,   610,   519,   520,   527,     0,     0,
1527
     754,   521,   522,   611,   612,   613,   614,   615,   616,   617,
1528
     618,   619,     0,     0,     0,     0,   523,   524,     0,     0,
1529
     528,     0,   525,     0,   526,     0,     0,     0,     0,   527,
1530
       0,   870,   610,   761,   762,   763,   764,   765,   766,   767,
1531
     768,   611,   612,   613,   614,   615,   616,   617,   618,   619,
1532
       0,     0,   528,     0,     0,     0,   525,     0,   526,     0,
1533
       0,     0,     0,   527,     0,     0,   931,   523,   524,   816,
1534
     817,   818,   819,   820,   821,   822,   823,   824,   825,     0,
1535
       0,   897,     0,     0,     0,     0,   528,   816,   817,   818,
1536
     819,   820,   821,   822,   823,   824,   825,     0,     0,     0,
1537
       0,     0,     0,   523,   524,     0,     0,   525,     0,   526,
1538
       0,     0,     0,     0,   876,     0,     0,     0,     0,     0,
1539
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1540
       0,     0,     0,     0,     0,     0,     0,   528,     0,     0,
1541
       0,    -2,   231,   525,     0,   526,     0,     0,     0,     2,
1542
     527,    -8,   -10,   -12,   -14,   -16,   -18,   -20,   -22,   -24,
1543
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1544
       0,     0,     0,   528,     3,     4,     5,     6,     7,     8,
1545
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1546
      19,    20,    21,    22,    23,    24,    25,     0,    26,    27,
1547
      28,    29,     0,    30,    31,    32,    33,    34,    35,    36,
1548
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1549
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1550
      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1551
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1552
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1553
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1554
      97,    98,    99,     0,     1,     0,   100,   101,   102,     0,
1555
       0,     2,     0,    -8,   -10,   -12,   -14,   -16,   -18,   -20,
1556
     -22,   -24,     0,     0,     0,     0,     0,     0,     0,     0,
1557
       0,     0,     0,     0,     0,     0,     3,     4,     5,     6,
1558
       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1559
      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
1560
      26,    27,    28,    29,   103,    30,    31,    32,    33,    34,
1561
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1562
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1563
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1564
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1565
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1566
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1567
      95,    96,    97,    98,    99,     0,     0,     0,   100,   101,
1568
     102,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1569
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1570
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1571
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1572
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1573
       0,     0,     0,     0,     0,     0,   103
1574
};
1575
1576
static const yytype_int16 yycheck[] =
1577
{
1578
     123,   143,   513,     1,   649,   128,   145,   210,     1,   472,
1579
     605,   134,   135,   136,   477,   653,   479,   655,   481,   589,
1580
       1,   531,     1,     1,     1,     1,   639,   794,   589,     1,
1581
     600,     1,   602,   543,     1,   164,   546,   547,   548,   600,
1582
       1,   602,   138,     1,     1,     1,     1,     1,   171,   172,
1583
     173,   600,     1,   602,   175,   650,   165,   470,     1,     1,
1584
     473,   179,   475,   192,     1,     1,   170,     1,   170,   138,
1585
     483,   210,   485,   946,     1,   179,   194,   179,   589,     1,
1586
     591,   138,   203,   174,   175,   194,     1,     1,   599,   600,
1587
     601,   602,   603,   663,   664,   589,     1,     1,   609,     1,
1588
       1,     1,   663,   664,   742,     1,   600,     0,   602,   620,
1589
     877,     1,   203,   138,   663,   664,     1,     1,   731,   171,
1590
     993,     1,     1,    22,    23,     1,   620,     1,     1,   138,
1591
       1,   769,     1,   174,   175,   156,   157,  1010,   170,   170,
1592
     156,   157,   174,   195,   990,   991,   992,     1,   179,   170,
1593
     156,   157,   663,   664,   170,   666,   138,   170,   179,     1,
1594
     138,   174,   203,     1,   170,   589,     1,   678,     1,   663,
1595
     664,     1,   666,     1,   941,   173,   600,    11,   602,   946,
1596
     319,    10,   138,   138,     1,   170,   599,   757,   758,   182,
1597
     171,     1,     1,   704,   179,   171,   757,   758,     1,   710,
1598
     845,   712,   665,   182,   794,   843,   801,   184,   757,   758,
1599
     182,   181,   210,   171,   195,   182,   710,   184,   712,   195,
1600
     181,   163,   164,   990,   991,   992,   993,   184,   170,   171,
1601
     184,   180,   174,   175,  1001,  1002,  1003,   179,   174,   663,
1602
     664,   184,     1,  1010,   181,   755,   757,   758,   182,   171,
1603
     184,   173,   174,   175,   181,   718,   719,   720,   721,   138,
1604
     723,   203,   773,   757,   758,   179,   181,   171,     1,   183,
1605
     781,   171,   783,   174,   919,   171,   181,   173,   180,   917,
1606
     791,   203,   792,   173,   795,    30,   489,   877,   173,   174,
1607
     174,   494,     1,   804,   174,   498,   794,   173,   174,   173,
1608
     794,   174,   813,   174,   173,   816,   817,   818,   819,   820,
1609
     821,   822,   823,   824,   825,   960,   826,   827,   828,   829,
1610
     174,   831,   816,   817,   818,   819,   820,   821,   822,   823,
1611
     824,   825,   174,   757,   758,   173,   174,    30,     1,   174,
1612
     985,   174,   138,     1,   174,   173,   163,   164,     1,   860,
1613
     489,   941,   555,   170,   171,   494,   946,   174,   175,   498,
1614
       1,   171,   179,   173,   174,   174,   176,   177,   938,   138,
1615
     794,   174,     1,     1,   184,     1,     1,   938,     1,   877,
1616
     170,   138,   170,   877,   174,   195,   203,     1,     1,   938,
1617
     513,   179,   805,     1,   807,     1,   781,   138,   783,   170,
1618
     990,   991,   992,   993,     1,     1,     1,   870,   179,   138,
1619
       1,  1001,  1002,  1003,   173,   174,   555,   176,   177,   930,
1620
    1010,   138,   932,   933,   138,   184,   170,   938,     1,   174,
1621
     175,   176,   177,   178,     1,   179,   156,   157,   138,   184,
1622
     173,     1,     1,   941,   938,   955,   138,   941,   946,   912,
1623
     170,     1,   946,   877,   163,   164,   138,     1,   203,   138,
1624
       1,   138,   171,     1,   170,   174,   589,     1,   591,     1,
1625
     163,   164,   595,   179,   138,   138,   138,   600,   171,   602,
1626
     138,   174,   175,     1,     1,     1,   609,     1,   171,     1,
1627
     173,   174,   990,   991,   992,   993,   990,   991,   992,   993,
1628
       1,     1,   170,  1001,  1002,  1003,     1,  1001,  1002,  1003,
1629
     203,   179,  1010,   655,   938,     1,  1010,   941,   171,     1,
1630
     138,     1,   946,     1,   138,   138,     1,   650,     1,     1,
1631
     171,     3,     4,     5,     6,     7,   138,     9,    10,    30,
1632
     663,   664,   171,   171,     1,   171,   171,    19,   171,    21,
1633
      22,    23,    24,    25,    26,   678,   138,   163,   164,    31,
1634
      32,    30,     1,   171,   138,   171,   990,   991,   992,   993,
1635
     138,     1,   163,   164,   171,   171,   171,  1001,  1002,  1003,
1636
     171,   704,   138,   138,     1,     1,  1010,     3,     4,     5,
1637
       6,     7,     1,     9,    10,     1,   163,   164,   171,     1,
1638
     742,     1,     1,    19,   171,    21,    22,    23,    24,    25,
1639
      26,   171,   171,   163,   164,    31,    32,   138,     1,     1,
1640
       1,   171,     3,     4,     5,     6,     7,   171,     9,    10,
1641
     171,   163,   164,   171,   757,   758,     1,   171,    19,   171,
1642
      21,   138,     1,    24,    25,    26,   163,   164,     1,   772,
1643
      31,    32,    12,   171,   171,   171,    13,   171,   781,   171,
1644
     783,   133,   134,   163,   164,     1,     1,     1,   791,     1,
1645
     171,   171,   163,   164,   138,     1,   171,     1,   163,   164,
1646
     171,   804,   138,   174,   175,   171,   171,     1,   138,   171,
1647
     813,   171,   138,   171,   163,   164,   171,     1,   171,     1,
1648
       1,   173,   171,   175,   170,   174,   175,     1,   180,     1,
1649
     170,   183,   203,   179,   171,   207,   208,   133,   134,   179,
1650
       1,   170,     3,     4,     5,     6,     7,   138,     9,    10,
1651
     179,   203,   171,   170,   203,   156,   157,   860,    19,   170,
1652
      21,   171,   179,    24,    25,    26,   138,   138,   179,   170,
1653
      31,    32,   133,   134,   171,   163,   164,   173,   138,   175,
1654
     138,   138,   171,   171,   180,   171,   174,   183,   138,   171,
1655
      14,   171,   171,     1,   170,     3,     4,     5,     6,     7,
1656
     170,     9,    10,   179,   174,    16,   170,   203,   171,   171,
1657
     174,    19,   173,    21,   175,   179,   170,    25,    26,   180,
1658
     168,   138,   183,    31,    32,   179,   171,   930,   176,   177,
1659
     178,   934,   171,   181,   170,   938,   184,   138,   171,   138,
1660
     138,   138,   203,   179,     1,   170,     3,     4,     5,     6,
1661
       7,   138,     9,    10,   179,   171,   171,   171,   138,   171,
1662
     138,   138,    19,   138,    21,   171,    15,   171,    25,    26,
1663
     138,   138,   133,   134,    31,    32,     1,   171,     3,     4,
1664
       5,     6,     7,    17,     9,    10,    23,   171,   138,   171,
1665
     171,    28,    29,   138,    19,   138,    21,   171,   138,   171,
1666
      25,    26,    61,   138,   138,    18,    31,    32,   163,   164,
1667
     163,   164,   173,   170,   175,   170,   171,   174,   171,   180,
1668
     175,   174,   183,   138,   179,   133,   134,     1,   138,     3,
1669
       4,     5,     6,     7,   138,     9,    10,   170,   163,   164,
1670
     170,   174,   203,   138,   174,    19,   171,    21,   203,   138,
1671
     175,    25,    26,   176,   177,   178,   181,    31,    32,   138,
1672
     138,   184,   163,   164,   138,   173,   138,   175,   138,   877,
1673
     171,   138,   180,   174,   175,   183,   133,   134,   203,   171,
1674
       1,   174,     3,     4,     5,     6,     7,   138,     9,    10,
1675
     173,   174,   138,   176,   177,   203,   138,   138,    19,   138,
1676
      21,   184,   203,   138,    25,    26,   138,   138,   133,   134,
1677
      31,    32,   138,   163,   164,   138,   173,   138,   175,   138,
1678
     138,   171,   138,   180,   174,   175,   183,   186,   187,   188,
1679
     189,   138,   138,   941,   174,   138,   138,   196,   197,   198,
1680
     199,   200,   201,   202,   138,   138,   203,   138,   173,   138,
1681
     175,   138,   174,   203,   171,   180,   171,   171,   183,   133,
1682
     134,     1,   171,     3,     4,     5,     6,     7,   173,     9,
1683
      10,   171,   176,   177,   178,   174,   171,   181,   203,    19,
1684
     184,    21,   990,   991,   992,    25,    26,   171,   171,   171,
1685
     171,    31,    32,  1001,  1002,  1003,   171,   194,   194,   173,
1686
       1,   175,   171,   179,   173,   174,   180,   176,   177,   183,
1687
     176,   197,   133,   134,     1,   184,     3,     4,     5,     6,
1688
       7,   194,     9,    10,   194,   204,   195,   168,   189,   203,
1689
     194,   194,    19,   189,    21,   176,   177,   178,    25,    26,
1690
     181,   194,   183,   184,    31,    32,   163,   164,   165,   166,
1691
     167,   189,   173,   173,   175,   173,   176,   177,   178,   180,
1692
     185,   173,   183,   173,   184,     1,   174,     3,     4,     5,
1693
       6,     7,   174,     9,    10,   195,   173,   182,   171,   173,
1694
     181,   181,   203,    19,   180,    21,   181,   185,   179,    25,
1695
      26,   181,   181,   133,   134,    31,    32,     1,   666,     3,
1696
       4,     5,     6,     7,   181,     9,    10,   139,   140,   141,
1697
     142,   143,   144,   145,   146,    19,   181,    21,   181,   181,
1698
     181,    25,    26,   181,   194,   185,   185,    31,    32,   185,
1699
     185,   182,   173,   173,   171,   175,   171,   194,   174,   173,
1700
     180,   194,   710,   183,   712,   194,   133,   134,     1,   179,
1701
       3,     4,     5,     6,     7,   170,     9,    10,   206,   170,
1702
     174,   174,    30,   203,   173,    30,    19,   171,    21,   194,
1703
     182,   174,    25,    26,   166,   182,   182,   182,    31,    32,
1704
     182,   173,   174,   171,   176,   177,   173,   170,   175,   170,
1705
     179,   170,   184,   180,   179,   170,   183,   133,   134,   170,
1706
      27,     1,   179,     3,     4,     5,     6,     7,   170,     9,
1707
      10,   185,   179,   183,   164,   179,   203,   170,   179,    19,
1708
     167,    21,   174,   174,   182,    25,    26,   182,   174,   133,
1709
     134,    31,    32,   174,   171,   179,   171,   173,    26,   175,
1710
     170,   170,   170,    20,   180,   170,    22,   183,   816,   817,
1711
     818,   819,   820,   821,   822,   823,   824,   825,   181,   180,
1712
     180,   170,   164,   170,   183,   171,   171,   203,   171,   173,
1713
     170,   175,   194,   174,   170,   170,   180,   194,   194,   183,
1714
     133,   134,     1,   171,     3,     4,     5,     6,     7,   174,
1715
       9,    10,   205,   171,   205,    20,   170,   174,   206,   203,
1716
      19,   171,    21,   170,    61,   171,    25,    26,   206,   167,
1717
     171,    26,    31,    32,   171,   167,    26,   207,   207,   105,
1718
     173,   171,   175,   319,   832,   569,   749,   180,   566,   742,
1719
     183,   584,   651,   133,   134,     1,   312,     3,     4,     5,
1720
       6,     7,   933,     9,    10,   804,   936,   607,   860,    -1,
1721
     203,    -1,    -1,    19,    -1,    21,    -1,    -1,    -1,    25,
1722
      26,    -1,    -1,    -1,    -1,    31,    32,    -1,    -1,    -1,
1723
      -1,    -1,    -1,   173,    -1,   175,    -1,    -1,    -1,    -1,
1724
     180,    -1,    -1,   183,    -1,    -1,    -1,    -1,     3,     4,
1725
       5,     6,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,
1726
      -1,    -1,    -1,   203,    19,     3,     4,     5,     6,     7,
1727
      -1,     9,    10,    -1,   133,   134,    31,    32,    -1,    -1,
1728
      -1,    19,    -1,    21,    -1,    -1,    24,    25,    26,   186,
1729
     187,   188,   189,    31,    32,    -1,    -1,    -1,    -1,   196,
1730
     197,   198,   199,   200,   201,   202,    -1,    -1,    -1,    -1,
1731
      -1,    -1,    -1,    -1,   173,    -1,   175,    -1,    -1,    -1,
1732
      -1,   180,    -1,    -1,   183,    -1,    -1,   133,   134,     3,
1733
       4,     5,     6,     7,    -1,     9,    10,    -1,    -1,    -1,
1734
      -1,    -1,    -1,    -1,   203,    19,    -1,    21,    -1,    -1,
1735
      24,    25,    26,    -1,    -1,    -1,    -1,    31,    32,    -1,
1736
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   173,    -1,   175,
1737
      -1,    -1,    -1,    -1,   180,    -1,    -1,   183,   133,   134,
1738
      -1,    -1,     3,     4,     5,     6,     7,    -1,     9,    10,
1739
      -1,    -1,    -1,    -1,    -1,   133,   134,   203,   158,   159,
1740
     160,   161,   162,   163,   164,   165,   166,   167,   163,   164,
1741
      31,    32,    -1,   168,    -1,    -1,   171,    -1,   173,    -1,
1742
     175,    -1,    -1,    -1,    -1,   185,   181,   182,    -1,   184,
1743
      -1,    -1,    -1,    -1,    -1,   173,    -1,   175,    -1,    -1,
1744
      -1,    -1,   180,    -1,   182,    -1,    -1,    -1,   203,    -1,
1745
       3,     4,     5,     6,     7,    -1,     9,    10,    -1,   133,
1746
     134,    -1,    -1,    -1,    -1,   203,    19,    -1,    21,    -1,
1747
      -1,    -1,    25,    26,    -1,    -1,    -1,    -1,    31,    32,
1748
      -1,    -1,     3,     4,     5,     6,     7,    -1,     9,    10,
1749
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,   173,
1750
      21,   175,    -1,    -1,    25,    26,   180,    -1,    -1,   183,
1751
      31,    32,   133,   134,    -1,    -1,     3,     4,     5,     6,
1752
       7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,   203,
1753
      -1,    -1,    19,    -1,    21,    -1,    -1,    -1,    25,    26,
1754
      -1,    -1,   163,   164,    31,    32,    -1,    -1,   169,    -1,
1755
     171,    -1,   173,   174,   175,    -1,    -1,    -1,    -1,    -1,
1756
     181,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
1757
       6,     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    -1,
1758
     133,   134,   203,    19,    -1,    21,    -1,    -1,    24,    25,
1759
      26,    -1,    -1,    -1,    -1,    31,    32,    -1,    -1,    -1,
1760
      -1,    -1,    -1,     3,     4,     5,     6,     7,    -1,     9,
1761
      10,    -1,   133,   134,    -1,    -1,    -1,    -1,    -1,    19,
1762
     173,    21,   175,    -1,   138,    25,    26,   180,    -1,    -1,
1763
     183,    31,    32,   147,   148,   149,   150,   151,   152,   153,
1764
     154,   155,    -1,    -1,    -1,    -1,   133,   134,    -1,    -1,
1765
     203,    -1,   173,    -1,   175,    -1,    -1,    -1,    -1,   180,
1766
      -1,   182,   138,   139,   140,   141,   142,   143,   144,   145,
1767
     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1768
      -1,    -1,   203,    -1,    -1,    -1,   173,    -1,   175,    -1,
1769
      -1,    -1,    -1,   180,    -1,    -1,   183,   133,   134,   158,
1770
     159,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
1771
      -1,   170,    -1,    -1,    -1,    -1,   203,   158,   159,   160,
1772
     161,   162,   163,   164,   165,   166,   167,    -1,    -1,    -1,
1773
      -1,    -1,    -1,   133,   134,    -1,    -1,   173,    -1,   175,
1774
      -1,    -1,    -1,    -1,   180,    -1,    -1,    -1,    -1,    -1,
1775
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1776
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,    -1,    -1,
1777
      -1,     0,     1,   173,    -1,   175,    -1,    -1,    -1,     8,
1778
     180,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1779
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1780
      -1,    -1,    -1,   203,    33,    34,    35,    36,    37,    38,
1781
      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1782
      49,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
1783
      59,    60,    -1,    62,    63,    64,    65,    66,    67,    68,
1784
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1785
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1786
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1787
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1788
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1789
     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1790
     129,   130,   131,    -1,     1,    -1,   135,   136,   137,    -1,
1791
      -1,     8,    -1,    10,    11,    12,    13,    14,    15,    16,
1792
      17,    18,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1793
      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    35,    36,
1794
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1795
      47,    48,    49,    50,    51,    52,    53,    54,    55,    -1,
1796
      57,    58,    59,    60,   193,    62,    63,    64,    65,    66,
1797
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1798
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1799
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1800
      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1801
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1802
     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1803
     127,   128,   129,   130,   131,    -1,    -1,    -1,   135,   136,
1804
     137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1805
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1806
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1807
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1808
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1809
      -1,    -1,    -1,    -1,    -1,    -1,   193
1810
};
1811
1812
  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1813
     symbol of state STATE-NUM.  */
1814
static const yytype_int16 yystos[] =
1815
{
1816
       0,     1,     8,    33,    34,    35,    36,    37,    38,    39,
1817
      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1818
      50,    51,    52,    53,    54,    55,    57,    58,    59,    60,
1819
      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1820
      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1821
      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1822
      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1823
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1824
     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1825
     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1826
     135,   136,   137,   193,   212,   213,   214,   215,   216,   217,
1827
     218,   219,   220,   221,   222,   223,   251,   252,   138,   138,
1828
     138,   138,   138,   138,   138,   138,   138,   138,   138,   138,
1829
     138,   138,   138,   138,   138,   138,   138,   138,   138,   138,
1830
     138,   138,   138,   138,   138,   138,   138,   138,   138,     1,
1831
     138,     1,   138,     1,   138,     1,   138,     1,   138,     1,
1832
     138,   138,   138,   138,   138,   138,   138,   138,   138,   138,
1833
     138,   138,   138,   138,   138,   138,   138,   138,   138,   138,
1834
     138,   138,   138,   138,   138,   138,     1,   174,   138,     1,
1835
     181,   138,   138,   138,   138,   138,   138,   138,   138,   138,
1836
     138,   138,   138,   138,   138,   138,   138,   138,   138,   138,
1837
     138,   138,   138,   138,   138,   138,   138,     1,   138,     1,
1838
     138,   138,   138,   138,   138,   138,   138,   138,   138,   138,
1839
       0,     1,   214,    10,   261,    11,   262,    12,   263,    13,
1840
     264,    14,   265,    15,   266,    16,   267,    17,   268,    18,
1841
     269,     1,   174,     1,   171,     1,   171,     1,   171,     1,
1842
     163,   164,   171,   230,     1,   171,     1,   171,     1,   171,
1843
       1,   171,   230,     1,   174,     1,   171,     1,   171,     1,
1844
     171,     1,   171,     1,   230,     1,   230,     1,   230,   174,
1845
     174,     1,   171,     1,   171,     1,   173,     1,   174,     1,
1846
     173,   210,   227,   232,   240,   174,     1,   171,   173,   174,
1847
     176,   177,   184,   195,   224,   226,   227,   231,   233,   234,
1848
     235,   253,   254,   255,   256,     1,   171,     1,   171,     1,
1849
     171,   171,   171,   171,   171,   171,   171,     1,   171,     1,
1850
     171,     1,   171,     1,   171,     1,   171,     1,   171,     1,
1851
     174,     1,   171,     1,   174,     1,   171,     1,   230,     1,
1852
     230,     1,   230,     1,   171,     1,   171,     1,   171,     1,
1853
     171,     1,   171,     1,   171,     1,   171,     1,   171,     1,
1854
     171,     1,   171,     1,   174,     1,   174,     1,   174,   249,
1855
     174,     1,   171,     1,   173,   174,     1,   173,   174,     1,
1856
     171,     1,   173,   174,     1,   171,     1,   171,     1,   171,
1857
       1,   171,     1,   171,     1,   171,     1,   173,     1,   173,
1858
       1,   171,     1,   171,     1,   171,     1,   171,     1,   171,
1859
       1,   171,     1,   173,   224,     1,   171,     1,   171,     1,
1860
     171,     1,   171,     1,   171,     1,   171,   173,   171,   171,
1861
     173,   171,     1,   174,     1,   174,     1,   171,     1,   171,
1862
       1,   173,   250,     1,   171,   171,     1,   182,   184,     1,
1863
     184,     1,   182,   184,     1,   184,     1,   182,     1,   182,
1864
       1,   182,     1,   184,     1,   184,   171,   171,   194,   194,
1865
     241,   194,     1,   255,   194,   164,   192,   225,   194,   197,
1866
     235,   189,   194,   179,   189,   165,   194,   245,   204,   189,
1867
       3,     4,     5,     6,     7,     9,    10,    19,    21,    25,
1868
      26,    31,    32,   133,   134,   173,   175,   180,   203,   276,
1869
     281,   285,   287,   290,   291,   292,   293,   303,   171,   173,
1870
     174,   259,   259,   285,   259,   259,   285,   285,   285,   259,
1871
     259,   173,   166,   224,    61,   186,   187,   188,   189,   196,
1872
     197,   198,   199,   200,   201,   202,   237,   238,     1,   174,
1873
     243,   185,   224,     1,   173,   224,   173,   174,   174,   173,
1874
      23,    28,    29,   246,   247,   182,   171,   173,   181,   181,
1875
     181,   181,   230,   276,     1,   181,     1,   181,     1,   181,
1876
     181,   181,   181,   181,   181,   181,   181,   181,     1,   181,
1877
     138,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1878
     279,   180,     1,   183,   287,     1,   180,   185,   185,   183,
1879
     185,   185,   183,   183,   183,   179,   185,   182,   194,   194,
1880
     173,   224,   236,   171,   171,   173,   238,   243,   194,   194,
1881
     179,   179,   245,   168,   178,   181,   183,   244,   248,   253,
1882
     257,   206,   170,   168,   181,   182,   184,   230,   270,   276,
1883
     277,   278,   281,   282,   290,   303,   170,   170,   179,   230,
1884
     276,     1,   174,   230,     1,   174,     1,   259,   260,   276,
1885
     270,   276,   270,   276,   174,   258,   174,   258,   173,   300,
1886
     300,     1,   170,   174,   179,   230,   276,   298,    30,    30,
1887
     169,   174,   181,   230,   276,   278,   280,   303,   182,   182,
1888
     182,   182,   171,   182,   174,   239,     1,   171,   229,     1,
1889
     229,   194,     1,   171,   195,   228,     1,   228,   174,   230,
1890
     258,   246,   181,   257,   195,   227,   242,   257,     1,   179,
1891
     183,   171,   270,   270,   183,   285,   280,   156,   157,   170,
1892
     179,   139,   140,   141,   142,   143,   144,   145,   146,   271,
1893
     272,   273,   274,   275,    30,   174,   230,   276,   301,   302,
1894
     170,   179,   170,   179,   170,   170,   179,   170,   179,   170,
1895
     170,   179,   170,   170,   170,    27,   170,   174,   170,   174,
1896
     170,   179,   170,     1,   181,   179,   170,   179,   170,   174,
1897
     230,   276,   170,   179,   280,   280,   158,   159,   160,   161,
1898
     162,   163,   164,   165,   166,   167,   285,   285,   285,   285,
1899
     185,   285,   179,   183,   164,   179,     1,   229,   170,   170,
1900
     170,   242,   257,   179,   170,   179,   244,   167,   170,   183,
1901
     185,   270,   270,   174,    30,   257,   230,   174,   276,   170,
1902
     179,   302,   302,   174,   174,    30,   174,   230,   276,   299,
1903
     182,   284,   287,   182,    19,    24,   180,   182,   281,   283,
1904
     288,   289,   291,   292,   293,   303,   276,   174,   258,     1,
1905
     170,   298,   259,   259,   174,   230,   276,   170,   280,   280,
1906
     280,   280,   280,   280,   280,   280,   280,   280,   183,   183,
1907
     183,   183,   182,   183,   239,   171,   171,   179,   170,   179,
1908
     257,   228,    26,   170,   301,   170,   170,   170,   170,   170,
1909
     179,   183,   285,    20,    22,   294,   295,   296,   181,   180,
1910
     183,   286,   288,   180,     1,   180,   170,   170,   170,   170,
1911
     170,   170,   179,   170,   179,   285,   164,   257,   228,   170,
1912
     179,   170,   171,    30,   174,   230,   276,   183,   284,   174,
1913
     230,   183,    23,   296,   297,   270,     1,   183,   288,   283,
1914
     171,   174,   183,   171,   170,   179,   170,   228,   207,   208,
1915
     194,   194,   194,   170,   170,   170,   228,   170,   179,   205,
1916
     171,   286,   286,   286,   283,   170,   179,   174,   171,   205,
1917
      20,   174,   170,   206,   171,   283,   170,   171,   206,   167,
1918
     171,    26,   167,   171,    26,   207,   171,   207
1919
};
1920
1921
  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1922
static const yytype_int16 yyr1[] =
1923
{
1924
       0,   211,   212,   213,   213,   213,   214,   214,   215,   214,
1925
     216,   214,   217,   214,   218,   214,   219,   214,   220,   214,
1926
     221,   214,   222,   214,   223,   214,   214,   224,   224,   224,
1927
     225,   225,   226,   226,   226,   227,   228,   228,   229,   229,
1928
     229,   229,   230,   230,   230,   231,   231,   231,   231,   232,
1929
     232,   232,   232,   232,   232,   233,   233,   233,   233,   233,
1930
     234,   234,   235,   235,   236,   236,   236,   237,   237,   237,
1931
     237,   237,   237,   237,   237,   237,   237,   237,   237,   238,
1932
     238,   239,   239,   240,   241,   240,   240,   242,   242,   243,
1933
     243,   244,   244,   244,   244,   244,   244,   244,   244,   244,
1934
     244,   244,   244,   245,   245,   245,   246,   246,   246,   247,
1935
     247,   248,   248,   248,   249,   249,   250,   250,   250,   250,
1936
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1937
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1938
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1939
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1940
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1941
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1942
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1943
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1944
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1945
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1946
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1947
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1948
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1949
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1950
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1951
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1952
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1953
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1954
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1955
     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1956
     251,   252,   252,   252,   252,   252,   252,   253,   253,   254,
1957
     255,   256,   256,   257,   257,   258,   258,   259,   259,   259,
1958
     260,   260,   261,   261,   261,   262,   262,   263,   263,   263,
1959
     264,   264,   265,   265,   266,   266,   267,   267,   268,   268,
1960
     269,   269,   270,   270,   270,   270,   270,   270,   271,   271,
1961
     272,   272,   272,   272,   273,   273,   274,   274,   275,   275,
1962
     275,   276,   276,   277,   277,   277,   277,   278,   278,   278,
1963
     278,   278,   279,   279,   279,   279,   279,   279,   279,   279,
1964
     279,   279,   280,   280,   280,   280,   280,   280,   280,   280,
1965
     280,   280,   280,   280,   280,   280,   280,   280,   280,   281,
1966
     281,   281,   282,   282,   282,   282,   282,   283,   283,   283,
1967
     284,   284,   284,   285,   285,   285,   286,   286,   286,   287,
1968
     287,   287,   287,   287,   287,   287,   287,   288,   288,   288,
1969
     288,   288,   288,   288,   288,   288,   289,   289,   290,   290,
1970
     291,   292,   293,   294,   294,   295,   295,   296,   296,   296,
1971
     296,   297,   297,   298,   298,   298,   298,   298,   298,   298,
1972
     298,   298,   298,   298,   299,   299,   299,   299,   299,   299,
1973
     299,   299,   300,   300,   300,   300,   301,   301,   301,   301,
1974
     302,   302,   303,   303,   303,   303,   303,   303,   303,   303,
1975
     303,   303,   303,   303,   303,   303,   303,   303,   303,   303,
1976
     303,   303,   303,   303,   303,   303,   303,   303,   303,   303,
1977
     303,   303,   303,   303,   303,   303,   303,   303,   303,   303,
1978
     303,   303,   303
1979
};
1980
1981
  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
1982
static const yytype_int8 yyr2[] =
1983
{
1984
       0,     2,     1,     2,     1,     2,     1,     1,     0,     2,
1985
       0,     2,     0,     2,     0,     2,     0,     2,     0,     2,
1986
       0,     2,     0,     2,     0,     2,     1,     1,     1,     1,
1987
       1,     1,     1,     3,     3,     1,     1,     1,     5,     3,
1988
       3,     1,     1,     2,     2,     3,     5,     5,     2,     3,
1989
       3,     5,     5,     5,     5,     1,     3,     5,     5,     1,
1990
       1,     2,     1,     2,     1,     3,     3,     1,     1,     1,
1991
       1,     1,     1,     1,     2,     2,     2,     2,     2,     1,
1992
       2,     1,     3,     1,     0,     3,     6,     1,     1,     1,
1993
       2,     9,    10,     7,     8,     5,     6,     5,     6,     3,
1994
       4,     1,     2,     4,     3,     0,     1,     1,     1,     3,
1995
       1,     3,     1,     2,     3,     1,    18,    17,    10,     9,
1996
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
1997
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
1998
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
1999
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2000
       2,     3,     2,     3,     2,     3,     2,     3,     2,     3,
2001
       2,     3,     3,     3,     3,     3,     5,     3,     3,     5,
2002
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2003
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2004
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2005
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2006
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2007
       3,     3,     3,     3,     5,     3,     3,     3,     3,     3,
2008
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2009
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2010
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2011
       3,     3,     3,     3,     3,     3,     3,     3,     5,     5,
2012
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2013
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2014
       3,     3,     2,     3,     2,     6,     4,     3,     3,     3,
2015
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2016
       2,     2,     2,     8,     8,     8,     2,     1,     1,     1,
2017
       1,     1,     3,     1,     1,     2,     2,     1,     1,     1,
2018
       1,     1,     4,     7,     2,     7,     2,     4,     7,     2,
2019
       7,     2,     4,     2,     4,     2,     4,     2,     9,     2,
2020
       7,     2,     3,     3,     2,     3,     3,     1,     1,     1,
2021
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2022
       1,     1,     1,     1,     1,     1,     1,     3,     3,     3,
2023
       3,     3,     1,     1,     1,     1,     1,     1,     1,     1,
2024
       1,     1,     1,     1,     1,     1,     1,     3,     3,     3,
2025
       3,     3,     3,     3,     3,     3,     3,     2,     3,     3,
2026
       3,     3,     1,     1,     1,     3,     2,     1,     3,     2,
2027
       1,     3,     2,     2,     1,     2,     2,     1,     2,     2,
2028
       1,     1,     1,     1,     2,     1,     2,     2,     2,     1,
2029
       1,     1,     1,     2,     1,     2,     5,     7,     5,     7,
2030
       5,     7,     7,     2,     1,     2,     1,     4,     3,     4,
2031
       3,     3,     2,     1,     3,     1,     2,     2,     1,     2,
2032
       3,     1,     2,     3,     1,     1,     1,     1,     3,     3,
2033
       3,     3,     3,     4,     4,     2,     1,     1,     1,     1,
2034
       1,     3,     6,     4,     1,     3,     1,     3,     2,     4,
2035
       6,     2,     4,     6,     3,     5,     1,     4,     6,     2,
2036
       4,     6,     2,     4,     4,     6,     2,     4,     3,     4,
2037
       4,     2,     4,     4,     4,     4,     6,     6,     6,     8,
2038
       8,     6,     4
2039
};
2040
2041
2042
#define yyerrok         (yyerrstatus = 0)
2043
#define yyclearin       (yychar = YYEMPTY)
2044
0
#define YYEMPTY         (-2)
2045
0
#define YYEOF           0
2046
2047
0
#define YYACCEPT        goto yyacceptlab
2048
0
#define YYABORT         goto yyabortlab
2049
0
#define YYERROR         goto yyerrorlab
2050
2051
2052
#define YYRECOVERING()  (!!yyerrstatus)
2053
2054
#define YYBACKUP(Token, Value)                                    \
2055
  do                                                              \
2056
    if (yychar == YYEMPTY)                                        \
2057
      {                                                           \
2058
        yychar = (Token);                                         \
2059
        yylval = (Value);                                         \
2060
        YYPOPSTACK (yylen);                                       \
2061
        yystate = *yyssp;                                         \
2062
        goto yybackup;                                            \
2063
      }                                                           \
2064
    else                                                          \
2065
      {                                                           \
2066
        yyerror (YY_("syntax error: cannot back up")); \
2067
        YYERROR;                                                  \
2068
      }                                                           \
2069
  while (0)
2070
2071
/* Error token number */
2072
0
#define YYTERROR        1
2073
#define YYERRCODE       256
2074
2075
2076
2077
/* Enable debugging if requested.  */
2078
#if YYDEBUG
2079
2080
# ifndef YYFPRINTF
2081
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2082
#  define YYFPRINTF fprintf
2083
# endif
2084
2085
# define YYDPRINTF(Args)                        \
2086
do {                                            \
2087
  if (yydebug)                                  \
2088
    YYFPRINTF Args;                             \
2089
} while (0)
2090
2091
/* This macro is provided for backward compatibility. */
2092
#ifndef YY_LOCATION_PRINT
2093
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2094
#endif
2095
2096
2097
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2098
do {                                                                      \
2099
  if (yydebug)                                                            \
2100
    {                                                                     \
2101
      YYFPRINTF (stderr, "%s ", Title);                                   \
2102
      yy_symbol_print (stderr,                                            \
2103
                  Type, Value); \
2104
      YYFPRINTF (stderr, "\n");                                           \
2105
    }                                                                     \
2106
} while (0)
2107
2108
2109
/*-----------------------------------.
2110
| Print this symbol's value on YYO.  |
2111
`-----------------------------------*/
2112
2113
static void
2114
yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
2115
{
2116
  FILE *yyoutput = yyo;
2117
  YYUSE (yyoutput);
2118
  if (!yyvaluep)
2119
    return;
2120
# ifdef YYPRINT
2121
  if (yytype < YYNTOKENS)
2122
    YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
2123
# endif
2124
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2125
  YYUSE (yytype);
2126
  YY_IGNORE_MAYBE_UNINITIALIZED_END
2127
}
2128
2129
2130
/*---------------------------.
2131
| Print this symbol on YYO.  |
2132
`---------------------------*/
2133
2134
static void
2135
yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
2136
{
2137
  YYFPRINTF (yyo, "%s %s (",
2138
             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2139
2140
  yy_symbol_value_print (yyo, yytype, yyvaluep);
2141
  YYFPRINTF (yyo, ")");
2142
}
2143
2144
/*------------------------------------------------------------------.
2145
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
2146
| TOP (included).                                                   |
2147
`------------------------------------------------------------------*/
2148
2149
static void
2150
yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
2151
{
2152
  YYFPRINTF (stderr, "Stack now");
2153
  for (; yybottom <= yytop; yybottom++)
2154
    {
2155
      int yybot = *yybottom;
2156
      YYFPRINTF (stderr, " %d", yybot);
2157
    }
2158
  YYFPRINTF (stderr, "\n");
2159
}
2160
2161
# define YY_STACK_PRINT(Bottom, Top)                            \
2162
do {                                                            \
2163
  if (yydebug)                                                  \
2164
    yy_stack_print ((Bottom), (Top));                           \
2165
} while (0)
2166
2167
2168
/*------------------------------------------------.
2169
| Report that the YYRULE is going to be reduced.  |
2170
`------------------------------------------------*/
2171
2172
static void
2173
yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule)
2174
{
2175
  int yylno = yyrline[yyrule];
2176
  int yynrhs = yyr2[yyrule];
2177
  int yyi;
2178
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
2179
             yyrule - 1, yylno);
2180
  /* The symbols being reduced.  */
2181
  for (yyi = 0; yyi < yynrhs; yyi++)
2182
    {
2183
      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2184
      yy_symbol_print (stderr,
2185
                       yystos[+yyssp[yyi + 1 - yynrhs]],
2186
                       &yyvsp[(yyi + 1) - (yynrhs)]
2187
                                              );
2188
      YYFPRINTF (stderr, "\n");
2189
    }
2190
}
2191
2192
# define YY_REDUCE_PRINT(Rule)          \
2193
do {                                    \
2194
  if (yydebug)                          \
2195
    yy_reduce_print (yyssp, yyvsp, Rule); \
2196
} while (0)
2197
2198
/* Nonzero means print parse trace.  It is left uninitialized so that
2199
   multiple parsers can coexist.  */
2200
int yydebug;
2201
#else /* !YYDEBUG */
2202
# define YYDPRINTF(Args)
2203
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2204
# define YY_STACK_PRINT(Bottom, Top)
2205
# define YY_REDUCE_PRINT(Rule)
2206
#endif /* !YYDEBUG */
2207
2208
2209
/* YYINITDEPTH -- initial size of the parser's stacks.  */
2210
#ifndef YYINITDEPTH
2211
0
# define YYINITDEPTH 200
2212
#endif
2213
2214
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2215
   if the built-in stack extension method is used).
2216
2217
   Do not make this value too large; the results are undefined if
2218
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2219
   evaluated with infinite-precision integer arithmetic.  */
2220
2221
#ifndef YYMAXDEPTH
2222
0
# define YYMAXDEPTH 10000
2223
#endif
2224
2225
2226
#if YYERROR_VERBOSE
2227
2228
# ifndef yystrlen
2229
#  if defined __GLIBC__ && defined _STRING_H
2230
#   define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
2231
#  else
2232
/* Return the length of YYSTR.  */
2233
static YYPTRDIFF_T
2234
yystrlen (const char *yystr)
2235
{
2236
  YYPTRDIFF_T yylen;
2237
  for (yylen = 0; yystr[yylen]; yylen++)
2238
    continue;
2239
  return yylen;
2240
}
2241
#  endif
2242
# endif
2243
2244
# ifndef yystpcpy
2245
#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2246
#   define yystpcpy stpcpy
2247
#  else
2248
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2249
   YYDEST.  */
2250
static char *
2251
yystpcpy (char *yydest, const char *yysrc)
2252
{
2253
  char *yyd = yydest;
2254
  const char *yys = yysrc;
2255
2256
  while ((*yyd++ = *yys++) != '\0')
2257
    continue;
2258
2259
  return yyd - 1;
2260
}
2261
#  endif
2262
# endif
2263
2264
# ifndef yytnamerr
2265
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2266
   quotes and backslashes, so that it's suitable for yyerror.  The
2267
   heuristic is that double-quoting is unnecessary unless the string
2268
   contains an apostrophe, a comma, or backslash (other than
2269
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
2270
   null, do not copy; instead, return the length of what the result
2271
   would have been.  */
2272
static YYPTRDIFF_T
2273
yytnamerr (char *yyres, const char *yystr)
2274
{
2275
  if (*yystr == '"')
2276
    {
2277
      YYPTRDIFF_T yyn = 0;
2278
      char const *yyp = yystr;
2279
2280
      for (;;)
2281
        switch (*++yyp)
2282
          {
2283
          case '\'':
2284
          case ',':
2285
            goto do_not_strip_quotes;
2286
2287
          case '\\':
2288
            if (*++yyp != '\\')
2289
              goto do_not_strip_quotes;
2290
            else
2291
              goto append;
2292
2293
          append:
2294
          default:
2295
            if (yyres)
2296
              yyres[yyn] = *yyp;
2297
            yyn++;
2298
            break;
2299
2300
          case '"':
2301
            if (yyres)
2302
              yyres[yyn] = '\0';
2303
            return yyn;
2304
          }
2305
    do_not_strip_quotes: ;
2306
    }
2307
2308
  if (yyres)
2309
    return yystpcpy (yyres, yystr) - yyres;
2310
  else
2311
    return yystrlen (yystr);
2312
}
2313
# endif
2314
2315
/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2316
   about the unexpected token YYTOKEN for the state stack whose top is
2317
   YYSSP.
2318
2319
   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
2320
   not large enough to hold the message.  In that case, also set
2321
   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
2322
   required number of bytes is too large to store.  */
2323
static int
2324
yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
2325
                yy_state_t *yyssp, int yytoken)
2326
{
2327
  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2328
  /* Internationalized format string. */
2329
  const char *yyformat = YY_NULLPTR;
2330
  /* Arguments of yyformat: reported tokens (one for the "unexpected",
2331
     one per "expected"). */
2332
  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2333
  /* Actual size of YYARG. */
2334
  int yycount = 0;
2335
  /* Cumulated lengths of YYARG.  */
2336
  YYPTRDIFF_T yysize = 0;
2337
2338
  /* There are many possibilities here to consider:
2339
     - If this state is a consistent state with a default action, then
2340
       the only way this function was invoked is if the default action
2341
       is an error action.  In that case, don't check for expected
2342
       tokens because there are none.
2343
     - The only way there can be no lookahead present (in yychar) is if
2344
       this state is a consistent state with a default action.  Thus,
2345
       detecting the absence of a lookahead is sufficient to determine
2346
       that there is no unexpected or expected token to report.  In that
2347
       case, just report a simple "syntax error".
2348
     - Don't assume there isn't a lookahead just because this state is a
2349
       consistent state with a default action.  There might have been a
2350
       previous inconsistent state, consistent state with a non-default
2351
       action, or user semantic action that manipulated yychar.
2352
     - Of course, the expected token list depends on states to have
2353
       correct lookahead information, and it depends on the parser not
2354
       to perform extra reductions after fetching a lookahead from the
2355
       scanner and before detecting a syntax error.  Thus, state merging
2356
       (from LALR or IELR) and default reductions corrupt the expected
2357
       token list.  However, the list is correct for canonical LR with
2358
       one exception: it will still contain any token that will not be
2359
       accepted due to an error action in a later state.
2360
  */
2361
  if (yytoken != YYEMPTY)
2362
    {
2363
      int yyn = yypact[+*yyssp];
2364
      YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2365
      yysize = yysize0;
2366
      yyarg[yycount++] = yytname[yytoken];
2367
      if (!yypact_value_is_default (yyn))
2368
        {
2369
          /* Start YYX at -YYN if negative to avoid negative indexes in
2370
             YYCHECK.  In other words, skip the first -YYN actions for
2371
             this state because they are default actions.  */
2372
          int yyxbegin = yyn < 0 ? -yyn : 0;
2373
          /* Stay within bounds of both yycheck and yytname.  */
2374
          int yychecklim = YYLAST - yyn + 1;
2375
          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2376
          int yyx;
2377
2378
          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2379
            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2380
                && !yytable_value_is_error (yytable[yyx + yyn]))
2381
              {
2382
                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2383
                  {
2384
                    yycount = 1;
2385
                    yysize = yysize0;
2386
                    break;
2387
                  }
2388
                yyarg[yycount++] = yytname[yyx];
2389
                {
2390
                  YYPTRDIFF_T yysize1
2391
                    = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2392
                  if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2393
                    yysize = yysize1;
2394
                  else
2395
                    return 2;
2396
                }
2397
              }
2398
        }
2399
    }
2400
2401
  switch (yycount)
2402
    {
2403
# define YYCASE_(N, S)                      \
2404
      case N:                               \
2405
        yyformat = S;                       \
2406
      break
2407
    default: /* Avoid compiler warnings. */
2408
      YYCASE_(0, YY_("syntax error"));
2409
      YYCASE_(1, YY_("syntax error, unexpected %s"));
2410
      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2411
      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2412
      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2413
      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2414
# undef YYCASE_
2415
    }
2416
2417
  {
2418
    /* Don't count the "%s"s in the final size, but reserve room for
2419
       the terminator.  */
2420
    YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1;
2421
    if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2422
      yysize = yysize1;
2423
    else
2424
      return 2;
2425
  }
2426
2427
  if (*yymsg_alloc < yysize)
2428
    {
2429
      *yymsg_alloc = 2 * yysize;
2430
      if (! (yysize <= *yymsg_alloc
2431
             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2432
        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2433
      return 1;
2434
    }
2435
2436
  /* Avoid sprintf, as that infringes on the user's name space.
2437
     Don't have undefined behavior even if the translation
2438
     produced a string with the wrong number of "%s"s.  */
2439
  {
2440
    char *yyp = *yymsg;
2441
    int yyi = 0;
2442
    while ((*yyp = *yyformat) != '\0')
2443
      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2444
        {
2445
          yyp += yytnamerr (yyp, yyarg[yyi++]);
2446
          yyformat += 2;
2447
        }
2448
      else
2449
        {
2450
          ++yyp;
2451
          ++yyformat;
2452
        }
2453
  }
2454
  return 0;
2455
}
2456
#endif /* YYERROR_VERBOSE */
2457
2458
/*-----------------------------------------------.
2459
| Release the memory associated to this symbol.  |
2460
`-----------------------------------------------*/
2461
2462
static void
2463
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2464
0
{
2465
0
  YYUSE (yyvaluep);
2466
0
  if (!yymsg)
2467
0
    yymsg = "Deleting";
2468
0
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2469
2470
0
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2471
0
  YYUSE (yytype);
2472
0
  YY_IGNORE_MAYBE_UNINITIALIZED_END
2473
0
}
2474
2475
2476
2477
2478
/* The lookahead symbol.  */
2479
int yychar;
2480
2481
/* The semantic value of the lookahead symbol.  */
2482
YYSTYPE yylval;
2483
/* Number of syntax errors so far.  */
2484
int yynerrs;
2485
2486
2487
/*----------.
2488
| yyparse.  |
2489
`----------*/
2490
2491
int
2492
yyparse (void)
2493
0
{
2494
0
    yy_state_fast_t yystate;
2495
    /* Number of tokens to shift before error messages enabled.  */
2496
0
    int yyerrstatus;
2497
2498
    /* The stacks and their tools:
2499
       'yyss': related to states.
2500
       'yyvs': related to semantic values.
2501
2502
       Refer to the stacks through separate pointers, to allow yyoverflow
2503
       to reallocate them elsewhere.  */
2504
2505
    /* The state stack.  */
2506
0
    yy_state_t yyssa[YYINITDEPTH];
2507
0
    yy_state_t *yyss;
2508
0
    yy_state_t *yyssp;
2509
2510
    /* The semantic value stack.  */
2511
0
    YYSTYPE yyvsa[YYINITDEPTH];
2512
0
    YYSTYPE *yyvs;
2513
0
    YYSTYPE *yyvsp;
2514
2515
0
    YYPTRDIFF_T yystacksize;
2516
2517
0
  int yyn;
2518
0
  int yyresult;
2519
  /* Lookahead token as an internal (translated) token number.  */
2520
0
  int yytoken = 0;
2521
  /* The variables used to return semantic value and location from the
2522
     action routines.  */
2523
0
  YYSTYPE yyval;
2524
2525
#if YYERROR_VERBOSE
2526
  /* Buffer for error messages, and its allocated size.  */
2527
  char yymsgbuf[128];
2528
  char *yymsg = yymsgbuf;
2529
  YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
2530
#endif
2531
2532
0
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
2533
2534
  /* The number of symbols on the RHS of the reduced rule.
2535
     Keep to zero when no symbol should be popped.  */
2536
0
  int yylen = 0;
2537
2538
0
  yyssp = yyss = yyssa;
2539
0
  yyvsp = yyvs = yyvsa;
2540
0
  yystacksize = YYINITDEPTH;
2541
2542
0
  YYDPRINTF ((stderr, "Starting parse\n"));
2543
2544
0
  yystate = 0;
2545
0
  yyerrstatus = 0;
2546
0
  yynerrs = 0;
2547
0
  yychar = YYEMPTY; /* Cause a token to be read.  */
2548
0
  goto yysetstate;
2549
2550
2551
/*------------------------------------------------------------.
2552
| yynewstate -- push a new state, which is found in yystate.  |
2553
`------------------------------------------------------------*/
2554
0
yynewstate:
2555
  /* In all cases, when you get here, the value and location stacks
2556
     have just been pushed.  So pushing a state here evens the stacks.  */
2557
0
  yyssp++;
2558
2559
2560
/*--------------------------------------------------------------------.
2561
| yysetstate -- set current state (the top of the stack) to yystate.  |
2562
`--------------------------------------------------------------------*/
2563
0
yysetstate:
2564
0
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2565
0
  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
2566
0
  YY_IGNORE_USELESS_CAST_BEGIN
2567
0
  *yyssp = YY_CAST (yy_state_t, yystate);
2568
0
  YY_IGNORE_USELESS_CAST_END
2569
2570
0
  if (yyss + yystacksize - 1 <= yyssp)
2571
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
2572
    goto yyexhaustedlab;
2573
#else
2574
0
    {
2575
      /* Get the current used size of the three stacks, in elements.  */
2576
0
      YYPTRDIFF_T yysize = yyssp - yyss + 1;
2577
2578
# if defined yyoverflow
2579
      {
2580
        /* Give user a chance to reallocate the stack.  Use copies of
2581
           these so that the &'s don't force the real ones into
2582
           memory.  */
2583
        yy_state_t *yyss1 = yyss;
2584
        YYSTYPE *yyvs1 = yyvs;
2585
2586
        /* Each stack pointer address is followed by the size of the
2587
           data in use in that stack, in bytes.  This used to be a
2588
           conditional around just the two extra args, but that might
2589
           be undefined if yyoverflow is a macro.  */
2590
        yyoverflow (YY_("memory exhausted"),
2591
                    &yyss1, yysize * YYSIZEOF (*yyssp),
2592
                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
2593
                    &yystacksize);
2594
        yyss = yyss1;
2595
        yyvs = yyvs1;
2596
      }
2597
# else /* defined YYSTACK_RELOCATE */
2598
      /* Extend the stack our own way.  */
2599
0
      if (YYMAXDEPTH <= yystacksize)
2600
0
        goto yyexhaustedlab;
2601
0
      yystacksize *= 2;
2602
0
      if (YYMAXDEPTH < yystacksize)
2603
0
        yystacksize = YYMAXDEPTH;
2604
2605
0
      {
2606
0
        yy_state_t *yyss1 = yyss;
2607
0
        union yyalloc *yyptr =
2608
0
          YY_CAST (union yyalloc *,
2609
0
                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
2610
0
        if (! yyptr)
2611
0
          goto yyexhaustedlab;
2612
0
        YYSTACK_RELOCATE (yyss_alloc, yyss);
2613
0
        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2614
0
# undef YYSTACK_RELOCATE
2615
0
        if (yyss1 != yyssa)
2616
0
          YYSTACK_FREE (yyss1);
2617
0
      }
2618
0
# endif
2619
2620
0
      yyssp = yyss + yysize - 1;
2621
0
      yyvsp = yyvs + yysize - 1;
2622
2623
0
      YY_IGNORE_USELESS_CAST_BEGIN
2624
0
      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
2625
0
                  YY_CAST (long, yystacksize)));
2626
0
      YY_IGNORE_USELESS_CAST_END
2627
2628
0
      if (yyss + yystacksize - 1 <= yyssp)
2629
0
        YYABORT;
2630
0
    }
2631
0
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
2632
2633
0
  if (yystate == YYFINAL)
2634
0
    YYACCEPT;
2635
2636
0
  goto yybackup;
2637
2638
2639
/*-----------.
2640
| yybackup.  |
2641
`-----------*/
2642
0
yybackup:
2643
  /* Do appropriate processing given the current state.  Read a
2644
     lookahead token if we need one and don't already have one.  */
2645
2646
  /* First try to decide what to do without reference to lookahead token.  */
2647
0
  yyn = yypact[yystate];
2648
0
  if (yypact_value_is_default (yyn))
2649
0
    goto yydefault;
2650
2651
  /* Not known => get a lookahead token if don't already have one.  */
2652
2653
  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
2654
0
  if (yychar == YYEMPTY)
2655
0
    {
2656
0
      YYDPRINTF ((stderr, "Reading a token: "));
2657
0
      yychar = yylex ();
2658
0
    }
2659
2660
0
  if (yychar <= YYEOF)
2661
0
    {
2662
0
      yychar = yytoken = YYEOF;
2663
0
      YYDPRINTF ((stderr, "Now at end of input.\n"));
2664
0
    }
2665
0
  else
2666
0
    {
2667
0
      yytoken = YYTRANSLATE (yychar);
2668
0
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2669
0
    }
2670
2671
  /* If the proper action on seeing token YYTOKEN is to reduce or to
2672
     detect an error, take that action.  */
2673
0
  yyn += yytoken;
2674
0
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2675
0
    goto yydefault;
2676
0
  yyn = yytable[yyn];
2677
0
  if (yyn <= 0)
2678
0
    {
2679
0
      if (yytable_value_is_error (yyn))
2680
0
        goto yyerrlab;
2681
0
      yyn = -yyn;
2682
0
      goto yyreduce;
2683
0
    }
2684
2685
  /* Count tokens shifted since error; after three, turn off error
2686
     status.  */
2687
0
  if (yyerrstatus)
2688
0
    yyerrstatus--;
2689
2690
  /* Shift the lookahead token.  */
2691
0
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2692
0
  yystate = yyn;
2693
0
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2694
0
  *++yyvsp = yylval;
2695
0
  YY_IGNORE_MAYBE_UNINITIALIZED_END
2696
2697
  /* Discard the shifted token.  */
2698
0
  yychar = YYEMPTY;
2699
0
  goto yynewstate;
2700
2701
2702
/*-----------------------------------------------------------.
2703
| yydefault -- do the default action for the current state.  |
2704
`-----------------------------------------------------------*/
2705
0
yydefault:
2706
0
  yyn = yydefact[yystate];
2707
0
  if (yyn == 0)
2708
0
    goto yyerrlab;
2709
0
  goto yyreduce;
2710
2711
2712
/*-----------------------------.
2713
| yyreduce -- do a reduction.  |
2714
`-----------------------------*/
2715
0
yyreduce:
2716
  /* yyn is the number of a rule to reduce with.  */
2717
0
  yylen = yyr2[yyn];
2718
2719
  /* If YYLEN is nonzero, implement the default value of the action:
2720
     '$$ = $1'.
2721
2722
     Otherwise, the following line sets YYVAL to garbage.
2723
     This behavior is undocumented and Bison
2724
     users should not rely upon it.  Assigning to YYVAL
2725
     unconditionally makes the parser a bit smaller, and it avoids a
2726
     GCC warning that YYVAL may be used uninitialized.  */
2727
0
  yyval = yyvsp[1-yylen];
2728
2729
2730
0
  YY_REDUCE_PRINT (yyn);
2731
0
  switch (yyn)
2732
0
    {
2733
0
  case 3:
2734
0
#line 537 "cfg.y"
2735
0
                                     {}
2736
0
#line 2737 "cfg.tab.c"
2737
0
    break;
2738
2739
0
  case 4:
2740
0
#line 538 "cfg.y"
2741
0
                            {}
2742
0
#line 2743 "cfg.tab.c"
2743
0
    break;
2744
2745
0
  case 5:
2746
0
#line 539 "cfg.y"
2747
0
                                   { yyerror(""); YYABORT;}
2748
0
#line 2749 "cfg.tab.c"
2749
0
    break;
2750
2751
0
  case 8:
2752
0
#line 544 "cfg.y"
2753
0
                  {rt=REQUEST_ROUTE;}
2754
0
#line 2755 "cfg.tab.c"
2755
0
    break;
2756
2757
0
  case 10:
2758
0
#line 545 "cfg.y"
2759
0
                  {rt=FAILURE_ROUTE;}
2760
0
#line 2761 "cfg.tab.c"
2761
0
    break;
2762
2763
0
  case 12:
2764
0
#line 546 "cfg.y"
2765
0
                  {rt=ONREPLY_ROUTE;}
2766
0
#line 2767 "cfg.tab.c"
2767
0
    break;
2768
2769
0
  case 14:
2770
0
#line 547 "cfg.y"
2771
0
                  {rt=BRANCH_ROUTE;}
2772
0
#line 2773 "cfg.tab.c"
2773
0
    break;
2774
2775
0
  case 16:
2776
0
#line 548 "cfg.y"
2777
0
                  {rt=ERROR_ROUTE;}
2778
0
#line 2779 "cfg.tab.c"
2779
0
    break;
2780
2781
0
  case 18:
2782
0
#line 549 "cfg.y"
2783
0
                  {rt=LOCAL_ROUTE;}
2784
0
#line 2785 "cfg.tab.c"
2785
0
    break;
2786
2787
0
  case 20:
2788
0
#line 550 "cfg.y"
2789
0
                  {rt=STARTUP_ROUTE;}
2790
0
#line 2791 "cfg.tab.c"
2791
0
    break;
2792
2793
0
  case 22:
2794
0
#line 551 "cfg.y"
2795
0
                  {rt=TIMER_ROUTE;}
2796
0
#line 2797 "cfg.tab.c"
2797
0
    break;
2798
2799
0
  case 24:
2800
0
#line 552 "cfg.y"
2801
0
                  {rt=EVENT_ROUTE;}
2802
0
#line 2803 "cfg.tab.c"
2803
0
    break;
2804
2805
0
  case 27:
2806
0
#line 557 "cfg.y"
2807
0
                                        { IFOR();
2808
0
              tmp=ip_addr2a((yyvsp[0].ipaddr));
2809
0
              if(tmp==0){
2810
0
                LM_CRIT("cfg. parser: bad ip address.\n");
2811
0
                (yyval.strval)=0;
2812
0
              }else{
2813
0
                (yyval.strval)=pkg_malloc(strlen(tmp)+1);
2814
0
                if ((yyval.strval)==0){
2815
0
                  LM_CRIT("cfg. parser: out of memory.\n");
2816
0
                  YYABORT;
2817
0
                }else{
2818
0
                  memcpy((yyval.strval), tmp, strlen(tmp)+1);
2819
0
                }
2820
0
              }
2821
0
            }
2822
0
#line 2823 "cfg.tab.c"
2823
0
    break;
2824
2825
0
  case 28:
2826
0
#line 572 "cfg.y"
2827
0
                                        { IFOR();
2828
0
              (yyval.strval)=pkg_malloc(strlen((yyvsp[0].strval))+1);
2829
0
              if ((yyval.strval)==0){
2830
0
                  LM_CRIT("cfg. parser: out of memory.\n");
2831
0
                  YYABORT;
2832
0
              }else{
2833
0
                  memcpy((yyval.strval), (yyvsp[0].strval), strlen((yyvsp[0].strval))+1);
2834
0
              }
2835
0
            }
2836
0
#line 2837 "cfg.tab.c"
2837
0
    break;
2838
2839
0
  case 29:
2840
0
#line 581 "cfg.y"
2841
0
                                        { IFOR();
2842
0
              if ((yyvsp[0].strval)==0) {
2843
0
                (yyval.strval) = 0;
2844
0
              } else {
2845
0
                (yyval.strval)=pkg_malloc(strlen((yyvsp[0].strval))+1);
2846
0
                if ((yyval.strval)==0){
2847
0
                  LM_CRIT("cfg. parser: out of memory.\n");
2848
0
                  YYABORT;
2849
0
                }else{
2850
0
                  memcpy((yyval.strval), (yyvsp[0].strval), strlen((yyvsp[0].strval))+1);
2851
0
                }
2852
0
              }
2853
0
            }
2854
0
#line 2855 "cfg.tab.c"
2855
0
    break;
2856
2857
0
  case 30:
2858
0
#line 596 "cfg.y"
2859
0
                    {(yyval.strval)=".";}
2860
0
#line 2861 "cfg.tab.c"
2861
0
    break;
2862
2863
0
  case 31:
2864
0
#line 597 "cfg.y"
2865
0
                              {(yyval.strval)="-"; }
2866
0
#line 2867 "cfg.tab.c"
2867
0
    break;
2868
2869
0
  case 32:
2870
0
#line 600 "cfg.y"
2871
0
                                        { (yyval.strval)=(yyvsp[0].strval); }
2872
0
#line 2873 "cfg.tab.c"
2873
0
    break;
2874
2875
0
  case 33:
2876
0
#line 601 "cfg.y"
2877
0
                                { IFOR();
2878
0
            (yyval.strval)=(char*)pkg_malloc(strlen((yyvsp[-2].strval))+1+strlen((yyvsp[0].strval))+1);
2879
0
            if ((yyval.strval)==0){
2880
0
              LM_CRIT("cfg. parser: memory allocation"
2881
0
                    " failure while parsing host\n");
2882
0
              YYABORT;
2883
0
            }else{
2884
0
              memcpy((yyval.strval), (yyvsp[-2].strval), strlen((yyvsp[-2].strval)));
2885
0
              (yyval.strval)[strlen((yyvsp[-2].strval))]=*(yyvsp[-1].strval);
2886
0
              memcpy((yyval.strval)+strlen((yyvsp[-2].strval))+1, (yyvsp[0].strval), strlen((yyvsp[0].strval)));
2887
0
              (yyval.strval)[strlen((yyvsp[-2].strval))+1+strlen((yyvsp[0].strval))]=0;
2888
0
            }
2889
0
            pkg_free((yyvsp[-2].strval)); pkg_free((yyvsp[0].strval));
2890
0
          }
2891
0
#line 2892 "cfg.tab.c"
2892
0
    break;
2893
2894
0
  case 34:
2895
0
#line 615 "cfg.y"
2896
0
                         { (yyval.strval)=0; pkg_free((yyvsp[-2].strval));
2897
0
          yyerror("invalid hostname (use quotes if hostname "
2898
0
            "has config keywords)"); }
2899
0
#line 2900 "cfg.tab.c"
2900
0
    break;
2901
2902
0
  case 35:
2903
0
#line 620 "cfg.y"
2904
0
           { IFOR();
2905
0
    if (parse_proto((unsigned char *)(yyvsp[0].strval), strlen((yyvsp[0].strval)), &i_tmp) < 0) {
2906
0
      yyerrorf("cannot handle protocol <%s>\n", (yyvsp[0].strval));
2907
0
      YYABORT;
2908
0
    }
2909
0
    pkg_free((yyvsp[0].strval));
2910
0
    (yyval.intval) = i_tmp;
2911
0
   }
2912
0
#line 2913 "cfg.tab.c"
2913
0
    break;
2914
2915
0
  case 36:
2916
0
#line 630 "cfg.y"
2917
0
                        { (yyval.intval)=(yyvsp[0].intval); }
2918
0
#line 2919 "cfg.tab.c"
2919
0
    break;
2920
2921
0
  case 37:
2922
0
#line 631 "cfg.y"
2923
0
                                { (yyval.intval)=0; }
2924
0
#line 2925 "cfg.tab.c"
2925
0
    break;
2926
2927
0
  case 38:
2928
0
#line 634 "cfg.y"
2929
0
                                               { IFOR();
2930
0
        if ((yyvsp[-2].intval) > (yyvsp[0].intval)) {
2931
0
          yyerrorf("invalid port range (%d > %d)\n", (int)(yyvsp[-2].intval), (int)(yyvsp[0].intval));
2932
0
          YYABORT;
2933
0
        }
2934
0
        pr_tmp = mk_port_range((yyvsp[-2].intval), (yyvsp[0].intval));
2935
0
        if (!pr_tmp) {
2936
0
          yyerror("cannot allocate new portrange\n");
2937
0
          YYABORT;
2938
0
        }
2939
0
        pr_tmp->next = (yyvsp[-4].portrange);
2940
0
        (yyval.portrange) = pr_tmp;
2941
0
      }
2942
0
#line 2943 "cfg.tab.c"
2943
0
    break;
2944
2945
0
  case 39:
2946
0
#line 647 "cfg.y"
2947
0
                                          { IFOR();
2948
0
        pr_tmp = mk_port_range((yyvsp[0].intval), (yyvsp[0].intval));
2949
0
        if (!pr_tmp) {
2950
0
          yyerror("cannot allocate new portrange\n");
2951
0
          YYABORT;
2952
0
        }
2953
0
        pr_tmp->next = (yyvsp[-2].portrange);
2954
0
        (yyval.portrange) = pr_tmp;
2955
0
      }
2956
0
#line 2957 "cfg.tab.c"
2957
0
    break;
2958
2959
0
  case 40:
2960
0
#line 656 "cfg.y"
2961
0
                                       { IFOR();
2962
0
        if ((yyvsp[-2].intval) > (yyvsp[0].intval)) {
2963
0
          yyerrorf("invalid port range (%d > %d)\n", (int)(yyvsp[-2].intval), (int)(yyvsp[0].intval));
2964
0
          YYABORT;
2965
0
        }
2966
0
        (yyval.portrange)=mk_port_range((yyvsp[-2].intval), (yyvsp[0].intval));
2967
0
      }
2968
0
#line 2969 "cfg.tab.c"
2969
0
    break;
2970
2971
0
  case 41:
2972
0
#line 663 "cfg.y"
2973
0
                          { IFOR(); (yyval.portrange)=mk_port_range((yyvsp[0].intval), (yyvsp[0].intval)); }
2974
0
#line 2975 "cfg.tab.c"
2975
0
    break;
2976
2977
0
  case 42:
2978
0
#line 665 "cfg.y"
2979
0
                        { (yyval.intval)=(yyvsp[0].intval); }
2980
0
#line 2981 "cfg.tab.c"
2981
0
    break;
2982
2983
0
  case 43:
2984
0
#line 666 "cfg.y"
2985
0
                                { (yyval.intval)=(yyvsp[0].intval); }
2986
0
#line 2987 "cfg.tab.c"
2987
0
    break;
2988
2989
0
  case 44:
2990
0
#line 667 "cfg.y"
2991
0
                                { (yyval.intval)=-(yyvsp[0].intval); }
2992
0
#line 2993 "cfg.tab.c"
2993
0
    break;
2994
2995
0
  case 45:
2996
0
#line 671 "cfg.y"
2997
0
                                        { IFOR();
2998
0
        (yyval.sockid)=mk_listen_id((yyvsp[0].strval), (yyvsp[-2].intval), 0); }
2999
0
#line 3000 "cfg.tab.c"
3000
0
    break;
3001
3002
0
  case 46:
3003
0
#line 673 "cfg.y"
3004
0
                                                                { IFOR();
3005
0
        (yyval.sockid)=mk_listen_id((yyvsp[-2].strval), (yyvsp[-4].intval), (yyvsp[0].intval));}
3006
0
#line 3007 "cfg.tab.c"
3007
0
    break;
3008
3009
0
  case 47:
3010
0
#line 675 "cfg.y"
3011
0
                                                            {
3012
0
        (yyval.sockid)=0;
3013
0
        yyerror("port number expected");
3014
0
        YYABORT;
3015
0
        }
3016
0
#line 3017 "cfg.tab.c"
3017
0
    break;
3018
3019
0
  case 48:
3020
0
#line 680 "cfg.y"
3021
0
                                       { (yyval.sockid)=0;
3022
0
        yyerror("protocol expected");
3023
0
        YYABORT;
3024
0
      }
3025
0
#line 3026 "cfg.tab.c"
3026
0
    break;
3027
3028
0
  case 49:
3029
0
#line 688 "cfg.y"
3030
0
                                                                { IFOR();
3031
0
        (yyval.sockid)=mk_listen_id(0, (yyvsp[-2].intval), 0); }
3032
0
#line 3033 "cfg.tab.c"
3033
0
    break;
3034
3035
0
  case 50:
3036
0
#line 690 "cfg.y"
3037
0
                                                { IFOR();
3038
0
        (yyval.sockid)=mk_listen_id_range((yyvsp[0].strval), (yyvsp[-2].intval), 0); }
3039
0
#line 3040 "cfg.tab.c"
3040
0
    break;
3041
3042
0
  case 51:
3043
0
#line 692 "cfg.y"
3044
0
                                                                { IFOR();
3045
0
        (yyval.sockid)=mk_listen_id_range(0, (yyvsp[-4].intval), (yyvsp[0].portrange)); }
3046
0
#line 3047 "cfg.tab.c"
3047
0
    break;
3048
3049
0
  case 52:
3050
0
#line 694 "cfg.y"
3051
0
                                                                { IFOR();
3052
0
        (yyval.sockid)=mk_listen_id_range((yyvsp[-2].strval), (yyvsp[-4].intval), (yyvsp[0].portrange)); }
3053
0
#line 3054 "cfg.tab.c"
3054
0
    break;
3055
3056
0
  case 53:
3057
0
#line 696 "cfg.y"
3058
0
                                                        { IFOR();
3059
0
        (yyval.sockid)=0;
3060
0
        yyerror("invalid port range");
3061
0
        YYABORT;
3062
0
      }
3063
0
#line 3064 "cfg.tab.c"
3064
0
    break;
3065
3066
0
  case 54:
3067
0
#line 701 "cfg.y"
3068
0
                                                                { IFOR();
3069
0
        (yyval.sockid)=0;
3070
0
        yyerror("invalid port range");
3071
0
        YYABORT;
3072
0
      }
3073
0
#line 3074 "cfg.tab.c"
3074
0
    break;
3075
3076
0
  case 55:
3077
0
#line 708 "cfg.y"
3078
0
                                                                        { IFOR();
3079
0
        (yyval.sockid)=mk_listen_id((yyvsp[0].strval), PROTO_NONE, 0); }
3080
0
#line 3081 "cfg.tab.c"
3081
0
    break;
3082
3083
0
  case 56:
3084
0
#line 710 "cfg.y"
3085
0
                                                                        { IFOR();
3086
0
        (yyval.sockid)=mk_listen_id((yyvsp[0].strval), PROTO_NONE, 0); }
3087
0
#line 3088 "cfg.tab.c"
3088
0
    break;
3089
3090
0
  case 57:
3091
0
#line 712 "cfg.y"
3092
0
                                                        { IFOR();
3093
0
        (yyval.sockid)=mk_listen_id((yyvsp[-2].strval), PROTO_NONE, (yyvsp[0].intval)); }
3094
0
#line 3095 "cfg.tab.c"
3095
0
    break;
3096
3097
0
  case 58:
3098
0
#line 714 "cfg.y"
3099
0
                                                        {
3100
0
        (yyval.sockid)=0;
3101
0
        yyerror(" port number expected");
3102
0
        }
3103
0
#line 3104 "cfg.tab.c"
3104
0
    break;
3105
3106
0
  case 60:
3107
0
#line 721 "cfg.y"
3108
0
                                              { (yyval.sockid)=(yyvsp[0].sockid); }
3109
0
#line 3110 "cfg.tab.c"
3110
0
    break;
3111
3112
0
  case 61:
3113
0
#line 722 "cfg.y"
3114
0
                                              {
3115
0
        (yyval.sockid)=(yyvsp[-1].sockid);
3116
0
        (yyval.sockid)->flags |= SI_ACCEPT_SUBDOMAIN_ALIAS;
3117
0
        }
3118
0
#line 3119 "cfg.tab.c"
3119
0
    break;
3120
3121
0
  case 62:
3122
0
#line 728 "cfg.y"
3123
0
                                        { IFOR();  (yyval.sockid)=(yyvsp[0].sockid) ; }
3124
0
#line 3125 "cfg.tab.c"
3125
0
    break;
3126
3127
0
  case 63:
3128
0
#line 729 "cfg.y"
3129
0
                                        { IFOR(); (yyval.sockid)=(yyvsp[-1].sockid); (yyval.sockid)->next=(yyvsp[0].sockid); }
3130
0
#line 3131 "cfg.tab.c"
3131
0
    break;
3132
3133
0
  case 64:
3134
0
#line 732 "cfg.y"
3135
0
                                                                { IFOR();
3136
0
          (yyval.sockid)=mk_listen_id((yyvsp[0].strval), PROTO_NONE, 0); }
3137
0
#line 3138 "cfg.tab.c"
3138
0
    break;
3139
3140
0
  case 65:
3141
0
#line 734 "cfg.y"
3142
0
                                                                { IFOR();
3143
0
          (yyval.sockid)=mk_listen_id_range((yyvsp[-2].strval), PROTO_NONE, (yyvsp[0].portrange)); }
3144
0
#line 3145 "cfg.tab.c"
3145
0
    break;
3146
3147
0
  case 66:
3148
0
#line 736 "cfg.y"
3149
0
                                                      {
3150
0
          (yyval.sockid)=0;
3151
0
          yyerror(" port number expected");
3152
0
          }
3153
0
#line 3154 "cfg.tab.c"
3154
0
    break;
3155
3156
0
  case 67:
3157
0
#line 742 "cfg.y"
3158
0
                          { IFOR();
3159
0
          p_tmp.flags |= SI_IS_ANYCAST;
3160
0
          }
3161
0
#line 3162 "cfg.tab.c"
3162
0
    break;
3163
3164
0
  case 68:
3165
0
#line 745 "cfg.y"
3166
0
                                       { IFOR();
3167
0
          p_tmp.flags |= SI_FRAG;
3168
0
          }
3169
0
#line 3170 "cfg.tab.c"
3170
0
    break;
3171
3172
0
  case 69:
3173
0
#line 748 "cfg.y"
3174
0
                                             { IFOR();
3175
0
          p_tmp.flags |= SI_REUSEPORT;
3176
0
          }
3177
0
#line 3178 "cfg.tab.c"
3178
0
    break;
3179
3180
0
  case 70:
3181
0
#line 751 "cfg.y"
3182
0
                                                   { IFOR();
3183
0
          p_tmp.flags |= SI_ACCEPT_SUBDOMAIN_ALIAS;
3184
0
          }
3185
0
#line 3186 "cfg.tab.c"
3186
0
    break;
3187
3188
0
  case 71:
3189
0
#line 754 "cfg.y"
3190
0
                                                       { IFOR();
3191
0
          p_tmp.flags |= SI_PROXY_IN;
3192
0
          }
3193
0
#line 3194 "cfg.tab.c"
3194
0
    break;
3195
3196
0
  case 72:
3197
0
#line 757 "cfg.y"
3198
0
                                                      { IFOR();
3199
0
          p_tmp.flags |= SI_PROXY_OUT;
3200
0
          }
3201
0
#line 3202 "cfg.tab.c"
3202
0
    break;
3203
3204
0
  case 73:
3205
0
#line 760 "cfg.y"
3206
0
                                                 { IFOR();
3207
0
          p_tmp.flags |= SI_PROXY;
3208
0
          }
3209
0
#line 3210 "cfg.tab.c"
3210
0
    break;
3211
3212
0
  case 74:
3213
0
#line 763 "cfg.y"
3214
0
                                                     { IFOR();
3215
0
          p_tmp.workers=(yyvsp[0].intval);
3216
0
          }
3217
0
#line 3218 "cfg.tab.c"
3218
0
    break;
3219
3220
0
  case 75:
3221
0
#line 766 "cfg.y"
3222
0
                                                  { IFOR();
3223
0
          p_tmp.tos=(yyvsp[0].intval);
3224
0
          }
3225
0
#line 3226 "cfg.tab.c"
3226
0
    break;
3227
3228
0
  case 76:
3229
0
#line 769 "cfg.y"
3230
0
                                                   { IFOR();
3231
0
          p_tmp.socket = (yyvsp[0].sockid);
3232
0
          }
3233
0
#line 3234 "cfg.tab.c"
3234
0
    break;
3235
3236
0
  case 77:
3237
0
#line 772 "cfg.y"
3238
0
                                         { IFOR();
3239
0
          p_tmp.tag = (yyvsp[0].strval);
3240
0
          }
3241
0
#line 3242 "cfg.tab.c"
3242
0
    break;
3243
3244
0
  case 78:
3245
0
#line 775 "cfg.y"
3246
0
                                                              { IFOR();
3247
0
          p_tmp.auto_scaling_profile=(yyvsp[0].strval);
3248
0
          }
3249
0
#line 3250 "cfg.tab.c"
3250
0
    break;
3251
3252
0
  case 81:
3253
0
#line 784 "cfg.y"
3254
0
                               { IFOR();
3255
0
        (yyval.bondlst) = new_socket_bond_elem((yyvsp[0].strval));
3256
0
        if (!(yyval.bondlst)) {
3257
0
          yyerror("failed to alloc BOND element\n");YYABORT;
3258
0
        }
3259
0
      }
3260
0
#line 3261 "cfg.tab.c"
3261
0
    break;
3262
3263
0
  case 82:
3264
0
#line 790 "cfg.y"
3265
0
                                                       { IFOR();
3266
0
        (yyval.bondlst) = new_socket_bond_elem((yyvsp[-2].strval));
3267
0
        if (!(yyval.bondlst)) {
3268
0
          yyerror("failed to alloc BOND element\n");YYABORT;
3269
0
        }
3270
0
        (yyval.bondlst)->next = (yyvsp[0].bondlst);
3271
0
      }
3272
0
#line 3273 "cfg.tab.c"
3273
0
    break;
3274
3275
0
  case 83:
3276
0
#line 799 "cfg.y"
3277
0
                                { (yyval.sockid)=(yyvsp[0].sockid); }
3278
0
#line 3279 "cfg.tab.c"
3279
0
    break;
3280
3281
0
  case 84:
3282
0
#line 800 "cfg.y"
3283
0
                                         { IFOR();
3284
0
          memset(&p_tmp, 0, sizeof(p_tmp));
3285
0
        }
3286
0
#line 3287 "cfg.tab.c"
3287
0
    break;
3288
3289
0
  case 85:
3290
0
#line 802 "cfg.y"
3291
0
                                                        { IFOR();
3292
0
          (yyval.sockid)=(yyvsp[-2].sockid); fill_socket_id(&p_tmp, (yyval.sockid));
3293
0
        }
3294
0
#line 3295 "cfg.tab.c"
3295
0
    break;
3296
3297
0
  case 86:
3298
0
#line 805 "cfg.y"
3299
0
                                                                        { IFOR();
3300
0
        if (!mk_bond_id((yyvsp[-3].strval), (yyvsp[-1].bondlst))) {
3301
0
          yyerror("failed to add new BOND socket\n");YYABORT;
3302
0
        }
3303
0
        (yyval.sockid) = NULL; /*trick to avoid being added as regular interface*/
3304
0
        }
3305
0
#line 3306 "cfg.tab.c"
3306
0
    break;
3307
3308
0
  case 87:
3309
0
#line 813 "cfg.y"
3310
0
                        { (yyval.intval)=PROTO_NONE; }
3311
0
#line 3312 "cfg.tab.c"
3312
0
    break;
3313
3314
0
  case 88:
3315
0
#line 814 "cfg.y"
3316
0
                                { (yyval.intval)=(yyvsp[0].intval); }
3317
0
#line 3318 "cfg.tab.c"
3318
0
    break;
3319
3320
0
  case 89:
3321
0
#line 816 "cfg.y"
3322
0
                       {  IFOR(); (yyval.multistr)=new_string((yyvsp[0].strval)); }
3323
0
#line 3324 "cfg.tab.c"
3324
0
    break;
3325
3326
0
  case 90:
3327
0
#line 817 "cfg.y"
3328
0
                                      { IFOR(); (yyval.multistr)=new_string((yyvsp[-1].strval)); (yyval.multistr)->next=(yyvsp[0].multistr); }
3329
0
#line 3330 "cfg.tab.c"
3330
0
    break;
3331
3332
0
  case 91:
3333
0
#line 820 "cfg.y"
3334
0
                                                                       {
3335
0
        IFOR(pkg_free((yyvsp[-5].ipnet)));
3336
0
        s_tmp.s=(yyvsp[-1].strval);
3337
0
        s_tmp.len=strlen((yyvsp[-1].strval));
3338
0
        if (add_rule_to_list(&bl_head,&bl_tail,(yyvsp[-5].ipnet),&s_tmp,(yyvsp[-3].intval),(yyvsp[-7].intval),0)) {
3339
0
          yyerror("failed to add backlist element\n");YYABORT;
3340
0
        }
3341
0
      }
3342
0
#line 3343 "cfg.tab.c"
3343
0
    break;
3344
3345
0
  case 92:
3346
0
#line 828 "cfg.y"
3347
0
                                                                                  {
3348
0
        IFOR(pkg_free((yyvsp[-5].ipnet)));
3349
0
        s_tmp.s=(yyvsp[-1].strval);
3350
0
        s_tmp.len=strlen((yyvsp[-1].strval));
3351
0
        if (add_rule_to_list(&bl_head,&bl_tail,(yyvsp[-5].ipnet),&s_tmp,
3352
0
        (yyvsp[-3].intval),(yyvsp[-7].intval),BLR_APPLY_CONTRARY)) {
3353
0
          yyerror("failed to add backlist element\n");YYABORT;
3354
0
        }
3355
0
      }
3356
0
#line 3357 "cfg.tab.c"
3357
0
    break;
3358
3359
0
  case 93:
3360
0
#line 837 "cfg.y"
3361
0
                                                                 {
3362
0
        IFOR(pkg_free((yyvsp[-3].ipnet)));
3363
0
        if (add_rule_to_list(&bl_head,&bl_tail,(yyvsp[-3].ipnet),NULL,(yyvsp[-1].intval),(yyvsp[-5].intval),0)) {
3364
0
          yyerror("failed to add backlist element\n");YYABORT;
3365
0
        }
3366
0
      }
3367
0
#line 3368 "cfg.tab.c"
3368
0
    break;
3369
3370
0
  case 94:
3371
0
#line 843 "cfg.y"
3372
0
                                                                     {
3373
0
        IFOR(pkg_free((yyvsp[-3].ipnet)));
3374
0
        if (add_rule_to_list(&bl_head,&bl_tail,(yyvsp[-3].ipnet),NULL,
3375
0
        (yyvsp[-1].intval),(yyvsp[-5].intval),BLR_APPLY_CONTRARY)) {
3376
0
          yyerror("failed to add backlist element\n");YYABORT;
3377
0
        }
3378
0
      }
3379
0
#line 3380 "cfg.tab.c"
3380
0
    break;
3381
3382
0
  case 95:
3383
0
#line 850 "cfg.y"
3384
0
                                                      {
3385
0
        IFOR(pkg_free((yyvsp[-1].ipnet)));
3386
0
        if (add_rule_to_list(&bl_head,&bl_tail,(yyvsp[-1].ipnet),NULL,0,(yyvsp[-3].intval),0)) {
3387
0
          yyerror("failed to add backlist element\n");YYABORT;
3388
0
        }
3389
0
      }
3390
0
#line 3391 "cfg.tab.c"
3391
0
    break;
3392
3393
0
  case 96:
3394
0
#line 856 "cfg.y"
3395
0
                                                          {
3396
0
        IFOR(pkg_free((yyvsp[-1].ipnet)));
3397
0
        if (add_rule_to_list(&bl_head,&bl_tail,(yyvsp[-1].ipnet),NULL,
3398
0
        0,(yyvsp[-3].intval),BLR_APPLY_CONTRARY)) {
3399
0
          yyerror("failed to add backlist element\n");YYABORT;
3400
0
        }
3401
0
      }
3402
0
#line 3403 "cfg.tab.c"
3403
0
    break;
3404
3405
0
  case 97:
3406
0
#line 863 "cfg.y"
3407
0
                                                 {
3408
0
        IFOR(pkg_free((yyvsp[-3].ipnet)));
3409
0
        if (add_rule_to_list(&bl_head,&bl_tail,(yyvsp[-3].ipnet),NULL,(yyvsp[-1].intval),PROTO_NONE,0)) {
3410
0
          yyerror("failed to add backlist element\n");YYABORT;
3411
0
        }
3412
0
      }
3413
0
#line 3414 "cfg.tab.c"
3414
0
    break;
3415
3416
0
  case 98:
3417
0
#line 869 "cfg.y"
3418
0
                                                     {
3419
0
        IFOR(pkg_free((yyvsp[-3].ipnet)));
3420
0
        if (add_rule_to_list(&bl_head,&bl_tail,(yyvsp[-3].ipnet),NULL,
3421
0
        (yyvsp[-1].intval),PROTO_NONE,BLR_APPLY_CONTRARY)) {
3422
0
          yyerror("failed to add backlist element\n");YYABORT;
3423
0
        }
3424
0
      }
3425
0
#line 3426 "cfg.tab.c"
3426
0
    break;
3427
3428
0
  case 99:
3429
0
#line 876 "cfg.y"
3430
0
                                      {
3431
0
        IFOR(pkg_free((yyvsp[-1].ipnet)));
3432
0
        if (add_rule_to_list(&bl_head,&bl_tail,(yyvsp[-1].ipnet),NULL,0,PROTO_NONE,0)) {
3433
0
          yyerror("failed to add backlist element\n"); YYABORT;
3434
0
        }
3435
0
      }
3436
0
#line 3437 "cfg.tab.c"
3437
0
    break;
3438
3439
0
  case 100:
3440
0
#line 882 "cfg.y"
3441
0
                                          {
3442
0
        IFOR(pkg_free((yyvsp[-1].ipnet)));
3443
0
        if (add_rule_to_list(&bl_head,&bl_tail,(yyvsp[-1].ipnet),NULL,
3444
0
        0,PROTO_NONE,BLR_APPLY_CONTRARY)) {
3445
0
          yyerror("failed to add backlist element\n");YYABORT;
3446
0
        }
3447
0
      }
3448
0
#line 3449 "cfg.tab.c"
3449
0
    break;
3450
3451
0
  case 101:
3452
0
#line 889 "cfg.y"
3453
0
                        {
3454
0
        IFOR(pkg_free((yyvsp[0].ipnet)));
3455
0
        if (add_rule_to_list(&bl_head,&bl_tail,(yyvsp[0].ipnet),NULL,0,PROTO_NONE,0)) {
3456
0
          yyerror("failed to add backlist element\n"); YYABORT;
3457
0
        }
3458
0
      }
3459
0
#line 3460 "cfg.tab.c"
3460
0
    break;
3461
3462
0
  case 102:
3463
0
#line 895 "cfg.y"
3464
0
                            {
3465
0
        IFOR(pkg_free((yyvsp[0].ipnet)));
3466
0
        if (add_rule_to_list(&bl_head,&bl_tail,(yyvsp[0].ipnet),NULL,
3467
0
        0,PROTO_NONE,BLR_APPLY_CONTRARY)) {
3468
0
          yyerror("failed to add backlist element\n");YYABORT;
3469
0
        }
3470
0
      }
3471
0
#line 3472 "cfg.tab.c"
3472
0
    break;
3473
3474
0
  case 106:
3475
0
#line 909 "cfg.y"
3476
0
                    { (yyval.intval) = BL_READONLY_LIST; }
3477
0
#line 3478 "cfg.tab.c"
3478
0
    break;
3479
3480
0
  case 107:
3481
0
#line 910 "cfg.y"
3482
0
                          { (yyval.intval) = BL_DO_EXPIRE; }
3483
0
#line 3484 "cfg.tab.c"
3484
0
    break;
3485
3486
0
  case 108:
3487
0
#line 911 "cfg.y"
3488
0
                           { (yyval.intval) = BL_BY_DEFAULT; }
3489
0
#line 3490 "cfg.tab.c"
3490
0
    break;
3491
3492
0
  case 109:
3493
0
#line 914 "cfg.y"
3494
0
                                       { (yyval.intval) = (yyvsp[-2].intval) | (yyvsp[0].intval); }
3495
0
#line 3496 "cfg.tab.c"
3496
0
    break;
3497
3498
0
  case 110:
3499
0
#line 915 "cfg.y"
3500
0
                            {}
3501
0
#line 3502 "cfg.tab.c"
3502
0
    break;
3503
3504
0
  case 111:
3505
0
#line 918 "cfg.y"
3506
0
                                               {}
3507
0
#line 3508 "cfg.tab.c"
3508
0
    break;
3509
3510
0
  case 112:
3511
0
#line 919 "cfg.y"
3512
0
                            {}
3513
0
#line 3514 "cfg.tab.c"
3514
0
    break;
3515
3516
0
  case 113:
3517
0
#line 920 "cfg.y"
3518
0
                                       { yyerror("bad black list element");}
3519
0
#line 3520 "cfg.tab.c"
3520
0
    break;
3521
3522
0
  case 114:
3523
0
#line 923 "cfg.y"
3524
0
                                            {IFOR(); add_mpath((yyvsp[0].strval));}
3525
0
#line 3526 "cfg.tab.c"
3526
0
    break;
3527
3528
0
  case 115:
3529
0
#line 924 "cfg.y"
3530
0
                         { IFOR(); add_mpath((yyvsp[0].strval));}
3531
0
#line 3532 "cfg.tab.c"
3532
0
    break;
3533
3534
0
  case 116:
3535
0
#line 931 "cfg.y"
3536
0
                                              { IFOR();
3537
0
      if (create_auto_scaling_profile((yyvsp[-17].strval),(yyvsp[-15].intval),(yyvsp[-13].intval),(yyvsp[-10].intval),(yyvsp[-8].intval),
3538
0
      (yyvsp[-6].intval), (yyvsp[-4].intval), (yyvsp[-1].intval),10*(yyvsp[-1].intval))<0)
3539
0
        yyerror("failed to create auto scaling profile");
3540
0
     }
3541
0
#line 3542 "cfg.tab.c"
3542
0
    break;
3543
3544
0
  case 117:
3545
0
#line 939 "cfg.y"
3546
0
                                              { IFOR();
3547
0
      if (create_auto_scaling_profile((yyvsp[-16].strval),(yyvsp[-14].intval),(yyvsp[-12].intval),(yyvsp[-9].intval),(yyvsp[-9].intval),
3548
0
      (yyvsp[-6].intval), (yyvsp[-4].intval), (yyvsp[-1].intval), 10*(yyvsp[-1].intval))<0)
3549
0
        yyerror("failed to create auto scaling profile");
3550
0
     }
3551
0
#line 3552 "cfg.tab.c"
3552
0
    break;
3553
3554
0
  case 118:
3555
0
#line 945 "cfg.y"
3556
0
                                                            { IFOR();
3557
0
      if (create_auto_scaling_profile((yyvsp[-9].strval),(yyvsp[-7].intval),(yyvsp[-5].intval),(yyvsp[-2].intval),(yyvsp[0].intval),
3558
0
      0, 0, 0, 0)<0)
3559
0
        yyerror("failed to create auto scaling profile");
3560
0
    }
3561
0
#line 3562 "cfg.tab.c"
3562
0
    break;
3563
3564
0
  case 119:
3565
0
#line 951 "cfg.y"
3566
0
                                              { IFOR();
3567
0
      if (create_auto_scaling_profile((yyvsp[-8].strval),(yyvsp[-6].intval),(yyvsp[-4].intval),(yyvsp[-1].intval),(yyvsp[-1].intval),
3568
0
      0, 0, 0, 0)<0)
3569
0
        yyerror("failed to create auto scaling profile");
3570
0
    }
3571
0
#line 3572 "cfg.tab.c"
3572
0
    break;
3573
3574
0
  case 120:
3575
0
#line 958 "cfg.y"
3576
0
                                   { IFOR();
3577
      /* in debug mode, force logging to DEBUG level*/
3578
0
      *log_level = debug_mode?L_DBG:(yyvsp[0].intval);
3579
0
      }
3580
0
#line 3581 "cfg.tab.c"
3581
0
    break;
3582
3583
0
  case 121:
3584
0
#line 962 "cfg.y"
3585
0
                                            { IFOR();
3586
0
      pi_framework.s = (yyvsp[0].strval);
3587
0
      pi_framework.len = strlen((yyvsp[0].strval));
3588
0
      }
3589
0
#line 3590 "cfg.tab.c"
3590
0
    break;
3591
3592
0
  case 122:
3593
0
#line 966 "cfg.y"
3594
0
                                           { yyerror("string value expected"); }
3595
0
#line 3596 "cfg.tab.c"
3596
0
    break;
3597
3598
0
  case 123:
3599
0
#line 967 "cfg.y"
3600
0
                                         { IFOR();
3601
0
      if (*(yyvsp[0].strval)) {
3602
0
        int len = strlen((yyvsp[0].strval));
3603
0
        char *buf = pkg_malloc(len + 2);
3604
0
        if (!buf)
3605
0
          yyerror("oom");
3606
0
        sprintf(buf, "%s:", (yyvsp[0].strval));
3607
0
        log_prefix = buf;
3608
0
      } else {
3609
0
        log_prefix = (yyvsp[0].strval);
3610
0
      }
3611
0
      }
3612
0
#line 3613 "cfg.tab.c"
3613
0
    break;
3614
3615
0
  case 124:
3616
0
#line 979 "cfg.y"
3617
0
                                         { yyerror("string value expected"); }
3618
0
#line 3619 "cfg.tab.c"
3619
0
    break;
3620
3621
0
  case 125:
3622
0
#line 980 "cfg.y"
3623
0
                                               { IFOR(); enable_asserts=(yyvsp[0].intval); }
3624
0
#line 3625 "cfg.tab.c"
3625
0
    break;
3626
3627
0
  case 126:
3628
0
#line 981 "cfg.y"
3629
0
                                              { yyerror("boolean value expected"); }
3630
0
#line 3631 "cfg.tab.c"
3631
0
    break;
3632
3633
0
  case 127:
3634
0
#line 982 "cfg.y"
3635
0
                                                { IFOR(); abort_on_assert=(yyvsp[0].intval); }
3636
0
#line 3637 "cfg.tab.c"
3637
0
    break;
3638
3639
0
  case 128:
3640
0
#line 983 "cfg.y"
3641
0
                                               { yyerror("boolean value expected"); }
3642
0
#line 3643 "cfg.tab.c"
3643
0
    break;
3644
3645
0
  case 129:
3646
0
#line 984 "cfg.y"
3647
0
                                           { IFOR();
3648
0
      debug_mode=(yyvsp[0].intval);
3649
0
      if (debug_mode) {
3650
0
        *log_level = L_DBG;
3651
0
        stderr_enabled=1;
3652
0
        syslog_enabled=0;
3653
3654
0
        s_tmp.s=STDERR_CONSUMER_NAME;
3655
0
        s_tmp.len=strlen(STDERR_CONSUMER_NAME);
3656
0
        set_log_consumer_mute_state(&s_tmp, 0);
3657
0
        s_tmp.s=SYSLOG_CONSUMER_NAME;
3658
0
        s_tmp.len=strlen(SYSLOG_CONSUMER_NAME);
3659
0
        set_log_consumer_mute_state(&s_tmp, 1);
3660
0
      }
3661
0
      }
3662
0
#line 3663 "cfg.tab.c"
3663
0
    break;
3664
3665
0
  case 130:
3666
0
#line 1000 "cfg.y"
3667
0
                        { yyerror("boolean value expected for debug_mode"); }
3668
0
#line 3669 "cfg.tab.c"
3669
0
    break;
3670
3671
0
  case 131:
3672
0
#line 1003 "cfg.y"
3673
0
                        { IFOR(); log_stdout=(yyvsp[0].intval); }
3674
0
#line 3675 "cfg.tab.c"
3675
0
    break;
3676
3677
0
  case 132:
3678
0
#line 1004 "cfg.y"
3679
0
                                        { yyerror("boolean value expected"); }
3680
0
#line 3681 "cfg.tab.c"
3681
0
    break;
3682
3683
0
  case 133:
3684
0
#line 1005 "cfg.y"
3685
0
                                                {
3686
      /* in config-check or debug mode we force logging
3687
       * to standard error */
3688
0
      IFOR();
3689
0
      if (!config_check && !debug_mode) {
3690
0
        stderr_enabled=(yyvsp[0].intval);
3691
0
        s_tmp.s=STDERR_CONSUMER_NAME;
3692
0
        s_tmp.len=strlen(STDERR_CONSUMER_NAME);
3693
0
        set_log_consumer_mute_state(&s_tmp, !(yyvsp[0].intval));
3694
0
      }
3695
0
      }
3696
0
#line 3697 "cfg.tab.c"
3697
0
    break;
3698
3699
0
  case 134:
3700
0
#line 1016 "cfg.y"
3701
0
                                               { yyerror("boolean value expected"); }
3702
0
#line 3703 "cfg.tab.c"
3703
0
    break;
3704
3705
0
  case 135:
3706
0
#line 1017 "cfg.y"
3707
0
                                              {
3708
0
      IFOR();
3709
      /* in config-check or debug mode we force logging
3710
       * to standard error */
3711
0
      if (!config_check && !debug_mode) {
3712
0
        syslog_enabled=(yyvsp[0].intval);
3713
0
        s_tmp.s=SYSLOG_CONSUMER_NAME;
3714
0
        s_tmp.len=strlen(SYSLOG_CONSUMER_NAME);
3715
0
        set_log_consumer_mute_state(&s_tmp, !(yyvsp[0].intval));
3716
0
      }
3717
0
      }
3718
0
#line 3719 "cfg.tab.c"
3719
0
    break;
3720
3721
0
  case 136:
3722
0
#line 1028 "cfg.y"
3723
0
                                             { yyerror("boolean value expected"); }
3724
0
#line 3725 "cfg.tab.c"
3725
0
    break;
3726
3727
0
  case 137:
3728
0
#line 1029 "cfg.y"
3729
0
                                                 {
3730
0
      IFOR();
3731
0
      if ((yyvsp[0].intval)) {
3732
0
        if (init_log_msg_buf(0) < 0) {
3733
0
          yyerror("failed to allocate msg log buffer");
3734
0
          YYABORT;
3735
0
        }
3736
0
      }
3737
0
      log_event_enabled=(yyvsp[0].intval); }
3738
0
#line 3739 "cfg.tab.c"
3739
0
    break;
3740
3741
0
  case 138:
3742
0
#line 1038 "cfg.y"
3743
0
                                                { yyerror("boolean value expected"); }
3744
0
#line 3745 "cfg.tab.c"
3745
0
    break;
3746
3747
0
  case 139:
3748
0
#line 1039 "cfg.y"
3749
0
                                                      {
3750
0
      IFOR();
3751
0
      s_tmp.s=STDERR_CONSUMER_NAME;
3752
0
      s_tmp.len=strlen(STDERR_CONSUMER_NAME);
3753
0
      set_log_consumer_level_filter(&s_tmp, (yyvsp[0].intval));
3754
0
      }
3755
0
#line 3756 "cfg.tab.c"
3756
0
    break;
3757
3758
0
  case 140:
3759
0
#line 1045 "cfg.y"
3760
0
                                                    { yyerror("number expected"); }
3761
0
#line 3762 "cfg.tab.c"
3762
0
    break;
3763
3764
0
  case 141:
3765
0
#line 1046 "cfg.y"
3766
0
                                                    {
3767
0
      IFOR();
3768
0
      s_tmp.s=SYSLOG_CONSUMER_NAME;
3769
0
      s_tmp.len=strlen(SYSLOG_CONSUMER_NAME);
3770
0
      set_log_consumer_level_filter(&s_tmp, (yyvsp[0].intval));
3771
0
      }
3772
0
#line 3773 "cfg.tab.c"
3773
0
    break;
3774
3775
0
  case 142:
3776
0
#line 1052 "cfg.y"
3777
0
                                                  { yyerror("number expected"); }
3778
0
#line 3779 "cfg.tab.c"
3779
0
    break;
3780
3781
0
  case 143:
3782
0
#line 1053 "cfg.y"
3783
0
                                                       { IFOR();
3784
0
              log_event_level_filter = (yyvsp[0].intval); }
3785
0
#line 3786 "cfg.tab.c"
3786
0
    break;
3787
3788
0
  case 144:
3789
0
#line 1055 "cfg.y"
3790
0
                                                     { yyerror("number expected"); }
3791
0
#line 3792 "cfg.tab.c"
3792
0
    break;
3793
3794
0
  case 145:
3795
0
#line 1056 "cfg.y"
3796
0
                                               { IFOR();
3797
0
      s_tmp.s = (yyvsp[0].strval);
3798
0
      s_tmp.len = strlen((yyvsp[0].strval));
3799
0
      if ((i_tmp = parse_log_format(&s_tmp)) < 0) {
3800
0
        yyerror("unknown log format");
3801
0
      } else {
3802
0
        if (i_tmp != LOG_FORMAT_PLAIN) {
3803
0
          if (init_log_json_buf(0) < 0) {
3804
0
            yyerror("failed to allocate json log buffer");
3805
0
            YYABORT;
3806
0
          }
3807
0
          if (init_log_msg_buf(0) < 0) {
3808
0
            yyerror("failed to allocate msg log buffer");
3809
0
            YYABORT;
3810
0
          }
3811
3812
0
          if (i_tmp == LOG_FORMAT_JSON_CEE && init_log_cee_hostname() < 0) {
3813
0
            yyerror("failed to allocate hostname buffer");
3814
0
            YYABORT;
3815
0
          }
3816
0
        }
3817
3818
0
        stderr_log_format = i_tmp;
3819
0
      }
3820
0
      }
3821
0
#line 3822 "cfg.tab.c"
3822
0
    break;
3823
3824
0
  case 146:
3825
0
#line 1081 "cfg.y"
3826
0
                                             { IFOR();
3827
0
      s_tmp.s = (yyvsp[0].strval);
3828
0
      s_tmp.len = strlen((yyvsp[0].strval));
3829
0
      if ((i_tmp = parse_log_format(&s_tmp)) < 0) {
3830
0
        yyerror("unknown log format");
3831
0
      } else {
3832
0
        if (i_tmp != LOG_FORMAT_PLAIN) {
3833
0
          if (init_log_json_buf(0) < 0) {
3834
0
            yyerror("failed to allocate json log buffer");
3835
0
            YYABORT;
3836
0
          }
3837
0
          if (init_log_msg_buf(0) < 0) {
3838
0
            yyerror("failed to allocate msg log buffer");
3839
0
            YYABORT;
3840
0
          }
3841
3842
0
          if (i_tmp == LOG_FORMAT_JSON_CEE && init_log_cee_hostname() < 0) {
3843
0
            yyerror("failed to allocate hostname buffer");
3844
0
            YYABORT;
3845
0
          }
3846
0
        }
3847
3848
0
        syslog_log_format = i_tmp;
3849
0
      }
3850
0
      }
3851
0
#line 3852 "cfg.tab.c"
3852
0
    break;
3853
3854
0
  case 147:
3855
0
#line 1106 "cfg.y"
3856
0
                                                 {
3857
0
      IFOR();
3858
0
      log_json_buf_size = (yyvsp[0].intval);
3859
0
      if (init_log_json_buf(1) < 0) {
3860
0
        yyerror("failed to realloc json log buffer");
3861
0
        YYABORT;
3862
0
      }
3863
0
      }
3864
0
#line 3865 "cfg.tab.c"
3865
0
    break;
3866
3867
0
  case 148:
3868
0
#line 1114 "cfg.y"
3869
0
                                                { yyerror("number expected"); }
3870
0
#line 3871 "cfg.tab.c"
3871
0
    break;
3872
3873
0
  case 149:
3874
0
#line 1115 "cfg.y"
3875
0
                                                {
3876
0
      IFOR();
3877
0
      log_msg_buf_size = (yyvsp[0].intval);
3878
0
      if (init_log_msg_buf(1) < 0) {
3879
0
        yyerror("failed to realloc msg log buffer");
3880
0
        YYABORT;
3881
0
      }
3882
0
      }
3883
0
#line 3884 "cfg.tab.c"
3884
0
    break;
3885
3886
0
  case 150:
3887
0
#line 1123 "cfg.y"
3888
0
                                               { yyerror("number expected"); }
3889
0
#line 3890 "cfg.tab.c"
3890
0
    break;
3891
3892
0
  case 151:
3893
0
#line 1124 "cfg.y"
3894
0
                                           { IFOR();
3895
0
      if ( (i_tmp=str2facility((yyvsp[0].strval)))==-1)
3896
0
        yyerror("bad facility (see syslog(3) man page)");
3897
0
      if (!config_check)
3898
0
        log_facility=i_tmp;
3899
0
      }
3900
0
#line 3901 "cfg.tab.c"
3901
0
    break;
3902
3903
0
  case 152:
3904
0
#line 1130 "cfg.y"
3905
0
                                              { yyerror("ID expected"); }
3906
0
#line 3907 "cfg.tab.c"
3907
0
    break;
3908
3909
0
  case 153:
3910
0
#line 1131 "cfg.y"
3911
0
                                           { IFOR(); log_name=(yyvsp[0].strval); }
3912
0
#line 3913 "cfg.tab.c"
3913
0
    break;
3914
3915
0
  case 154:
3916
0
#line 1132 "cfg.y"
3917
0
                                          { yyerror("string value expected"); }
3918
0
#line 3919 "cfg.tab.c"
3919
0
    break;
3920
3921
0
  case 155:
3922
0
#line 1133 "cfg.y"
3923
0
                                     { IFOR(); received_dns|= ((yyvsp[0].intval))?DO_DNS:0; }
3924
0
#line 3925 "cfg.tab.c"
3925
0
    break;
3926
3927
0
  case 156:
3928
0
#line 1134 "cfg.y"
3929
0
                                  { yyerror("boolean value expected"); }
3930
0
#line 3931 "cfg.tab.c"
3931
0
    break;
3932
3933
0
  case 157:
3934
0
#line 1135 "cfg.y"
3935
0
                                       { IFOR(); received_dns|= ((yyvsp[0].intval))?DO_REV_DNS:0; }
3936
0
#line 3937 "cfg.tab.c"
3937
0
    break;
3938
3939
0
  case 158:
3940
0
#line 1136 "cfg.y"
3941
0
                                      { yyerror("boolean value expected"); }
3942
0
#line 3943 "cfg.tab.c"
3943
0
    break;
3944
3945
0
  case 159:
3946
0
#line 1137 "cfg.y"
3947
0
                                              { IFOR(); dns_try_ipv6=(yyvsp[0].intval); }
3948
0
#line 3949 "cfg.tab.c"
3949
0
    break;
3950
3951
0
  case 160:
3952
0
#line 1138 "cfg.y"
3953
0
                                     { yyerror("boolean value expected"); }
3954
0
#line 3955 "cfg.tab.c"
3955
0
    break;
3956
3957
0
  case 161:
3958
0
#line 1139 "cfg.y"
3959
0
                                               { IFOR(); dns_try_naptr=(yyvsp[0].intval); }
3960
0
#line 3961 "cfg.tab.c"
3961
0
    break;
3962
3963
0
  case 162:
3964
0
#line 1140 "cfg.y"
3965
0
                                      { yyerror("boolean value expected"); }
3966
0
#line 3967 "cfg.tab.c"
3967
0
    break;
3968
3969
0
  case 163:
3970
0
#line 1141 "cfg.y"
3971
0
                                               { IFOR(); dns_retr_time=(yyvsp[0].intval); }
3972
0
#line 3973 "cfg.tab.c"
3973
0
    break;
3974
3975
0
  case 164:
3976
0
#line 1142 "cfg.y"
3977
0
                                      { yyerror("number expected"); }
3978
0
#line 3979 "cfg.tab.c"
3979
0
    break;
3980
3981
0
  case 165:
3982
0
#line 1143 "cfg.y"
3983
0
                                             { IFOR(); dns_retr_no=(yyvsp[0].intval); }
3984
0
#line 3985 "cfg.tab.c"
3985
0
    break;
3986
3987
0
  case 166:
3988
0
#line 1144 "cfg.y"
3989
0
                                    { yyerror("number expected"); }
3990
0
#line 3991 "cfg.tab.c"
3991
0
    break;
3992
3993
0
  case 167:
3994
0
#line 1145 "cfg.y"
3995
0
                                                { IFOR(); dns_servers_no=(yyvsp[0].intval); }
3996
0
#line 3997 "cfg.tab.c"
3997
0
    break;
3998
3999
0
  case 168:
4000
0
#line 1146 "cfg.y"
4001
0
                                       { yyerror("number expected"); }
4002
0
#line 4003 "cfg.tab.c"
4003
0
    break;
4004
4005
0
  case 169:
4006
0
#line 1147 "cfg.y"
4007
0
                                                { IFOR(); dns_search_list=(yyvsp[0].intval); }
4008
0
#line 4009 "cfg.tab.c"
4009
0
    break;
4010
4011
0
  case 170:
4012
0
#line 1148 "cfg.y"
4013
0
                                       { yyerror("boolean value expected"); }
4014
0
#line 4015 "cfg.tab.c"
4015
0
    break;
4016
4017
0
  case 171:
4018
0
#line 1149 "cfg.y"
4019
0
                                               { IFOR(); max_while_loops=(yyvsp[0].intval); }
4020
0
#line 4021 "cfg.tab.c"
4021
0
    break;
4022
4023
0
  case 172:
4024
0
#line 1150 "cfg.y"
4025
0
                                              { yyerror("number expected"); }
4026
0
#line 4027 "cfg.tab.c"
4027
0
    break;
4028
4029
0
  case 173:
4030
0
#line 1151 "cfg.y"
4031
0
                                         { IFOR(); maxbuffer=(yyvsp[0].intval); }
4032
0
#line 4033 "cfg.tab.c"
4033
0
    break;
4034
4035
0
  case 174:
4036
0
#line 1152 "cfg.y"
4037
0
                                        { yyerror("number expected"); }
4038
0
#line 4039 "cfg.tab.c"
4039
0
    break;
4040
4041
0
  case 175:
4042
0
#line 1153 "cfg.y"
4043
0
                                           { IFOR(); udp_workers_no=(yyvsp[0].intval); }
4044
0
#line 4045 "cfg.tab.c"
4045
0
    break;
4046
4047
0
  case 176:
4048
0
#line 1154 "cfg.y"
4049
0
                                                                       { IFOR();
4050
0
        udp_workers_no=(yyvsp[-2].intval);
4051
0
        udp_auto_scaling_profile=(yyvsp[0].strval);
4052
0
    }
4053
0
#line 4054 "cfg.tab.c"
4054
0
    break;
4055
4056
0
  case 177:
4057
0
#line 1158 "cfg.y"
4058
0
                                          { yyerror("number expected"); }
4059
0
#line 4060 "cfg.tab.c"
4060
0
    break;
4061
4062
0
  case 178:
4063
0
#line 1159 "cfg.y"
4064
0
                                             { IFOR();
4065
0
        timer_workers_no=(yyvsp[0].intval);
4066
0
    }
4067
0
#line 4068 "cfg.tab.c"
4068
0
    break;
4069
4070
0
  case 179:
4071
0
#line 1162 "cfg.y"
4072
0
                                                                         { IFOR();
4073
0
        timer_workers_no=(yyvsp[-2].intval);
4074
0
        timer_auto_scaling_profile=(yyvsp[0].strval);
4075
0
    }
4076
0
#line 4077 "cfg.tab.c"
4077
0
    break;
4078
4079
0
  case 180:
4080
0
#line 1166 "cfg.y"
4081
0
                                         { check_via=(yyvsp[0].intval); }
4082
0
#line 4083 "cfg.tab.c"
4083
0
    break;
4084
4085
0
  case 181:
4086
0
#line 1167 "cfg.y"
4087
0
                                        { yyerror("boolean value expected"); }
4088
0
#line 4089 "cfg.tab.c"
4089
0
    break;
4090
4091
0
  case 182:
4092
0
#line 1168 "cfg.y"
4093
0
                                                         { IFOR();
4094
      #ifdef HP_MALLOC
4095
      shm_hash_split_percentage=(yyvsp[0].intval);
4096
      #else
4097
0
      LM_ERR("Cannot set parameter; Please recompile with support "
4098
0
        "for HP_MALLOC\n");
4099
0
      #endif
4100
0
      }
4101
0
#line 4102 "cfg.tab.c"
4102
0
    break;
4103
4104
0
  case 183:
4105
0
#line 1176 "cfg.y"
4106
0
                                                        {
4107
      #ifdef HP_MALLOC
4108
      yyerror("number expected");
4109
      #else
4110
0
      LM_ERR("Cannot set parameter; Please recompile with support "
4111
0
        "for HP_MALLOC\n");
4112
0
      #endif
4113
0
        }
4114
0
#line 4115 "cfg.tab.c"
4115
0
    break;
4116
4117
0
  case 184:
4118
0
#line 1184 "cfg.y"
4119
0
                                                       { IFOR();
4120
      #ifdef HP_MALLOC
4121
      shm_secondary_hash_size=(yyvsp[0].intval);
4122
      #else
4123
0
      LM_ERR("Cannot set parameter; Please recompile with support"
4124
0
        " for HP_MALLOC\n");
4125
0
      #endif
4126
0
      }
4127
0
#line 4128 "cfg.tab.c"
4128
0
    break;
4129
4130
0
  case 185:
4131
0
#line 1192 "cfg.y"
4132
0
                                                      {
4133
      #ifdef HP_MALLOC
4134
      yyerror("number expected");
4135
      #else
4136
0
      LM_ERR("Cannot set parameter; Please recompile with support "
4137
0
        "for HP_MALLOC\n");
4138
0
      #endif
4139
0
      }
4140
0
#line 4141 "cfg.tab.c"
4141
0
    break;
4142
4143
0
  case 186:
4144
0
#line 1200 "cfg.y"
4145
0
                                                   { IFOR();
4146
      #ifdef HP_MALLOC
4147
      mem_warming_enabled = (yyvsp[0].intval);
4148
      #else
4149
0
      LM_ERR("Cannot set parameter; Please recompile with support"
4150
0
        " for HP_MALLOC\n");
4151
0
      #endif
4152
0
      }
4153
0
#line 4154 "cfg.tab.c"
4154
0
    break;
4155
4156
0
  case 187:
4157
0
#line 1208 "cfg.y"
4158
0
                                                  {
4159
      #ifdef HP_MALLOC
4160
      yyerror("number expected");
4161
      #else
4162
0
      LM_ERR("Cannot set parameter; Please recompile with support "
4163
0
        "for HP_MALLOC\n");
4164
0
      #endif
4165
0
      }
4166
0
#line 4167 "cfg.tab.c"
4167
0
    break;
4168
4169
0
  case 188:
4170
0
#line 1216 "cfg.y"
4171
0
                                                        { IFOR();
4172
      #ifdef HP_MALLOC
4173
      mem_warming_pattern_file = (yyvsp[0].strval);
4174
      #else
4175
0
      LM_ERR("Cannot set parameter; Please recompile with "
4176
0
        "support for HP_MALLOC\n");
4177
0
      #endif
4178
0
      }
4179
0
#line 4180 "cfg.tab.c"
4180
0
    break;
4181
4182
0
  case 189:
4183
0
#line 1224 "cfg.y"
4184
0
                                                       {
4185
      #ifdef HP_MALLOC
4186
      yyerror("string expected");
4187
      #else
4188
0
      LM_ERR("Cannot set parameter; Please recompile with support "
4189
0
        "for HP_MALLOC\n");
4190
0
      #endif
4191
0
      }
4192
0
#line 4193 "cfg.tab.c"
4193
0
    break;
4194
4195
0
  case 190:
4196
0
#line 1232 "cfg.y"
4197
0
                                                      { IFOR();
4198
      #ifdef HP_MALLOC
4199
      mem_warming_percentage = (yyvsp[0].intval);
4200
      #else
4201
0
      LM_ERR("Cannot set parameter; Please recompile with "
4202
0
        "support for HP_MALLOC\n");
4203
0
      #endif
4204
0
      }
4205
0
#line 4206 "cfg.tab.c"
4206
0
    break;
4207
4208
0
  case 191:
4209
0
#line 1240 "cfg.y"
4210
0
                                                     {
4211
      #ifdef HP_MALLOC
4212
      yyerror("number expected");
4213
      #else
4214
0
      LM_ERR("Cannot set parameter; Please recompile with support "
4215
0
        "for HP_MALLOC\n");
4216
0
      #endif
4217
0
      }
4218
0
#line 4219 "cfg.tab.c"
4219
0
    break;
4220
4221
0
  case 192:
4222
0
#line 1248 "cfg.y"
4223
0
                                            { IFOR();
4224
0
      rpm_mem_file = (yyvsp[0].strval);
4225
0
      }
4226
0
#line 4227 "cfg.tab.c"
4227
0
    break;
4228
4229
0
  case 193:
4230
0
#line 1251 "cfg.y"
4231
0
                                           { yyerror("string value expected"); }
4232
0
#line 4233 "cfg.tab.c"
4233
0
    break;
4234
4235
0
  case 194:
4236
0
#line 1252 "cfg.y"
4237
0
                                            { IFOR();
4238
0
      rpm_mem_size = (yyvsp[0].intval) * 1024 * 1024;
4239
0
      }
4240
0
#line 4241 "cfg.tab.c"
4241
0
    break;
4242
4243
0
  case 195:
4244
0
#line 1255 "cfg.y"
4245
0
                                           { yyerror("int value expected"); }
4246
0
#line 4247 "cfg.tab.c"
4247
0
    break;
4248
4249
0
  case 196:
4250
0
#line 1256 "cfg.y"
4251
0
                                       { IFOR(); memlog=(yyvsp[0].intval); memdump=(yyvsp[0].intval); }
4252
0
#line 4253 "cfg.tab.c"
4253
0
    break;
4254
4255
0
  case 197:
4256
0
#line 1257 "cfg.y"
4257
0
                                     { yyerror("int value expected"); }
4258
0
#line 4259 "cfg.tab.c"
4259
0
    break;
4260
4261
0
  case 198:
4262
0
#line 1258 "cfg.y"
4263
0
                                                { IFOR(); shm_memlog_size=(yyvsp[0].intval);}
4264
0
#line 4265 "cfg.tab.c"
4265
0
    break;
4266
4267
0
  case 199:
4268
0
#line 1259 "cfg.y"
4269
0
                                              { yyerror("int value expected"); }
4270
0
#line 4271 "cfg.tab.c"
4271
0
    break;
4272
4273
0
  case 200:
4274
0
#line 1260 "cfg.y"
4275
0
                                        { IFOR(); memdump=(yyvsp[0].intval); }
4276
0
#line 4277 "cfg.tab.c"
4277
0
    break;
4278
4279
0
  case 201:
4280
0
#line 1261 "cfg.y"
4281
0
                                      { yyerror("int value expected"); }
4282
0
#line 4283 "cfg.tab.c"
4283
0
    break;
4284
4285
0
  case 202:
4286
0
#line 1262 "cfg.y"
4287
0
                                                {  IFOR();execmsgthreshold=(yyvsp[0].intval); }
4288
0
#line 4289 "cfg.tab.c"
4289
0
    break;
4290
4291
0
  case 203:
4292
0
#line 1263 "cfg.y"
4293
0
                                               { yyerror("int value expected"); }
4294
0
#line 4295 "cfg.tab.c"
4295
0
    break;
4296
4297
0
  case 204:
4298
0
#line 1264 "cfg.y"
4299
0
                                                      { IFOR(); worker_reactor_timeout=(yyvsp[0].intval); }
4300
0
#line 4301 "cfg.tab.c"
4301
0
    break;
4302
4303
0
  case 205:
4304
0
#line 1265 "cfg.y"
4305
0
                                                     { yyerror("int value expected"); }
4306
0
#line 4307 "cfg.tab.c"
4307
0
    break;
4308
4309
0
  case 206:
4310
0
#line 1266 "cfg.y"
4311
0
                                                { IFOR(); execdnsthreshold=(yyvsp[0].intval); }
4312
0
#line 4313 "cfg.tab.c"
4313
0
    break;
4314
4315
0
  case 207:
4316
0
#line 1267 "cfg.y"
4317
0
                                               { yyerror("int value expected"); }
4318
0
#line 4319 "cfg.tab.c"
4319
0
    break;
4320
4321
0
  case 208:
4322
0
#line 1268 "cfg.y"
4323
0
                                            { IFOR(); tcpthreshold=(yyvsp[0].intval); }
4324
0
#line 4325 "cfg.tab.c"
4325
0
    break;
4326
4327
0
  case 209:
4328
0
#line 1269 "cfg.y"
4329
0
                                           { yyerror("int value expected"); }
4330
0
#line 4331 "cfg.tab.c"
4331
0
    break;
4332
4333
0
  case 210:
4334
0
#line 1270 "cfg.y"
4335
0
                                                   { IFOR();
4336
0
      #ifdef STATISTICS
4337
0
      if ((yyvsp[0].intval) < 0 || (yyvsp[0].intval) > 100)
4338
0
        yyerror("SHM threshold has to be a percentage between"
4339
0
          " 0 and 100");
4340
0
      event_shm_threshold=(yyvsp[0].intval);
4341
      #else
4342
      yyerror("statistics support not compiled in");
4343
      #endif /* STATISTICS */
4344
0
      }
4345
0
#line 4346 "cfg.tab.c"
4346
0
    break;
4347
4348
0
  case 211:
4349
0
#line 1280 "cfg.y"
4350
0
                                                  { yyerror("int value expected"); }
4351
0
#line 4352 "cfg.tab.c"
4352
0
    break;
4353
4354
0
  case 212:
4355
0
#line 1281 "cfg.y"
4356
0
                                                   { IFOR();
4357
      #ifdef PKG_MALLOC
4358
      #ifdef STATISTICS
4359
      if ((yyvsp[0].intval) < 0 || (yyvsp[0].intval) > 100)
4360
        yyerror("PKG threshold has to be a percentage between "
4361
          "0 and 100");
4362
      event_pkg_threshold=(yyvsp[0].intval);
4363
      #else
4364
      yyerror("statistics support not compiled in");
4365
      #endif
4366
      #else
4367
0
      yyerror("pkg_malloc support not compiled in");
4368
0
      #endif
4369
0
      }
4370
0
#line 4371 "cfg.tab.c"
4371
0
    break;
4372
4373
0
  case 213:
4374
0
#line 1295 "cfg.y"
4375
0
                                                  { yyerror("int value expected"); }
4376
0
#line 4377 "cfg.tab.c"
4377
0
    break;
4378
4379
0
  case 214:
4380
0
#line 1296 "cfg.y"
4381
0
                                               { IFOR(); query_buffer_size=(yyvsp[0].intval); }
4382
0
#line 4383 "cfg.tab.c"
4383
0
    break;
4384
4385
0
  case 215:
4386
0
#line 1297 "cfg.y"
4387
0
                                              { yyerror("int value expected"); }
4388
0
#line 4389 "cfg.tab.c"
4389
0
    break;
4390
4391
0
  case 216:
4392
0
#line 1298 "cfg.y"
4393
0
                                              { IFOR(); query_flush_time=(yyvsp[0].intval); }
4394
0
#line 4395 "cfg.tab.c"
4395
0
    break;
4396
4397
0
  case 217:
4398
0
#line 1299 "cfg.y"
4399
0
                                             { yyerror("int value expected"); }
4400
0
#line 4401 "cfg.tab.c"
4401
0
    break;
4402
4403
0
  case 218:
4404
0
#line 1300 "cfg.y"
4405
0
                                           { IFOR(); sip_warning=(yyvsp[0].intval); }
4406
0
#line 4407 "cfg.tab.c"
4407
0
    break;
4408
4409
0
  case 219:
4410
0
#line 1301 "cfg.y"
4411
0
                                          { yyerror("boolean value expected"); }
4412
0
#line 4413 "cfg.tab.c"
4413
0
    break;
4414
4415
0
  case 220:
4416
0
#line 1302 "cfg.y"
4417
0
                                          { IFOR(); chroot_dir=(yyvsp[0].strval); }
4418
0
#line 4419 "cfg.tab.c"
4419
0
    break;
4420
4421
0
  case 221:
4422
0
#line 1303 "cfg.y"
4423
0
                                          { IFOR(); chroot_dir=(yyvsp[0].strval); }
4424
0
#line 4425 "cfg.tab.c"
4425
0
    break;
4426
4427
0
  case 222:
4428
0
#line 1304 "cfg.y"
4429
0
                                          { yyerror("string value expected"); }
4430
0
#line 4431 "cfg.tab.c"
4431
0
    break;
4432
4433
0
  case 223:
4434
0
#line 1305 "cfg.y"
4435
0
                                        { IFOR(); working_dir=(yyvsp[0].strval); }
4436
0
#line 4437 "cfg.tab.c"
4437
0
    break;
4438
4439
0
  case 224:
4440
0
#line 1306 "cfg.y"
4441
0
                                        { IFOR(); working_dir=(yyvsp[0].strval); }
4442
0
#line 4443 "cfg.tab.c"
4443
0
    break;
4444
4445
0
  case 225:
4446
0
#line 1307 "cfg.y"
4447
0
                                        { yyerror("string value expected"); }
4448
0
#line 4449 "cfg.tab.c"
4449
0
    break;
4450
4451
0
  case 226:
4452
0
#line 1308 "cfg.y"
4453
0
                                      { IFOR(); mhomed=(yyvsp[0].intval); }
4454
0
#line 4455 "cfg.tab.c"
4455
0
    break;
4456
4457
0
  case 227:
4458
0
#line 1309 "cfg.y"
4459
0
                                     { yyerror("boolean value expected"); }
4460
0
#line 4461 "cfg.tab.c"
4461
0
    break;
4462
4463
0
  case 228:
4464
0
#line 1310 "cfg.y"
4465
0
                                       { IFOR();
4466
0
                  io_poll_method=get_poll_type((yyvsp[0].strval));
4467
0
                  if (io_poll_method==POLL_NONE){
4468
0
                    LM_CRIT("bad poll method name:"
4469
0
                      " %s\n, try one of %s.\n",
4470
0
                      (yyvsp[0].strval), poll_support);
4471
0
                    yyerror("bad poll_method "
4472
0
                      "value");
4473
0
                  }
4474
0
                }
4475
0
#line 4476 "cfg.tab.c"
4476
0
    break;
4477
4478
0
  case 229:
4479
0
#line 1320 "cfg.y"
4480
0
                                           { IFOR();
4481
0
                  io_poll_method=get_poll_type((yyvsp[0].strval));
4482
0
                  if (io_poll_method==POLL_NONE){
4483
0
                    LM_CRIT("bad poll method name:"
4484
0
                      " %s\n, try one of %s.\n",
4485
0
                      (yyvsp[0].strval), poll_support);
4486
0
                    yyerror("bad poll_method "
4487
0
                      "value");
4488
0
                  }
4489
0
                  }
4490
0
#line 4491 "cfg.tab.c"
4491
0
    break;
4492
4493
0
  case 230:
4494
0
#line 1330 "cfg.y"
4495
0
                                          { yyerror("poll method name expected"); }
4496
0
#line 4497 "cfg.tab.c"
4497
0
    break;
4498
4499
0
  case 231:
4500
0
#line 1331 "cfg.y"
4501
0
                                                  { IFOR();
4502
0
        if ((yyvsp[0].intval) < TCP_ALIAS_NEVER || (yyvsp[0].intval) > TCP_ALIAS_ALWAYS)
4503
0
          yyerror("invalid 'tcp_accept_aliases' value");
4504
0
        tcp_accept_aliases=(yyvsp[0].intval);
4505
0
    }
4506
0
#line 4507 "cfg.tab.c"
4507
0
    break;
4508
4509
0
  case 232:
4510
0
#line 1336 "cfg.y"
4511
0
                                                 { yyerror("boolean value expected"); }
4512
0
#line 4513 "cfg.tab.c"
4513
0
    break;
4514
4515
0
  case 233:
4516
0
#line 1337 "cfg.y"
4517
0
                                           { IFOR();
4518
0
        tcp_workers_no=(yyvsp[0].intval);
4519
0
    }
4520
0
#line 4521 "cfg.tab.c"
4521
0
    break;
4522
4523
0
  case 234:
4524
0
#line 1340 "cfg.y"
4525
0
                                                                      { IFOR();
4526
0
        tcp_workers_no=(yyvsp[-2].intval);
4527
0
        tcp_auto_scaling_profile=(yyvsp[0].strval);
4528
0
    }
4529
0
#line 4530 "cfg.tab.c"
4530
0
    break;
4531
4532
0
  case 235:
4533
0
#line 1344 "cfg.y"
4534
0
                                          { yyerror("number expected"); }
4535
0
#line 4536 "cfg.tab.c"
4536
0
    break;
4537
4538
0
  case 236:
4539
0
#line 1345 "cfg.y"
4540
0
                                                   { IFOR();
4541
0
        if ((yyvsp[0].intval) <= 0)
4542
0
          yyerror("invalid 'tcp_connect_timeout' (value too low!)");
4543
0
        tcp_connect_timeout=(yyvsp[0].intval);
4544
0
    }
4545
0
#line 4546 "cfg.tab.c"
4546
0
    break;
4547
4548
0
  case 237:
4549
0
#line 1350 "cfg.y"
4550
0
                                                  { yyerror("number expected"); }
4551
0
#line 4552 "cfg.tab.c"
4552
0
    break;
4553
4554
0
  case 238:
4555
0
#line 1351 "cfg.y"
4556
0
                                                { IFOR();
4557
0
        tcp_con_lifetime=(yyvsp[0].intval);
4558
0
    }
4559
0
#line 4560 "cfg.tab.c"
4560
0
    break;
4561
4562
0
  case 239:
4563
0
#line 1354 "cfg.y"
4564
0
                                               { yyerror("number expected"); }
4565
0
#line 4566 "cfg.tab.c"
4566
0
    break;
4567
4568
0
  case 240:
4569
0
#line 1355 "cfg.y"
4570
0
                                                  { IFOR();
4571
0
        tcp_socket_backlog=(yyvsp[0].intval);
4572
0
    }
4573
0
#line 4574 "cfg.tab.c"
4574
0
    break;
4575
4576
0
  case 241:
4577
0
#line 1358 "cfg.y"
4578
0
                                                 { yyerror("number expected"); }
4579
0
#line 4580 "cfg.tab.c"
4580
0
    break;
4581
4582
0
  case 242:
4583
0
#line 1359 "cfg.y"
4584
0
                                                   { IFOR();
4585
0
        tcp_max_connections=(yyvsp[0].intval);
4586
0
    }
4587
0
#line 4588 "cfg.tab.c"
4588
0
    break;
4589
4590
0
  case 243:
4591
0
#line 1362 "cfg.y"
4592
0
                                                  { yyerror("number expected"); }
4593
0
#line 4594 "cfg.tab.c"
4594
0
    break;
4595
4596
0
  case 244:
4597
0
#line 1363 "cfg.y"
4598
0
                                                 { IFOR();
4599
0
        tcp_no_new_conn_bflag =
4600
0
          get_flag_id_by_name(FLAG_TYPE_BRANCH, (yyvsp[0].strval), 0);
4601
0
        if (!flag_in_range( (flag_t)tcp_no_new_conn_bflag ) )
4602
0
          yyerror("invalid TCP no_new_conn Branch Flag");
4603
0
        flag_idx2mask( &tcp_no_new_conn_bflag );
4604
0
    }
4605
0
#line 4606 "cfg.tab.c"
4606
0
    break;
4607
4608
0
  case 245:
4609
0
#line 1370 "cfg.y"
4610
0
                                                    { yyerror("number value expected"); }
4611
0
#line 4612 "cfg.tab.c"
4612
0
    break;
4613
4614
0
  case 246:
4615
0
#line 1371 "cfg.y"
4616
0
                                                   { IFOR();
4617
0
        tcp_no_new_conn_rplflag =
4618
0
          get_flag_id_by_name(FLAG_TYPE_MSG, (yyvsp[0].strval), 0);
4619
0
        if (!flag_in_range( (flag_t)tcp_no_new_conn_rplflag ) )
4620
0
          yyerror("invalid TCP no_new_conn RePLy Flag");
4621
0
        flag_idx2mask( &tcp_no_new_conn_rplflag );
4622
0
    }
4623
0
#line 4624 "cfg.tab.c"
4624
0
    break;
4625
4626
0
  case 247:
4627
0
#line 1378 "cfg.y"
4628
0
                                                      { yyerror("number value expected"); }
4629
0
#line 4630 "cfg.tab.c"
4630
0
    break;
4631
4632
0
  case 248:
4633
0
#line 1380 "cfg.y"
4634
0
                                             { IFOR();
4635
0
        tcp_keepalive=!!(yyvsp[0].intval);
4636
0
    }
4637
0
#line 4638 "cfg.tab.c"
4638
0
    break;
4639
4640
0
  case 249:
4641
0
#line 1383 "cfg.y"
4642
0
                                            { yyerror("boolean value expected"); }
4643
0
#line 4644 "cfg.tab.c"
4644
0
    break;
4645
4646
0
  case 250:
4647
0
#line 1384 "cfg.y"
4648
0
                                                { IFOR();
4649
0
        tcp_max_msg_time=(yyvsp[0].intval);
4650
0
    }
4651
0
#line 4652 "cfg.tab.c"
4652
0
    break;
4653
4654
0
  case 251:
4655
0
#line 1387 "cfg.y"
4656
0
                                               { yyerror("number expected"); }
4657
0
#line 4658 "cfg.tab.c"
4658
0
    break;
4659
4660
0
  case 252:
4661
0
#line 1388 "cfg.y"
4662
0
                                           { IFOR();
4663
0
        if ((yyvsp[0].intval) <= 0)
4664
0
          yyerror("invalid 'tcp_threads' value");
4665
0
        tcp_threads=(yyvsp[0].intval);
4666
0
    }
4667
0
#line 4668 "cfg.tab.c"
4668
0
    break;
4669
4670
0
  case 253:
4671
0
#line 1393 "cfg.y"
4672
0
                                          {
4673
0
      yyerror("number value expected");
4674
0
    }
4675
0
#line 4676 "cfg.tab.c"
4676
0
    break;
4677
4678
0
  case 254:
4679
0
#line 1396 "cfg.y"
4680
0
                                                        { IFOR();
4681
      #ifndef HAVE_TCP_KEEPCNT
4682
        warn("cannot be enabled TCP_KEEPCOUNT (no OS support)");
4683
      #else
4684
0
        tcp_keepcount=(yyvsp[0].intval);
4685
0
      #endif
4686
0
    }
4687
0
#line 4688 "cfg.tab.c"
4688
0
    break;
4689
4690
0
  case 255:
4691
0
#line 1403 "cfg.y"
4692
0
                                            { yyerror("int value expected"); }
4693
0
#line 4694 "cfg.tab.c"
4694
0
    break;
4695
4696
0
  case 256:
4697
0
#line 1404 "cfg.y"
4698
0
                                                        { IFOR();
4699
      #ifndef HAVE_TCP_KEEPIDLE
4700
        warn("cannot be enabled TCP_KEEPIDLE (no OS support)");
4701
      #else
4702
0
        tcp_keepidle=(yyvsp[0].intval);
4703
0
      #endif
4704
0
    }
4705
0
#line 4706 "cfg.tab.c"
4706
0
    break;
4707
4708
0
  case 257:
4709
0
#line 1411 "cfg.y"
4710
0
                                           { yyerror("int value expected"); }
4711
0
#line 4712 "cfg.tab.c"
4712
0
    break;
4713
4714
0
  case 258:
4715
0
#line 1412 "cfg.y"
4716
0
                                                { IFOR();
4717
      #ifndef HAVE_TCP_KEEPINTVL
4718
        warn("cannot be enabled TCP_KEEPINTERVAL (no OS support)");
4719
      #else
4720
0
        tcp_keepinterval=(yyvsp[0].intval);
4721
0
       #endif
4722
0
    }
4723
0
#line 4724 "cfg.tab.c"
4724
0
    break;
4725
4726
0
  case 259:
4727
0
#line 1419 "cfg.y"
4728
0
                                               { yyerror("int value expected"); }
4729
0
#line 4730 "cfg.tab.c"
4730
0
    break;
4731
4732
0
  case 260:
4733
0
#line 1420 "cfg.y"
4734
0
                                                { IFOR();
4735
0
              server_signature=(yyvsp[0].intval); }
4736
0
#line 4737 "cfg.tab.c"
4737
0
    break;
4738
4739
0
  case 261:
4740
0
#line 1422 "cfg.y"
4741
0
                                               { yyerror("boolean value expected"); }
4742
0
#line 4743 "cfg.tab.c"
4743
0
    break;
4744
4745
0
  case 262:
4746
0
#line 1423 "cfg.y"
4747
0
                                             { IFOR();
4748
0
              server_header->s=(yyvsp[0].strval);
4749
0
              server_header->len=strlen((yyvsp[0].strval));
4750
0
              }
4751
0
#line 4752 "cfg.tab.c"
4752
0
    break;
4753
4754
0
  case 263:
4755
0
#line 1427 "cfg.y"
4756
0
                                            { yyerror("string value expected"); }
4757
0
#line 4758 "cfg.tab.c"
4758
0
    break;
4759
4760
0
  case 264:
4761
0
#line 1428 "cfg.y"
4762
0
                                                 { user_agent_header->s=(yyvsp[0].strval);
4763
0
      user_agent_header->len=strlen((yyvsp[0].strval));
4764
0
                  }
4765
0
#line 4766 "cfg.tab.c"
4766
0
    break;
4767
4768
0
  case 265:
4769
0
#line 1431 "cfg.y"
4770
0
                                                { yyerror("string value expected"); }
4771
0
#line 4772 "cfg.tab.c"
4772
0
    break;
4773
4774
0
  case 266:
4775
0
#line 1432 "cfg.y"
4776
0
                                                 { IFOR();
4777
0
              pv_print_buf_size = (yyvsp[0].intval); }
4778
0
#line 4779 "cfg.tab.c"
4779
0
    break;
4780
4781
0
  case 267:
4782
0
#line 1434 "cfg.y"
4783
0
                                                { yyerror("number expected"); }
4784
0
#line 4785 "cfg.tab.c"
4785
0
    break;
4786
4787
0
  case 268:
4788
0
#line 1435 "cfg.y"
4789
0
                                             { IFOR();
4790
0
              xlog_buf_size = (yyvsp[0].intval); }
4791
0
#line 4792 "cfg.tab.c"
4792
0
    break;
4793
4794
0
  case 269:
4795
0
#line 1437 "cfg.y"
4796
0
                                                { IFOR();
4797
0
              xlog_force_color = (yyvsp[0].intval); }
4798
0
#line 4799 "cfg.tab.c"
4799
0
    break;
4800
4801
0
  case 270:
4802
0
#line 1439 "cfg.y"
4803
0
                                                { IFOR();
4804
0
              xlog_print_level = (yyvsp[0].intval); }
4805
0
#line 4806 "cfg.tab.c"
4806
0
    break;
4807
4808
0
  case 271:
4809
0
#line 1441 "cfg.y"
4810
0
                                            { yyerror("number expected"); }
4811
0
#line 4812 "cfg.tab.c"
4812
0
    break;
4813
4814
0
  case 272:
4815
0
#line 1442 "cfg.y"
4816
0
                                               { yyerror("boolean value expected"); }
4817
0
#line 4818 "cfg.tab.c"
4818
0
    break;
4819
4820
0
  case 273:
4821
0
#line 1443 "cfg.y"
4822
0
                                               { yyerror("number expected"); }
4823
0
#line 4824 "cfg.tab.c"
4824
0
    break;
4825
4826
0
  case 274:
4827
0
#line 1444 "cfg.y"
4828
0
                                           { IFOR();
4829
0
              *xlog_level = (yyvsp[0].intval); }
4830
0
#line 4831 "cfg.tab.c"
4831
0
    break;
4832
4833
0
  case 275:
4834
0
#line 1446 "cfg.y"
4835
0
                                         { yyerror("number expected"); }
4836
0
#line 4837 "cfg.tab.c"
4837
0
    break;
4838
4839
0
  case 276:
4840
0
#line 1447 "cfg.y"
4841
0
                                          { IFOR();
4842
0
              for (lst_tmp = (yyvsp[0].sockid); lst_tmp; lst_tmp = lst_tmp->next) {
4843
0
                if (add_listening_socket(lst_tmp)!=0){
4844
0
                  LM_CRIT("cfg. parser: failed"
4845
0
                      " to add listening socket\n");
4846
0
                  break;
4847
0
                }
4848
0
              }
4849
0
            }
4850
0
#line 4851 "cfg.tab.c"
4851
0
    break;
4852
4853
0
  case 277:
4854
0
#line 1456 "cfg.y"
4855
0
                                      { yyerror("ip address or hostname "
4856
0
            "expected (use quotes if the hostname includes"
4857
0
            " config keywords)"); }
4858
0
#line 4859 "cfg.tab.c"
4859
0
    break;
4860
4861
0
  case 278:
4862
0
#line 1459 "cfg.y"
4863
0
                                                           { IFOR();
4864
              /* convert STIRNG ($3) to an ID */
4865
              /* update the memstats type for each module */
4866
0
              #ifndef SHM_EXTRA_STATS
4867
0
                LM_CRIT("SHM_EXTRA_STATS not defined");
4868
0
                YYABORT;
4869
              #else
4870
4871
              #ifdef SHM_SHOW_DEFAULT_GROUP
4872
              if(strcmp((yyvsp[-2].strval), "default") == 0){
4873
                LM_CRIT("default group  name is not allowed");
4874
                YYABORT;
4875
              }
4876
              #endif
4877
4878
              for(tmp_mod = mod_names; tmp_mod; tmp_mod=tmp_mod->next){
4879
                if(strcmp((yyvsp[-2].strval), tmp_mod->s) == 0){
4880
                  LM_CRIT("The same mem-group name is used twice: [%s] [%s]\n", (yyvsp[-2].strval), tmp_mod->s);
4881
                  YYABORT;
4882
                }
4883
              }
4884
4885
              tmp_mod = pkg_malloc(sizeof(struct multi_str));
4886
              if(!tmp_mod){
4887
                LM_CRIT("out of pkg memory");
4888
                YYABORT;
4889
              }
4890
4891
              tmp_mod->s = (yyvsp[-2].strval);
4892
              tmp_mod->next = mod_names;
4893
              mod_names = tmp_mod;
4894
              for (tmp_mod = (yyvsp[0].multistr); tmp_mod; tmp_mod = tmp_mod->next){
4895
                if(set_mem_idx(tmp_mod->s, mem_free_idx)){
4896
                  YYABORT;
4897
                }
4898
              }
4899
4900
              mem_free_idx++;
4901
4902
              if(alloc_group_stat()){
4903
                YYABORT;
4904
              }
4905
              #endif
4906
0
            }
4907
0
#line 4908 "cfg.tab.c"
4908
0
    break;
4909
4910
0
  case 279:
4911
0
#line 1503 "cfg.y"
4912
0
                                                    { yyerror("invalid or no module specified"); }
4913
0
#line 4914 "cfg.tab.c"
4914
0
    break;
4915
4916
0
  case 280:
4917
0
#line 1504 "cfg.y"
4918
0
                                      { IFOR();
4919
0
              for(lst_tmp=(yyvsp[0].sockid); lst_tmp; lst_tmp=lst_tmp->next)
4920
0
                add_alias(lst_tmp->name, strlen(lst_tmp->name),
4921
0
                      lst_tmp->port, lst_tmp->proto, si_subdomain_to_alias_flag(lst_tmp->flags));
4922
0
                }
4923
0
#line 4924 "cfg.tab.c"
4924
0
    break;
4925
4926
0
  case 281:
4927
0
#line 1509 "cfg.y"
4928
0
                                      { yyerror("hostname expected (use quotes"
4929
0
              " if the hostname includes config keywords)"); }
4930
0
#line 4931 "cfg.tab.c"
4931
0
    break;
4932
4933
0
  case 282:
4934
0
#line 1511 "cfg.y"
4935
0
                                            { IFOR();
4936
0
                auto_aliases=(yyvsp[0].intval); }
4937
0
#line 4938 "cfg.tab.c"
4938
0
    break;
4939
4940
0
  case 283:
4941
0
#line 1513 "cfg.y"
4942
0
                                            { yyerror("number  expected"); }
4943
0
#line 4944 "cfg.tab.c"
4944
0
    break;
4945
4946
0
  case 284:
4947
0
#line 1514 "cfg.y"
4948
0
                                                     { IFOR();
4949
0
                if ((yyvsp[0].strval)) {
4950
0
                  default_global_address->s=(yyvsp[0].strval);
4951
0
                  default_global_address->len=strlen((yyvsp[0].strval));
4952
0
                }
4953
0
                }
4954
0
#line 4955 "cfg.tab.c"
4955
0
    break;
4956
4957
0
  case 285:
4958
0
#line 1520 "cfg.y"
4959
0
                                                 {yyerror("ip address or hostname "
4960
0
                        "expected"); }
4961
0
#line 4962 "cfg.tab.c"
4962
0
    break;
4963
4964
0
  case 286:
4965
0
#line 1522 "cfg.y"
4966
0
                                               { IFOR();
4967
0
                tmp = int2str((yyvsp[0].intval), &i_tmp);
4968
0
                if (i_tmp > default_global_port->len)
4969
0
                  default_global_port->s =
4970
0
                  pkg_realloc(default_global_port->s, i_tmp);
4971
0
                if (!default_global_port->s) {
4972
0
                  LM_CRIT("cfg. parser: out of memory.\n");
4973
0
                  YYABORT;
4974
0
                } else {
4975
0
                  default_global_port->len = i_tmp;
4976
0
                  memcpy(default_global_port->s, tmp,
4977
0
                      default_global_port->len);
4978
0
                }
4979
0
                }
4980
0
#line 4981 "cfg.tab.c"
4981
0
    break;
4982
4983
0
  case 287:
4984
0
#line 1536 "cfg.y"
4985
0
                                             {yyerror("ip address or hostname "
4986
0
                        "expected"); }
4987
0
#line 4988 "cfg.tab.c"
4988
0
    break;
4989
4990
0
  case 288:
4991
0
#line 1538 "cfg.y"
4992
0
                                            { IFOR();
4993
0
                    disable_core_dump=(yyvsp[0].intval);
4994
0
                  }
4995
0
#line 4996 "cfg.tab.c"
4996
0
    break;
4997
4998
0
  case 289:
4999
0
#line 1541 "cfg.y"
5000
0
                                           { yyerror("boolean value expected"); }
5001
0
#line 5002 "cfg.tab.c"
5002
0
    break;
5003
5004
0
  case 290:
5005
0
#line 1542 "cfg.y"
5006
0
                                             { IFOR();
5007
0
                    open_files_limit=(yyvsp[0].intval);
5008
0
                  }
5009
0
#line 5010 "cfg.tab.c"
5010
0
    break;
5011
5012
0
  case 291:
5013
0
#line 1545 "cfg.y"
5014
0
                                            { yyerror("number expected"); }
5015
0
#line 5016 "cfg.tab.c"
5016
0
    break;
5017
5018
0
  case 292:
5019
0
#line 1546 "cfg.y"
5020
0
                                              { IFOR();
5021
                #ifdef USE_MCAST
5022
                    mcast_loopback=(yyvsp[0].intval);
5023
                #else
5024
0
                  warn("no multicast support compiled in");
5025
0
                #endif
5026
0
      }
5027
0
#line 5028 "cfg.tab.c"
5028
0
    break;
5029
5030
0
  case 293:
5031
0
#line 1553 "cfg.y"
5032
0
                                             { yyerror("boolean value expected"); }
5033
0
#line 5034 "cfg.tab.c"
5034
0
    break;
5035
5036
0
  case 294:
5037
0
#line 1554 "cfg.y"
5038
0
                                         { IFOR();
5039
                #ifdef USE_MCAST
5040
                    mcast_ttl=(yyvsp[0].intval);
5041
                #else
5042
0
                  warn("no multicast support compiled in");
5043
0
                #endif
5044
0
      }
5045
0
#line 5046 "cfg.tab.c"
5046
0
    break;
5047
5048
0
  case 295:
5049
0
#line 1561 "cfg.y"
5050
0
                                        { yyerror("number expected as tos"); }
5051
0
#line 5052 "cfg.tab.c"
5052
0
    break;
5053
5054
0
  case 296:
5055
0
#line 1562 "cfg.y"
5056
0
                                   { IFOR(); tos = (yyvsp[0].intval);
5057
0
              if (tos<0)
5058
0
                yyerror("invalid tos value");
5059
0
     }
5060
0
#line 5061 "cfg.tab.c"
5061
0
    break;
5062
5063
0
  case 297:
5064
0
#line 1566 "cfg.y"
5065
0
                               { IFOR();
5066
0
              if (strcasecmp((yyvsp[0].strval),"IPTOS_LOWDELAY")) {
5067
0
                tos=IPTOS_LOWDELAY;
5068
0
              } else if (strcasecmp((yyvsp[0].strval),"IPTOS_THROUGHPUT")) {
5069
0
                tos=IPTOS_THROUGHPUT;
5070
0
              } else if (strcasecmp((yyvsp[0].strval),"IPTOS_RELIABILITY")) {
5071
0
                tos=IPTOS_RELIABILITY;
5072
0
#if defined(IPTOS_MINCOST)
5073
0
              } else if (strcasecmp((yyvsp[0].strval),"IPTOS_MINCOST")) {
5074
0
                tos=IPTOS_MINCOST;
5075
0
#endif
5076
0
#if defined(IPTOS_LOWCOST)
5077
0
              } else if (strcasecmp((yyvsp[0].strval),"IPTOS_LOWCOST")) {
5078
0
                tos=IPTOS_LOWCOST;
5079
0
#endif
5080
0
              } else {
5081
0
                yyerror("invalid tos value - allowed: "
5082
0
                  "IPTOS_LOWDELAY,IPTOS_THROUGHPUT,"
5083
0
                  "IPTOS_RELIABILITY"
5084
0
#if defined(IPTOS_LOWCOST)
5085
0
                  ",IPTOS_LOWCOST"
5086
0
#endif
5087
0
#if defined(IPTOS_MINCOST)
5088
0
                  ",IPTOS_MINCOST"
5089
0
#endif
5090
0
                  "\n");
5091
0
              }
5092
0
     }
5093
0
#line 5094 "cfg.tab.c"
5094
0
    break;
5095
5096
0
  case 298:
5097
0
#line 1594 "cfg.y"
5098
0
                                  { yyerror("number expected"); }
5099
0
#line 5100 "cfg.tab.c"
5100
0
    break;
5101
5102
0
  case 299:
5103
0
#line 1595 "cfg.y"
5104
0
                                             {IFOR();}
5105
0
#line 5106 "cfg.tab.c"
5106
0
    break;
5107
5108
0
  case 300:
5109
0
#line 1596 "cfg.y"
5110
0
                                     { yyerror("string value expected"); }
5111
0
#line 5112 "cfg.tab.c"
5112
0
    break;
5113
5114
0
  case 301:
5115
0
#line 1597 "cfg.y"
5116
0
                                                    { IFOR();
5117
0
                    disable_dns_failover=(yyvsp[0].intval);
5118
0
                  }
5119
0
#line 5120 "cfg.tab.c"
5120
0
    break;
5121
5122
0
  case 302:
5123
0
#line 1600 "cfg.y"
5124
0
                                             { yyerror("boolean value expected"); }
5125
0
#line 5126 "cfg.tab.c"
5126
0
    break;
5127
5128
0
  case 303:
5129
0
#line 1601 "cfg.y"
5130
0
                                                     { IFOR();
5131
0
                    disable_dns_blacklist=(yyvsp[0].intval);
5132
0
                  }
5133
0
#line 5134 "cfg.tab.c"
5134
0
    break;
5135
5136
0
  case 304:
5137
0
#line 1604 "cfg.y"
5138
0
                                              { yyerror("boolean value expected"); }
5139
0
#line 5140 "cfg.tab.c"
5140
0
    break;
5141
5142
0
  case 305:
5143
0
#line 1605 "cfg.y"
5144
0
                                                                   { IFOR();
5145
0
        s_tmp.s = (yyvsp[-3].strval);
5146
0
        s_tmp.len = strlen((yyvsp[-3].strval));
5147
0
        if (create_bl_head(_str("script"), (yyvsp[-1].intval),
5148
0
            bl_head, bl_tail, &s_tmp)==0) {
5149
0
          yyerror("failed to create blacklist\n");
5150
0
          YYABORT;
5151
0
        }
5152
0
        bl_head = bl_tail = NULL;
5153
0
        }
5154
0
#line 5155 "cfg.tab.c"
5155
0
    break;
5156
5157
0
  case 306:
5158
0
#line 1615 "cfg.y"
5159
0
                                                  { IFOR();
5160
0
        s_tmp.s = (yyvsp[-1].strval);
5161
0
        s_tmp.len = strlen((yyvsp[-1].strval));
5162
0
        if (create_bl_head(_str("script"), BL_READONLY_LIST,
5163
0
            bl_head, bl_tail, &s_tmp)==0) {
5164
0
          yyerror("failed to create blacklist\n");
5165
0
          YYABORT;
5166
0
        }
5167
0
        bl_head = bl_tail = NULL;
5168
0
        }
5169
0
#line 5170 "cfg.tab.c"
5170
0
    break;
5171
5172
0
  case 307:
5173
0
#line 1625 "cfg.y"
5174
0
                                                     { IFOR();
5175
0
        sl_fwd_disabled=(yyvsp[0].intval); }
5176
0
#line 5177 "cfg.tab.c"
5177
0
    break;
5178
5179
0
  case 308:
5180
0
#line 1627 "cfg.y"
5181
0
                                                { IFOR();
5182
0
        db_version_table=(yyvsp[0].strval); }
5183
0
#line 5184 "cfg.tab.c"
5184
0
    break;
5185
5186
0
  case 309:
5187
0
#line 1629 "cfg.y"
5188
0
                                               { yyerror("string value expected"); }
5189
0
#line 5190 "cfg.tab.c"
5190
0
    break;
5191
5192
0
  case 310:
5193
0
#line 1630 "cfg.y"
5194
0
                                              { IFOR();
5195
0
        db_default_url=(yyvsp[0].strval); }
5196
0
#line 5197 "cfg.tab.c"
5197
0
    break;
5198
5199
0
  case 311:
5200
0
#line 1632 "cfg.y"
5201
0
                                             { yyerror("string value expected"); }
5202
0
#line 5203 "cfg.tab.c"
5203
0
    break;
5204
5205
0
  case 312:
5206
0
#line 1633 "cfg.y"
5207
0
                                                        { IFOR();
5208
0
        db_max_async_connections=(yyvsp[0].intval); }
5209
0
#line 5210 "cfg.tab.c"
5210
0
    break;
5211
5212
0
  case 313:
5213
0
#line 1635 "cfg.y"
5214
0
                                                       {
5215
0
        yyerror("integer value expected");
5216
0
        }
5217
0
#line 5218 "cfg.tab.c"
5218
0
    break;
5219
5220
0
  case 314:
5221
0
#line 1638 "cfg.y"
5222
0
                                                       { IFOR();
5223
0
        disable_503_translation=(yyvsp[0].intval); }
5224
0
#line 5225 "cfg.tab.c"
5225
0
    break;
5226
5227
0
  case 315:
5228
0
#line 1640 "cfg.y"
5229
0
                                                      {
5230
0
        yyerror("integer value expected");
5231
0
        }
5232
0
#line 5233 "cfg.tab.c"
5233
0
    break;
5234
5235
0
  case 316:
5236
0
#line 1643 "cfg.y"
5237
0
                                                                    {}
5238
0
#line 5239 "cfg.tab.c"
5239
0
    break;
5240
5241
0
  case 317:
5242
0
#line 1644 "cfg.y"
5243
0
                                                   {
5244
0
        yyerror("bad auto-scaling profile definition");
5245
0
        }
5246
0
#line 5247 "cfg.tab.c"
5247
0
    break;
5248
5249
0
  case 318:
5250
0
#line 1647 "cfg.y"
5251
0
                                                  { IFOR();
5252
0
        auto_scaling_cycle=(yyvsp[0].intval); }
5253
0
#line 5254 "cfg.tab.c"
5254
0
    break;
5255
5256
0
  case 319:
5257
0
#line 1649 "cfg.y"
5258
0
                                                 {
5259
0
        yyerror("integer value expected");
5260
0
        }
5261
0
#line 5262 "cfg.tab.c"
5262
0
    break;
5263
5264
0
  case 320:
5265
0
#line 1652 "cfg.y"
5266
0
                              { yyerror("unknown config variable"); }
5267
0
#line 5268 "cfg.tab.c"
5268
0
    break;
5269
5270
0
  case 321:
5271
0
#line 1655 "cfg.y"
5272
0
                                        { IFOR();
5273
0
      if (load_module((yyvsp[0].strval)) < 0)
5274
0
        yyerrorf("failed to load module %s\n", (yyvsp[0].strval));
5275
0
    }
5276
0
#line 5277 "cfg.tab.c"
5277
0
    break;
5278
5279
0
  case 322:
5280
0
#line 1659 "cfg.y"
5281
0
                                        { yyerror("string expected");  }
5282
0
#line 5283 "cfg.tab.c"
5283
0
    break;
5284
5285
0
  case 323:
5286
0
#line 1660 "cfg.y"
5287
0
                                                                          { IFOR();
5288
0
        if (set_mod_param_regex((yyvsp[-5].strval), (yyvsp[-3].strval), STR_PARAM, (yyvsp[-1].strval)) != 0) {
5289
0
          yyerrorf("Parameter <%s> not found in module <%s> - "
5290
0
            "can't set", (yyvsp[-3].strval), (yyvsp[-5].strval));
5291
0
        }
5292
0
      }
5293
0
#line 5294 "cfg.tab.c"
5294
0
    break;
5295
5296
0
  case 324:
5297
0
#line 1666 "cfg.y"
5298
0
                                                                                 { IFOR();
5299
0
        if (set_mod_param_regex((yyvsp[-5].strval), (yyvsp[-3].strval), STR_PARAM, (yyvsp[-1].strval)) != 0) {
5300
0
          yyerrorf("Parameter <%s> not found in module <%s> - "
5301
0
            "can't set", (yyvsp[-3].strval), (yyvsp[-5].strval));
5302
0
        }
5303
0
      }
5304
0
#line 5305 "cfg.tab.c"
5305
0
    break;
5306
5307
0
  case 325:
5308
0
#line 1672 "cfg.y"
5309
0
                                                                           { IFOR();
5310
0
        if (set_mod_param_regex((yyvsp[-5].strval), (yyvsp[-3].strval), INT_PARAM, (void*)(yyvsp[-1].intval)) != 0) {
5311
0
          yyerrorf("Parameter <%s> not found in module <%s> - "
5312
0
            "can't set", (yyvsp[-3].strval), (yyvsp[-5].strval));
5313
0
        }
5314
0
      }
5315
0
#line 5316 "cfg.tab.c"
5316
0
    break;
5317
5318
0
  case 326:
5319
0
#line 1678 "cfg.y"
5320
0
                                 { yyerror("Invalid arguments"); }
5321
0
#line 5322 "cfg.tab.c"
5322
0
    break;
5323
5324
0
  case 327:
5325
0
#line 1682 "cfg.y"
5326
0
                       { (yyval.ipaddr)=(yyvsp[0].ipaddr); }
5327
0
#line 5328 "cfg.tab.c"
5328
0
    break;
5329
5330
0
  case 328:
5331
0
#line 1683 "cfg.y"
5332
0
                       { (yyval.ipaddr)=(yyvsp[0].ipaddr); }
5333
0
#line 5334 "cfg.tab.c"
5334
0
    break;
5335
5336
0
  case 329:
5337
0
#line 1686 "cfg.y"
5338
0
                 {
5339
0
          (yyval.ipaddr)=pkg_malloc(sizeof(struct ip_addr));
5340
0
          if ((yyval.ipaddr)==0){
5341
0
            LM_CRIT("ERROR: cfg. parser: out of memory.\n");
5342
0
            YYABORT;
5343
0
          }else{
5344
0
            memset((yyval.ipaddr), 0, sizeof(struct ip_addr));
5345
0
            (yyval.ipaddr)->af=AF_INET;
5346
0
            (yyval.ipaddr)->len=16;
5347
0
            if (inet_pton(AF_INET, (yyvsp[0].strval), (yyval.ipaddr)->u.addr)<=0){
5348
0
              yyerror("bad ipv4 address");
5349
0
            }
5350
0
          }
5351
0
        }
5352
0
#line 5353 "cfg.tab.c"
5353
0
    break;
5354
5355
0
  case 330:
5356
0
#line 1702 "cfg.y"
5357
0
                         {
5358
0
          (yyval.ipaddr)=pkg_malloc(sizeof(struct ip_addr));
5359
0
          if ((yyval.ipaddr)==0){
5360
0
            LM_CRIT("ERROR: cfg. parser: out of memory.\n");
5361
0
            YYABORT;
5362
0
          }else{
5363
0
            memset((yyval.ipaddr), 0, sizeof(struct ip_addr));
5364
0
            (yyval.ipaddr)->af=AF_INET6;
5365
0
            (yyval.ipaddr)->len=16;
5366
0
            if (inet_pton(AF_INET6, (yyvsp[0].strval), (yyval.ipaddr)->u.addr)<=0){
5367
0
              yyerror("bad ipv6 address");
5368
0
            }
5369
0
          }
5370
0
        }
5371
0
#line 5372 "cfg.tab.c"
5372
0
    break;
5373
5374
0
  case 331:
5375
0
#line 1718 "cfg.y"
5376
0
                 { (yyval.ipaddr)=(yyvsp[0].ipaddr); }
5377
0
#line 5378 "cfg.tab.c"
5378
0
    break;
5379
5380
0
  case 332:
5381
0
#line 1719 "cfg.y"
5382
0
                                 {(yyval.ipaddr)=(yyvsp[-1].ipaddr); }
5383
0
#line 5384 "cfg.tab.c"
5384
0
    break;
5385
5386
0
  case 333:
5387
0
#line 1722 "cfg.y"
5388
0
                {
5389
0
        if (parse_ipnet((yyvsp[0].strval), strlen((yyvsp[0].strval)), &net_tmp) < 0)
5390
0
          yyerror("unable to parse ip and/or netmask\n");
5391
5392
0
        (yyval.ipnet) = net_tmp;
5393
0
      }
5394
0
#line 5395 "cfg.tab.c"
5395
0
    break;
5396
5397
0
  case 334:
5398
0
#line 1728 "cfg.y"
5399
0
                        {
5400
0
        (yyval.ipnet)=mk_net_bitlen((yyvsp[0].ipaddr), (yyvsp[0].ipaddr)->len*8);
5401
0
        pkg_free((yyvsp[0].ipaddr));
5402
0
      }
5403
0
#line 5404 "cfg.tab.c"
5404
0
    break;
5405
5406
0
  case 335:
5407
0
#line 1738 "cfg.y"
5408
0
                              {
5409
0
        (yyval.strval) = pkg_malloc( strlen((yyvsp[-1].strval)) + strlen((yyvsp[0].strval)) + 1);
5410
0
        if ((yyval.strval)==0){
5411
0
          yyerror("cfg. parser: out of memory");
5412
0
          YYABORT;
5413
0
        } else {
5414
0
          strcpy((yyval.strval),(yyvsp[-1].strval)); strcat((yyval.strval),(yyvsp[0].strval));
5415
0
          pkg_free((yyvsp[-1].strval)); pkg_free((yyvsp[0].strval));
5416
0
        }
5417
0
      }
5418
0
#line 5419 "cfg.tab.c"
5419
0
    break;
5420
5421
0
  case 336:
5422
0
#line 1748 "cfg.y"
5423
0
                                       {
5424
0
        (yyval.strval) = pkg_malloc( strlen((yyvsp[-1].strval)) + strlen((yyvsp[0].strval)) + 1);
5425
0
        if ((yyval.strval)==0){
5426
0
          LM_CRIT("ERROR: cfg. parser: out of memory.\n");
5427
0
          YYABORT;
5428
0
        } else {
5429
0
          strcpy((yyval.strval),(yyvsp[-1].strval)); strcat((yyval.strval),(yyvsp[0].strval));
5430
0
          pkg_free((yyvsp[-1].strval)); pkg_free((yyvsp[0].strval));
5431
0
        }
5432
0
      }
5433
0
#line 5434 "cfg.tab.c"
5434
0
    break;
5435
5436
0
  case 337:
5437
0
#line 1759 "cfg.y"
5438
0
                {
5439
0
        (yyval.strval) = (yyvsp[0].strval);
5440
0
        }
5441
0
#line 5442 "cfg.tab.c"
5442
0
    break;
5443
5444
0
  case 338:
5445
0
#line 1762 "cfg.y"
5446
0
                         {
5447
0
        tmp=int2str((yyvsp[0].intval), &i_tmp);
5448
0
        if (((yyval.strval)=pkg_malloc(i_tmp+1))==0) {
5449
0
          yyerror("cfg. parser: out of memory.\n");
5450
0
          YYABORT;
5451
0
        }
5452
0
        memcpy( (yyval.strval), tmp, i_tmp);
5453
0
        (yyval.strval)[i_tmp] = 0;
5454
0
        }
5455
0
#line 5456 "cfg.tab.c"
5456
0
    break;
5457
5458
0
  case 339:
5459
0
#line 1771 "cfg.y"
5460
0
                        {
5461
0
        (yyval.strval) = (yyvsp[0].strval);
5462
0
    }
5463
0
#line 5464 "cfg.tab.c"
5464
0
    break;
5465
5466
0
  case 340:
5467
0
#line 1776 "cfg.y"
5468
0
                           {
5469
        /* check to see if there are any "$" in the string name */
5470
0
        tmp = strchr((yyvsp[0].strval), '$');
5471
0
        if (!tmp) {
5472
          /* route name is a cosntant string - search for the route */
5473
0
          rn_tmp.data = 0;
5474
0
          rn_tmp.iname = get_script_route_idx((yyvsp[0].strval), sroutes->request,
5475
0
              RT_NO, 0);
5476
0
          if (rn_tmp.iname==-1)
5477
0
            yyerror("too many script routes");
5478
0
          (yyval.intval) = NUMBER_ST;
5479
0
        } else {
5480
0
          tstr.s = (yyvsp[0].strval);
5481
0
          tstr.len = strlen(tstr.s);
5482
0
          if (pv_parse_format(&tstr, &elem) < 0) {
5483
0
            yyerror("cannot parse format");
5484
0
            YYABORT;
5485
0
          }
5486
          /* the route name is a format, so we can't evaluate it now */
5487
0
          rn_tmp.ename = elem;
5488
0
          (yyval.intval) = SCRIPTVAR_ELEM_ST;
5489
0
        }
5490
0
      }
5491
0
#line 5492 "cfg.tab.c"
5492
0
    break;
5493
5494
0
  case 341:
5495
0
#line 1799 "cfg.y"
5496
0
                             {
5497
0
        rn_tmp.sname = (yyvsp[0].specval);
5498
0
        (yyval.intval) = SCRIPTVAR_ST;
5499
0
    }
5500
0
#line 5501 "cfg.tab.c"
5501
0
    break;
5502
5503
0
  case 342:
5504
0
#line 1804 "cfg.y"
5505
0
                                        {
5506
0
            if (sroutes->request[DEFAULT_RT].a!=0) {
5507
0
              yyerror("overwriting default "
5508
0
                "request routing table");
5509
0
              YYABORT;
5510
0
            }
5511
0
            push((yyvsp[-1].action), &sroutes->request[DEFAULT_RT].a);
5512
0
          }
5513
0
#line 5514 "cfg.tab.c"
5514
0
    break;
5515
5516
0
  case 343:
5517
0
#line 1812 "cfg.y"
5518
0
                                                                       {
5519
0
            if ( strtol((yyvsp[-4].strval),&tmp,10)==0 && *tmp==0) {
5520
              /* route[0] detected */
5521
0
              if (sroutes->request[DEFAULT_RT].a!=0) {
5522
0
                yyerror("overwriting(2) default "
5523
0
                  "request routing table");
5524
0
                YYABORT;
5525
0
              }
5526
0
              push((yyvsp[-1].action), &sroutes->request[DEFAULT_RT].a);
5527
0
            } else {
5528
0
              i_tmp = get_script_route_idx( (yyvsp[-4].strval),
5529
0
                sroutes->request, RT_NO,1);
5530
0
              if (i_tmp==-1) YYABORT;
5531
0
              push((yyvsp[-1].action), &sroutes->request[i_tmp].a);
5532
0
            }
5533
0
          }
5534
0
#line 5535 "cfg.tab.c"
5535
0
    break;
5536
5537
0
  case 344:
5538
0
#line 1828 "cfg.y"
5539
0
                              { yyerror("invalid  route  statement"); }
5540
0
#line 5541 "cfg.tab.c"
5541
0
    break;
5542
5543
0
  case 345:
5544
0
#line 1831 "cfg.y"
5545
0
                                                                                {
5546
0
            i_tmp = get_script_route_idx( (yyvsp[-4].strval), sroutes->failure,
5547
0
              FAILURE_RT_NO,1);
5548
0
            if (i_tmp==-1) YYABORT;
5549
0
            push((yyvsp[-1].action), &sroutes->failure[i_tmp].a);
5550
0
          }
5551
0
#line 5552 "cfg.tab.c"
5552
0
    break;
5553
5554
0
  case 346:
5555
0
#line 1837 "cfg.y"
5556
0
                                      { yyerror("invalid failure_route statement"); }
5557
0
#line 5558 "cfg.tab.c"
5558
0
    break;
5559
5560
0
  case 347:
5561
0
#line 1840 "cfg.y"
5562
0
                                                       {
5563
0
            if (sroutes->onreply[DEFAULT_RT].a!=0) {
5564
0
              yyerror("overwriting default "
5565
0
                "onreply routing table");
5566
0
              YYABORT;
5567
0
            }
5568
0
            push((yyvsp[-1].action), &sroutes->onreply[DEFAULT_RT].a);
5569
0
          }
5570
0
#line 5571 "cfg.tab.c"
5571
0
    break;
5572
5573
0
  case 348:
5574
0
#line 1848 "cfg.y"
5575
0
                                                                               {
5576
0
            i_tmp = get_script_route_idx( (yyvsp[-4].strval), sroutes->onreply,
5577
0
              ONREPLY_RT_NO,1);
5578
0
            if (i_tmp==-1) YYABORT;
5579
0
            push((yyvsp[-1].action), &sroutes->onreply[i_tmp].a);
5580
0
          }
5581
0
#line 5582 "cfg.tab.c"
5582
0
    break;
5583
5584
0
  case 349:
5585
0
#line 1854 "cfg.y"
5586
0
                                      { yyerror("invalid onreply_route statement"); }
5587
0
#line 5588 "cfg.tab.c"
5588
0
    break;
5589
5590
0
  case 350:
5591
0
#line 1857 "cfg.y"
5592
0
                                                                              {
5593
0
            i_tmp = get_script_route_idx( (yyvsp[-4].strval), sroutes->branch,
5594
0
              BRANCH_RT_NO,1);
5595
0
            if (i_tmp==-1) YYABORT;
5596
0
            push((yyvsp[-1].action), &sroutes->branch[i_tmp].a);
5597
0
          }
5598
0
#line 5599 "cfg.tab.c"
5599
0
    break;
5600
5601
0
  case 351:
5602
0
#line 1863 "cfg.y"
5603
0
                                     { yyerror("invalid branch_route statement"); }
5604
0
#line 5605 "cfg.tab.c"
5605
0
    break;
5606
5607
0
  case 352:
5608
0
#line 1866 "cfg.y"
5609
0
                                                    {
5610
0
            if (sroutes->error.a!=0) {
5611
0
              yyerror("overwriting default "
5612
0
                "error routing table");
5613
0
              YYABORT;
5614
0
            }
5615
0
            push((yyvsp[-1].action), &sroutes->error.a);
5616
0
          }
5617
0
#line 5618 "cfg.tab.c"
5618
0
    break;
5619
5620
0
  case 353:
5621
0
#line 1874 "cfg.y"
5622
0
                                    { yyerror("invalid error_route statement"); }
5623
0
#line 5624 "cfg.tab.c"
5624
0
    break;
5625
5626
0
  case 354:
5627
0
#line 1877 "cfg.y"
5628
0
                                                    {
5629
0
            if (sroutes->local.a!=0) {
5630
0
              yyerror("re-definition of local "
5631
0
                "route detected");
5632
0
              YYABORT;
5633
0
            }
5634
0
            push((yyvsp[-1].action), &sroutes->local.a);
5635
0
          }
5636
0
#line 5637 "cfg.tab.c"
5637
0
    break;
5638
5639
0
  case 355:
5640
0
#line 1885 "cfg.y"
5641
0
                                    { yyerror("invalid local_route statement"); }
5642
0
#line 5643 "cfg.tab.c"
5643
0
    break;
5644
5645
0
  case 356:
5646
0
#line 1888 "cfg.y"
5647
0
                                                        {
5648
0
            if (sroutes->startup.a!=0) {
5649
0
              yyerror("re-definition of startup "
5650
0
                "route detected");
5651
0
              YYABORT;
5652
0
            }
5653
0
            push((yyvsp[-1].action), &sroutes->startup.a);
5654
0
          }
5655
0
#line 5656 "cfg.tab.c"
5656
0
    break;
5657
5658
0
  case 357:
5659
0
#line 1896 "cfg.y"
5660
0
                                      { yyerror("invalid startup_route statement"); }
5661
0
#line 5662 "cfg.tab.c"
5662
0
    break;
5663
5664
0
  case 358:
5665
0
#line 1899 "cfg.y"
5666
0
                                                                                          {
5667
0
            i_tmp = 0;
5668
0
            while(i_tmp<TIMER_RT_NO && sroutes->timer[i_tmp].a!=0){
5669
0
              i_tmp++;
5670
0
            }
5671
0
            if(i_tmp == TIMER_RT_NO) {
5672
0
              yyerror("Too many timer routes defined\n");
5673
0
              YYABORT;
5674
0
            }
5675
0
            sroutes->timer[i_tmp].name = (yyvsp[-6].strval);
5676
0
            sroutes->timer[i_tmp].interval = (yyvsp[-4].intval);
5677
0
            push((yyvsp[-1].action), &sroutes->timer[i_tmp].a);
5678
0
          }
5679
0
#line 5680 "cfg.tab.c"
5680
0
    break;
5681
5682
0
  case 359:
5683
0
#line 1912 "cfg.y"
5684
0
                                    { yyerror("invalid timer_route statement"); }
5685
0
#line 5686 "cfg.tab.c"
5686
0
    break;
5687
5688
0
  case 360:
5689
0
#line 1915 "cfg.y"
5690
0
                                                                            {
5691
0
            i_tmp = get_script_route_idx((yyvsp[-4].strval), sroutes->event,
5692
0
                EVENT_RT_NO,1);
5693
0
            if (i_tmp==-1) YYABORT;
5694
0
            push((yyvsp[-1].action), &sroutes->event[i_tmp].a);
5695
0
          }
5696
0
#line 5697 "cfg.tab.c"
5697
0
    break;
5698
5699
0
  case 361:
5700
0
#line 1921 "cfg.y"
5701
0
                                    { yyerror("invalid event_route statement"); }
5702
0
#line 5703 "cfg.tab.c"
5703
0
    break;
5704
5705
0
  case 362:
5706
0
#line 1926 "cfg.y"
5707
0
                        { (yyval.expr)=mk_exp(AND_OP, (yyvsp[-2].expr), (yyvsp[0].expr)); }
5708
0
#line 5709 "cfg.tab.c"
5709
0
    break;
5710
5711
0
  case 363:
5712
0
#line 1927 "cfg.y"
5713
0
                                { (yyval.expr)=mk_exp(OR_OP, (yyvsp[-2].expr), (yyvsp[0].expr));  }
5714
0
#line 5715 "cfg.tab.c"
5715
0
    break;
5716
5717
0
  case 364:
5718
0
#line 1928 "cfg.y"
5719
0
                                        { (yyval.expr)=mk_exp(NOT_OP, (yyvsp[0].expr), 0);  }
5720
0
#line 5721 "cfg.tab.c"
5721
0
    break;
5722
5723
0
  case 365:
5724
0
#line 1929 "cfg.y"
5725
0
                                { (yyval.expr)=mk_exp(EVAL_OP, (yyvsp[-1].expr), 0); }
5726
0
#line 5727 "cfg.tab.c"
5727
0
    break;
5728
5729
0
  case 366:
5730
0
#line 1930 "cfg.y"
5731
0
                                  { (yyval.expr)=(yyvsp[-1].expr); }
5732
0
#line 5733 "cfg.tab.c"
5733
0
    break;
5734
5735
0
  case 367:
5736
0
#line 1931 "cfg.y"
5737
0
                                        { (yyval.expr)=(yyvsp[0].expr); }
5738
0
#line 5739 "cfg.tab.c"
5739
0
    break;
5740
5741
0
  case 368:
5742
0
#line 1934 "cfg.y"
5743
0
                          {(yyval.intval)=EQUAL_OP; }
5744
0
#line 5745 "cfg.tab.c"
5745
0
    break;
5746
5747
0
  case 369:
5748
0
#line 1935 "cfg.y"
5749
0
                                {(yyval.intval)=DIFF_OP; }
5750
0
#line 5751 "cfg.tab.c"
5751
0
    break;
5752
5753
0
  case 370:
5754
0
#line 1938 "cfg.y"
5755
0
                {(yyval.intval)=GT_OP; }
5756
0
#line 5757 "cfg.tab.c"
5757
0
    break;
5758
5759
0
  case 371:
5760
0
#line 1939 "cfg.y"
5761
0
                        {(yyval.intval)=LT_OP; }
5762
0
#line 5763 "cfg.tab.c"
5763
0
    break;
5764
5765
0
  case 372:
5766
0
#line 1940 "cfg.y"
5767
0
                        {(yyval.intval)=GTE_OP; }
5768
0
#line 5769 "cfg.tab.c"
5769
0
    break;
5770
5771
0
  case 373:
5772
0
#line 1941 "cfg.y"
5773
0
                        {(yyval.intval)=LTE_OP; }
5774
0
#line 5775 "cfg.tab.c"
5775
0
    break;
5776
5777
0
  case 374:
5778
0
#line 1943 "cfg.y"
5779
0
                {(yyval.intval)=MATCH_OP; }
5780
0
#line 5781 "cfg.tab.c"
5781
0
    break;
5782
5783
0
  case 375:
5784
0
#line 1944 "cfg.y"
5785
0
                                {(yyval.intval)=NOTMATCH_OP; }
5786
0
#line 5787 "cfg.tab.c"
5787
0
    break;
5788
5789
0
  case 376:
5790
0
#line 1947 "cfg.y"
5791
0
                {(yyval.intval)=(yyvsp[0].intval); }
5792
0
#line 5793 "cfg.tab.c"
5793
0
    break;
5794
5795
0
  case 377:
5796
0
#line 1948 "cfg.y"
5797
0
                        {(yyval.intval)=(yyvsp[0].intval); }
5798
0
#line 5799 "cfg.tab.c"
5799
0
    break;
5800
5801
0
  case 378:
5802
0
#line 1951 "cfg.y"
5803
0
                {(yyval.intval)=(yyvsp[0].intval); }
5804
0
#line 5805 "cfg.tab.c"
5805
0
    break;
5806
5807
0
  case 379:
5808
0
#line 1952 "cfg.y"
5809
0
                     {(yyval.intval)=(yyvsp[0].intval); }
5810
0
#line 5811 "cfg.tab.c"
5811
0
    break;
5812
5813
0
  case 380:
5814
0
#line 1953 "cfg.y"
5815
0
                                {(yyval.intval)=(yyvsp[0].intval); }
5816
0
#line 5817 "cfg.tab.c"
5817
0
    break;
5818
5819
0
  case 381:
5820
0
#line 1956 "cfg.y"
5821
0
                                {
5822
0
        spec = (pv_spec_t*)pkg_malloc(sizeof(pv_spec_t));
5823
0
        if (spec==NULL){
5824
0
          yyerror("no more pkg memory\n");
5825
0
          YYABORT;
5826
0
        }
5827
0
        memset(spec, 0, sizeof(pv_spec_t));
5828
0
        tstr.s = (yyvsp[0].strval);
5829
0
        tstr.len = strlen(tstr.s);
5830
0
        if(pv_parse_spec(&tstr, spec)==NULL)
5831
0
        {
5832
0
          yyerror("unknown script variable");
5833
0
        }
5834
5835
0
        (yyval.specval) = spec;
5836
0
      }
5837
0
#line 5838 "cfg.tab.c"
5838
0
    break;
5839
5840
0
  case 382:
5841
0
#line 1972 "cfg.y"
5842
0
                               {
5843
0
      (yyval.specval)=0; yyerror("invalid script variable name");
5844
0
    }
5845
0
#line 5846 "cfg.tab.c"
5846
0
    break;
5847
5848
0
  case 383:
5849
0
#line 1977 "cfg.y"
5850
0
                                {(yyval.expr)=(yyvsp[0].expr); }
5851
0
#line 5852 "cfg.tab.c"
5852
0
    break;
5853
5854
0
  case 384:
5855
0
#line 1978 "cfg.y"
5856
0
                                        {(yyval.expr)=mk_elem( NO_OP, ACTION_O, 0, ACTIONS_ST, (yyvsp[0].action) ); }
5857
0
#line 5858 "cfg.tab.c"
5858
0
    break;
5859
5860
0
  case 385:
5861
0
#line 1979 "cfg.y"
5862
0
                                        {(yyval.expr)=mk_elem( NO_OP, NUMBER_O, 0, NUMBER_ST,
5863
0
                      (void*)(yyvsp[0].intval) ); }
5864
0
#line 5865 "cfg.tab.c"
5865
0
    break;
5866
5867
0
  case 386:
5868
0
#line 1981 "cfg.y"
5869
0
                                {
5870
0
        (yyval.expr)=mk_elem(NO_OP, SCRIPTVAR_O,0,SCRIPTVAR_ST,(void*)(yyvsp[0].specval));
5871
0
      }
5872
0
#line 5873 "cfg.tab.c"
5873
0
    break;
5874
5875
0
  case 387:
5876
0
#line 1986 "cfg.y"
5877
0
                                      {
5878
0
        (yyval.expr)=mk_elem( (yyvsp[-1].intval), SCRIPTVAR_O,(void*)(yyvsp[-2].specval),SCRIPTVAR_ST,(void*)(yyvsp[0].specval));
5879
0
      }
5880
0
#line 5881 "cfg.tab.c"
5881
0
    break;
5882
5883
0
  case 388:
5884
0
#line 1989 "cfg.y"
5885
0
                                          {
5886
0
        (yyval.expr)=mk_elem( (yyvsp[-1].intval), SCRIPTVAR_O,(void*)(yyvsp[-2].specval),STR_ST,(yyvsp[0].strval));
5887
0
      }
5888
0
#line 5889 "cfg.tab.c"
5889
0
    break;
5890
5891
0
  case 389:
5892
0
#line 1992 "cfg.y"
5893
0
                                           {
5894
0
        (yyval.expr)=mk_elem( (yyvsp[-1].intval), SCRIPTVAR_O,(void*)(yyvsp[-2].specval),NUMBER_ST,(void *)(yyvsp[0].intval));
5895
0
      }
5896
0
#line 5897 "cfg.tab.c"
5897
0
    break;
5898
5899
0
  case 390:
5900
0
#line 1995 "cfg.y"
5901
0
                                                {
5902
0
        (yyval.expr)=mk_elem( (yyvsp[-1].intval), SCRIPTVAR_O,(void*)(yyvsp[-2].specval), NULLV_ST, 0);
5903
0
      }
5904
0
#line 5905 "cfg.tab.c"
5905
0
    break;
5906
5907
0
  case 391:
5908
0
#line 1998 "cfg.y"
5909
0
                                           {
5910
0
        (yyval.expr)=mk_elem((yyvsp[-1].intval), SCRIPTVAR_O, (void*)(yyvsp[-2].specval), NET_ST, (yyvsp[0].ipnet));
5911
0
      }
5912
0
#line 5913 "cfg.tab.c"
5913
0
    break;
5914
5915
0
  case 392:
5916
0
#line 2004 "cfg.y"
5917
0
              { (yyval.intval) = EQ_T; }
5918
0
#line 5919 "cfg.tab.c"
5919
0
    break;
5920
5921
0
  case 393:
5922
0
#line 2005 "cfg.y"
5923
0
                  { (yyval.intval) = COLONEQ_T; }
5924
0
#line 5925 "cfg.tab.c"
5925
0
    break;
5926
5927
0
  case 394:
5928
0
#line 2006 "cfg.y"
5929
0
                 { (yyval.intval) = PLUSEQ_T; }
5930
0
#line 5931 "cfg.tab.c"
5931
0
    break;
5932
5933
0
  case 395:
5934
0
#line 2007 "cfg.y"
5935
0
                  { (yyval.intval) = MINUSEQ_T;}
5936
0
#line 5937 "cfg.tab.c"
5937
0
    break;
5938
5939
0
  case 396:
5940
0
#line 2008 "cfg.y"
5941
0
                  { (yyval.intval) = DIVEQ_T; }
5942
0
#line 5943 "cfg.tab.c"
5943
0
    break;
5944
5945
0
  case 397:
5946
0
#line 2009 "cfg.y"
5947
0
                 { (yyval.intval) = MULTEQ_T; }
5948
0
#line 5949 "cfg.tab.c"
5949
0
    break;
5950
5951
0
  case 398:
5952
0
#line 2010 "cfg.y"
5953
0
                   { (yyval.intval) = MODULOEQ_T; }
5954
0
#line 5955 "cfg.tab.c"
5955
0
    break;
5956
5957
0
  case 399:
5958
0
#line 2011 "cfg.y"
5959
0
                 { (yyval.intval) = BANDEQ_T; }
5960
0
#line 5961 "cfg.tab.c"
5961
0
    break;
5962
5963
0
  case 400:
5964
0
#line 2012 "cfg.y"
5965
0
                { (yyval.intval) = BOREQ_T; }
5966
0
#line 5967 "cfg.tab.c"
5967
0
    break;
5968
5969
0
  case 401:
5970
0
#line 2013 "cfg.y"
5971
0
                 { (yyval.intval) = BXOREQ_T; }
5972
0
#line 5973 "cfg.tab.c"
5973
0
    break;
5974
5975
0
  case 402:
5976
0
#line 2017 "cfg.y"
5977
0
                { (yyval.expr) = mk_elem(VALUE_OP, NUMBERV_O, (void*)(yyvsp[0].intval), 0, 0); }
5978
0
#line 5979 "cfg.tab.c"
5979
0
    break;
5980
5981
0
  case 403:
5982
0
#line 2018 "cfg.y"
5983
0
                 { (yyval.expr) = mk_elem(VALUE_OP, STRINGV_O, (yyvsp[0].strval), 0, 0); }
5984
0
#line 5985 "cfg.tab.c"
5985
0
    break;
5986
5987
0
  case 404:
5988
0
#line 2019 "cfg.y"
5989
0
                     { (yyval.expr) = mk_elem(VALUE_OP, SCRIPTVAR_O, (yyvsp[0].specval), 0, 0); }
5990
0
#line 5991 "cfg.tab.c"
5991
0
    break;
5992
5993
0
  case 405:
5994
0
#line 2020 "cfg.y"
5995
0
                   { (yyval.expr)= (yyvsp[0].expr); }
5996
0
#line 5997 "cfg.tab.c"
5997
0
    break;
5998
5999
0
  case 406:
6000
0
#line 2021 "cfg.y"
6001
0
              { (yyval.expr)=mk_elem( NO_OP, ACTION_O, 0, ACTIONS_ST, (yyvsp[0].action) ); }
6002
0
#line 6003 "cfg.tab.c"
6003
0
    break;
6004
6005
0
  case 407:
6006
0
#line 2022 "cfg.y"
6007
0
                                   {
6008
0
        (yyval.expr) = mk_elem(PLUS_OP, EXPR_O, (yyvsp[-2].expr), EXPR_ST, (yyvsp[0].expr));
6009
0
      }
6010
0
#line 6011 "cfg.tab.c"
6011
0
    break;
6012
6013
0
  case 408:
6014
0
#line 2025 "cfg.y"
6015
0
                                    {
6016
0
        (yyval.expr) = mk_elem(MINUS_OP, EXPR_O, (yyvsp[-2].expr), EXPR_ST, (yyvsp[0].expr));
6017
0
      }
6018
0
#line 6019 "cfg.tab.c"
6019
0
    break;
6020
6021
0
  case 409:
6022
0
#line 2028 "cfg.y"
6023
0
                                   {
6024
0
        (yyval.expr) = mk_elem(MULT_OP, EXPR_O, (yyvsp[-2].expr), EXPR_ST, (yyvsp[0].expr));
6025
0
      }
6026
0
#line 6027 "cfg.tab.c"
6027
0
    break;
6028
6029
0
  case 410:
6030
0
#line 2031 "cfg.y"
6031
0
                                    {
6032
0
        (yyval.expr) = mk_elem(DIV_OP, EXPR_O, (yyvsp[-2].expr), EXPR_ST, (yyvsp[0].expr));
6033
0
      }
6034
0
#line 6035 "cfg.tab.c"
6035
0
    break;
6036
6037
0
  case 411:
6038
0
#line 2034 "cfg.y"
6039
0
                                     {
6040
0
        (yyval.expr) = mk_elem(MODULO_OP, EXPR_O, (yyvsp[-2].expr), EXPR_ST, (yyvsp[0].expr));
6041
0
      }
6042
0
#line 6043 "cfg.tab.c"
6043
0
    break;
6044
6045
0
  case 412:
6046
0
#line 2037 "cfg.y"
6047
0
                                   {
6048
0
        (yyval.expr) = mk_elem(BAND_OP, EXPR_O, (yyvsp[-2].expr), EXPR_ST, (yyvsp[0].expr));
6049
0
      }
6050
0
#line 6051 "cfg.tab.c"
6051
0
    break;
6052
6053
0
  case 413:
6054
0
#line 2040 "cfg.y"
6055
0
                                  {
6056
0
        (yyval.expr) = mk_elem(BOR_OP, EXPR_O, (yyvsp[-2].expr), EXPR_ST, (yyvsp[0].expr));
6057
0
      }
6058
0
#line 6059 "cfg.tab.c"
6059
0
    break;
6060
6061
0
  case 414:
6062
0
#line 2043 "cfg.y"
6063
0
                                   {
6064
0
        (yyval.expr) = mk_elem(BXOR_OP, EXPR_O, (yyvsp[-2].expr), EXPR_ST, (yyvsp[0].expr));
6065
0
      }
6066
0
#line 6067 "cfg.tab.c"
6067
0
    break;
6068
6069
0
  case 415:
6070
0
#line 2046 "cfg.y"
6071
0
                                      {
6072
0
        (yyval.expr) = mk_elem(BLSHIFT_OP, EXPR_O, (yyvsp[-2].expr), EXPR_ST, (yyvsp[0].expr));
6073
0
      }
6074
0
#line 6075 "cfg.tab.c"
6075
0
    break;
6076
6077
0
  case 416:
6078
0
#line 2049 "cfg.y"
6079
0
                                      {
6080
0
        (yyval.expr) = mk_elem(BRSHIFT_OP, EXPR_O, (yyvsp[-2].expr), EXPR_ST, (yyvsp[0].expr));
6081
0
      }
6082
0
#line 6083 "cfg.tab.c"
6083
0
    break;
6084
6085
0
  case 417:
6086
0
#line 2052 "cfg.y"
6087
0
                         {
6088
0
        (yyval.expr) = mk_elem(BNOT_OP, EXPR_O, (yyvsp[0].expr), 0, 0);
6089
0
      }
6090
0
#line 6091 "cfg.tab.c"
6091
0
    break;
6092
6093
0
  case 418:
6094
0
#line 2055 "cfg.y"
6095
0
                                  { (yyval.expr) = (yyvsp[-1].expr); }
6096
0
#line 6097 "cfg.tab.c"
6097
0
    break;
6098
6099
0
  case 419:
6100
0
#line 2058 "cfg.y"
6101
0
                                          {
6102
0
      if(!pv_is_w((yyvsp[-2].specval)))
6103
0
        yyerror("invalid left operand in assignment");
6104
0
      if((yyvsp[-2].specval)->trans!=0)
6105
0
        yyerror("transformations not accepted in left side "
6106
0
          "of assignment");
6107
6108
0
      mk_action2( (yyval.action), (yyvsp[-1].intval),
6109
0
          SCRIPTVAR_ST,
6110
0
          EXPR_ST,
6111
0
          (yyvsp[-2].specval),
6112
0
          (yyvsp[0].expr));
6113
0
    }
6114
0
#line 6115 "cfg.tab.c"
6115
0
    break;
6116
6117
0
  case 420:
6118
0
#line 2071 "cfg.y"
6119
0
                                  {
6120
0
      if(!pv_is_w((yyvsp[-2].specval)))
6121
0
        yyerror("invalid left operand in assignment");
6122
0
      if((yyvsp[-2].specval)->trans!=0)
6123
0
        yyerror("transformations not accepted in left side "
6124
0
          "of assignment");
6125
6126
0
      mk_action2( (yyval.action), EQ_T,
6127
0
          SCRIPTVAR_ST,
6128
0
          NULLV_ST,
6129
0
          (yyvsp[-2].specval),
6130
0
          0);
6131
0
    }
6132
0
#line 6133 "cfg.tab.c"
6133
0
    break;
6134
6135
0
  case 421:
6136
0
#line 2084 "cfg.y"
6137
0
                                    {
6138
0
      if(!pv_is_w((yyvsp[-2].specval)))
6139
0
        yyerror("invalid left operand in assignment");
6140
0
      if((yyvsp[-2].specval)->trans!=0)
6141
0
        yyerror("transformations not accepted in left side "
6142
0
          "of assignment");
6143
6144
0
      mk_action2( (yyval.action), COLONEQ_T,
6145
0
          SCRIPTVAR_ST,
6146
0
          NULLV_ST,
6147
0
          (yyvsp[-2].specval),
6148
0
          0);
6149
0
    }
6150
0
#line 6151 "cfg.tab.c"
6151
0
    break;
6152
6153
0
  case 422:
6154
0
#line 2099 "cfg.y"
6155
0
                                                                { (yyval.action)=(yyvsp[0].action); }
6156
0
#line 6157 "cfg.tab.c"
6157
0
    break;
6158
6159
0
  case 423:
6160
0
#line 2100 "cfg.y"
6161
0
                                                                { (yyval.action)=(yyvsp[0].action); }
6162
0
#line 6163 "cfg.tab.c"
6163
0
    break;
6164
6165
0
  case 424:
6166
0
#line 2101 "cfg.y"
6167
0
                                                                { (yyval.action)=(yyvsp[0].action); }
6168
0
#line 6169 "cfg.tab.c"
6169
0
    break;
6170
6171
0
  case 425:
6172
0
#line 2102 "cfg.y"
6173
0
                                                { (yyval.action)=(yyvsp[-1].action); }
6174
0
#line 6175 "cfg.tab.c"
6175
0
    break;
6176
6177
0
  case 426:
6178
0
#line 2103 "cfg.y"
6179
0
                                                        { (yyval.action)=0; }
6180
0
#line 6181 "cfg.tab.c"
6181
0
    break;
6182
6183
0
  case 427:
6184
0
#line 2106 "cfg.y"
6185
0
                                                                { (yyval.action)=(yyvsp[0].action); }
6186
0
#line 6187 "cfg.tab.c"
6187
0
    break;
6188
6189
0
  case 428:
6190
0
#line 2107 "cfg.y"
6191
0
                                                        { (yyval.action)=(yyvsp[-1].action); }
6192
0
#line 6193 "cfg.tab.c"
6193
0
    break;
6194
6195
0
  case 429:
6196
0
#line 2108 "cfg.y"
6197
0
                                                        { (yyval.action)=0; }
6198
0
#line 6199 "cfg.tab.c"
6199
0
    break;
6200
6201
0
  case 430:
6202
0
#line 2111 "cfg.y"
6203
0
                                                        { (yyval.action)=(yyvsp[0].action); }
6204
0
#line 6205 "cfg.tab.c"
6205
0
    break;
6206
6207
0
  case 431:
6208
0
#line 2112 "cfg.y"
6209
0
                                                { (yyval.action)=(yyvsp[-1].action); }
6210
0
#line 6211 "cfg.tab.c"
6211
0
    break;
6212
6213
0
  case 432:
6214
0
#line 2113 "cfg.y"
6215
0
                                                        { (yyval.action)=0; }
6216
0
#line 6217 "cfg.tab.c"
6217
0
    break;
6218
6219
0
  case 433:
6220
0
#line 2116 "cfg.y"
6221
0
                                {(yyval.action)=append_action((yyvsp[-1].action), (yyvsp[0].action)); }
6222
0
#line 6223 "cfg.tab.c"
6223
0
    break;
6224
6225
0
  case 434:
6226
0
#line 2117 "cfg.y"
6227
0
                                                {(yyval.action)=(yyvsp[0].action);}
6228
0
#line 6229 "cfg.tab.c"
6229
0
    break;
6230
6231
0
  case 435:
6232
0
#line 2118 "cfg.y"
6233
0
                                { (yyval.action)=0; yyerror("bad command!)"); }
6234
0
#line 6235 "cfg.tab.c"
6235
0
    break;
6236
6237
0
  case 436:
6238
0
#line 2122 "cfg.y"
6239
0
                                        {(yyval.action)=append_action((yyvsp[-1].action), (yyvsp[0].action)); }
6240
0
#line 6241 "cfg.tab.c"
6241
0
    break;
6242
6243
0
  case 437:
6244
0
#line 2123 "cfg.y"
6245
0
                                                {(yyval.action)=(yyvsp[0].action);}
6246
0
#line 6247 "cfg.tab.c"
6247
0
    break;
6248
6249
0
  case 438:
6250
0
#line 2124 "cfg.y"
6251
0
                                    { (yyval.action)=0; yyerror("bad command!)"); }
6252
0
#line 6253 "cfg.tab.c"
6253
0
    break;
6254
6255
0
  case 439:
6256
0
#line 2127 "cfg.y"
6257
0
                              {(yyval.action)=(yyvsp[-1].action);}
6258
0
#line 6259 "cfg.tab.c"
6259
0
    break;
6260
6261
0
  case 440:
6262
0
#line 2128 "cfg.y"
6263
0
                         {(yyval.action)=(yyvsp[0].action);}
6264
0
#line 6265 "cfg.tab.c"
6265
0
    break;
6266
6267
0
  case 441:
6268
0
#line 2129 "cfg.y"
6269
0
                            {(yyval.action)=(yyvsp[0].action);}
6270
0
#line 6271 "cfg.tab.c"
6271
0
    break;
6272
6273
0
  case 442:
6274
0
#line 2130 "cfg.y"
6275
0
                              {(yyval.action)=(yyvsp[0].action);}
6276
0
#line 6277 "cfg.tab.c"
6277
0
    break;
6278
6279
0
  case 443:
6280
0
#line 2131 "cfg.y"
6281
0
                             {(yyval.action)=(yyvsp[0].action);}
6282
0
#line 6283 "cfg.tab.c"
6283
0
    break;
6284
6285
0
  case 444:
6286
0
#line 2132 "cfg.y"
6287
0
                                       {(yyval.action)=(yyvsp[-1].action);}
6288
0
#line 6289 "cfg.tab.c"
6289
0
    break;
6290
6291
0
  case 445:
6292
0
#line 2133 "cfg.y"
6293
0
                                              {(yyval.action)=0;}
6294
0
#line 6295 "cfg.tab.c"
6295
0
    break;
6296
6297
0
  case 446:
6298
0
#line 2134 "cfg.y"
6299
0
                            { (yyval.action)=0; yyerror("bad command: missing ';'?"); }
6300
0
#line 6301 "cfg.tab.c"
6301
0
    break;
6302
6303
0
  case 447:
6304
0
#line 2137 "cfg.y"
6305
0
                            { mk_action0((yyval.action), BREAK_T);}
6306
0
#line 6307 "cfg.tab.c"
6307
0
    break;
6308
6309
0
  case 448:
6310
0
#line 2138 "cfg.y"
6311
0
                                {(yyval.action)=(yyvsp[-1].action);}
6312
0
#line 6313 "cfg.tab.c"
6313
0
    break;
6314
6315
0
  case 449:
6316
0
#line 2139 "cfg.y"
6317
0
                             {(yyval.action)=(yyvsp[0].action);}
6318
0
#line 6319 "cfg.tab.c"
6319
0
    break;
6320
6321
0
  case 450:
6322
0
#line 2140 "cfg.y"
6323
0
                            {(yyval.action)=(yyvsp[0].action);}
6324
0
#line 6325 "cfg.tab.c"
6325
0
    break;
6326
6327
0
  case 451:
6328
0
#line 2141 "cfg.y"
6329
0
                              {(yyval.action)=(yyvsp[0].action);}
6330
0
#line 6331 "cfg.tab.c"
6331
0
    break;
6332
6333
0
  case 452:
6334
0
#line 2142 "cfg.y"
6335
0
                             {(yyval.action)=(yyvsp[0].action);}
6336
0
#line 6337 "cfg.tab.c"
6337
0
    break;
6338
6339
0
  case 453:
6340
0
#line 2143 "cfg.y"
6341
0
                                       {(yyval.action)=(yyvsp[-1].action);}
6342
0
#line 6343 "cfg.tab.c"
6343
0
    break;
6344
6345
0
  case 454:
6346
0
#line 2144 "cfg.y"
6347
0
                                              {(yyval.action)=0;}
6348
0
#line 6349 "cfg.tab.c"
6349
0
    break;
6350
6351
0
  case 455:
6352
0
#line 2145 "cfg.y"
6353
0
                            { (yyval.action)=0; yyerror("bad command: missing ';'?"); }
6354
0
#line 6355 "cfg.tab.c"
6355
0
    break;
6356
6357
0
  case 456:
6358
0
#line 2148 "cfg.y"
6359
0
                                                                { mk_action3( (yyval.action), IF_T,
6360
0
                           EXPR_ST,
6361
0
                           ACTIONS_ST,
6362
0
                           NOSUBTYPE,
6363
0
                           (yyvsp[-2].expr),
6364
0
                           (yyvsp[0].action),
6365
0
                           0);
6366
0
                  }
6367
0
#line 6368 "cfg.tab.c"
6368
0
    break;
6369
6370
0
  case 457:
6371
0
#line 2156 "cfg.y"
6372
0
                                                                        { mk_action3( (yyval.action), IF_T,
6373
0
                           EXPR_ST,
6374
0
                           ACTIONS_ST,
6375
0
                           ACTIONS_ST,
6376
0
                           (yyvsp[-4].expr),
6377
0
                           (yyvsp[-2].action),
6378
0
                           (yyvsp[0].action));
6379
0
                  }
6380
0
#line 6381 "cfg.tab.c"
6381
0
    break;
6382
6383
0
  case 458:
6384
0
#line 2166 "cfg.y"
6385
0
                                                                        { mk_action3( (yyval.action), IF_T,
6386
0
                           EXPR_ST,
6387
0
                           ACTIONS_ST,
6388
0
                           NOSUBTYPE,
6389
0
                           (yyvsp[-2].expr),
6390
0
                           (yyvsp[0].action),
6391
0
                           0);
6392
0
                  }
6393
0
#line 6394 "cfg.tab.c"
6394
0
    break;
6395
6396
0
  case 459:
6397
0
#line 2174 "cfg.y"
6398
0
                                                                { mk_action3( (yyval.action), IF_T,
6399
0
                           EXPR_ST,
6400
0
                           ACTIONS_ST,
6401
0
                           ACTIONS_ST,
6402
0
                           (yyvsp[-4].expr),
6403
0
                           (yyvsp[-2].action),
6404
0
                           (yyvsp[0].action));
6405
0
                  }
6406
0
#line 6407 "cfg.tab.c"
6407
0
    break;
6408
6409
0
  case 460:
6410
0
#line 2184 "cfg.y"
6411
0
                                                        { mk_action2( (yyval.action), WHILE_T,
6412
0
                           EXPR_ST,
6413
0
                           ACTIONS_ST,
6414
0
                           (yyvsp[-2].expr),
6415
0
                           (yyvsp[0].action));
6416
0
                  }
6417
0
#line 6418 "cfg.tab.c"
6418
0
    break;
6419
6420
0
  case 461:
6421
0
#line 2192 "cfg.y"
6422
0
                                                                   {
6423
0
          if ((yyvsp[-4].specval)->type != PVT_SCRIPTVAR &&
6424
0
              (yyvsp[-4].specval)->type != PVT_AVP &&
6425
0
            pv_type((yyvsp[-4].specval)->type) != PVT_JSON) {
6426
0
            yyerror("\nfor-each statement: only \"var\", \"avp\" "
6427
0
                      "and \"json\" iterators are supported!");
6428
0
          }
6429
6430
0
          mk_action3( (yyval.action), FOR_EACH_T,
6431
0
                      SCRIPTVAR_ST,
6432
0
                      SCRIPTVAR_ST,
6433
0
                      ACTIONS_ST,
6434
0
                      (yyvsp[-4].specval),
6435
0
                      (yyvsp[-2].specval),
6436
0
                      (yyvsp[0].action));
6437
0
          }
6438
0
#line 6439 "cfg.tab.c"
6439
0
    break;
6440
6441
0
  case 462:
6442
0
#line 2210 "cfg.y"
6443
0
                                                                                        {
6444
0
                      mk_action2( (yyval.action), SWITCH_T,
6445
0
                            SCRIPTVAR_ST,
6446
0
                            ACTIONS_ST,
6447
0
                            (yyvsp[-4].specval),
6448
0
                            (yyvsp[-1].action));
6449
0
                  }
6450
0
#line 6451 "cfg.tab.c"
6451
0
    break;
6452
6453
0
  case 463:
6454
0
#line 2219 "cfg.y"
6455
0
                                  { (yyval.action)=append_action((yyvsp[-1].action), (yyvsp[0].action)); }
6456
0
#line 6457 "cfg.tab.c"
6457
0
    break;
6458
6459
0
  case 464:
6460
0
#line 2220 "cfg.y"
6461
0
                                                { (yyval.action)=(yyvsp[0].action); }
6462
0
#line 6463 "cfg.tab.c"
6463
0
    break;
6464
6465
0
  case 465:
6466
0
#line 2222 "cfg.y"
6467
0
                                        {(yyval.action)=append_action((yyvsp[-1].action), (yyvsp[0].action)); }
6468
0
#line 6469 "cfg.tab.c"
6469
0
    break;
6470
6471
0
  case 466:
6472
0
#line 2223 "cfg.y"
6473
0
                                                {(yyval.action)=(yyvsp[0].action);}
6474
0
#line 6475 "cfg.tab.c"
6475
0
    break;
6476
6477
0
  case 467:
6478
0
#line 2226 "cfg.y"
6479
0
                                         { mk_action2( (yyval.action), CASE_T,
6480
0
                          NUMBER_ST,
6481
0
                          ACTIONS_ST,
6482
0
                          (void*)(yyvsp[-2].intval),
6483
0
                          (yyvsp[0].action));
6484
0
                      }
6485
0
#line 6486 "cfg.tab.c"
6486
0
    break;
6487
6488
0
  case 468:
6489
0
#line 2232 "cfg.y"
6490
0
                                     { mk_action2( (yyval.action), CASE_T,
6491
0
                          NUMBER_ST,
6492
0
                          ACTIONS_ST,
6493
0
                          (void*)(yyvsp[-1].intval),
6494
0
                          NULL);
6495
0
              }
6496
0
#line 6497 "cfg.tab.c"
6497
0
    break;
6498
6499
0
  case 469:
6500
0
#line 2238 "cfg.y"
6501
0
                                                { mk_action2( (yyval.action), CASE_T,
6502
0
                          STR_ST,
6503
0
                          ACTIONS_ST,
6504
0
                          (void*)(yyvsp[-2].strval),
6505
0
                          (yyvsp[0].action));
6506
0
                      }
6507
0
#line 6508 "cfg.tab.c"
6508
0
    break;
6509
6510
0
  case 470:
6511
0
#line 2244 "cfg.y"
6512
0
                                    { mk_action2( (yyval.action), CASE_T,
6513
0
                          STR_ST,
6514
0
                          ACTIONS_ST,
6515
0
                          (void*)(yyvsp[-1].strval),
6516
0
                          NULL);
6517
0
              }
6518
0
#line 6519 "cfg.tab.c"
6519
0
    break;
6520
6521
0
  case 471:
6522
0
#line 2252 "cfg.y"
6523
0
                                       { mk_action1( (yyval.action), DEFAULT_T,
6524
0
                          ACTIONS_ST, (yyvsp[0].action));
6525
0
                  }
6526
0
#line 6527 "cfg.tab.c"
6527
0
    break;
6528
6529
0
  case 472:
6530
0
#line 2255 "cfg.y"
6531
0
                                { mk_action1( (yyval.action), DEFAULT_T, ACTIONS_ST, NULL); }
6532
0
#line 6533 "cfg.tab.c"
6533
0
    break;
6534
6535
0
  case 473:
6536
0
#line 2258 "cfg.y"
6537
0
                   {
6538
0
                    elems[1].type = STR_ST;
6539
0
                    elems[1].u.data = (yyvsp[0].strval);
6540
0
                    (yyval.intval)=1;
6541
0
                    }
6542
0
#line 6543 "cfg.tab.c"
6543
0
    break;
6544
6545
0
  case 474:
6546
0
#line 2263 "cfg.y"
6547
0
                                          {
6548
0
                    if ((yyvsp[-2].intval)+1>=MAX_ACTION_ELEMS) {
6549
0
                      yyerror("too many arguments "
6550
0
                        "in function\n");
6551
0
                      (yyval.intval)=0;
6552
0
                    }
6553
0
                    elems[(yyvsp[-2].intval)+1].type = STR_ST;
6554
0
                    elems[(yyvsp[-2].intval)+1].u.data = (yyvsp[0].strval);
6555
0
                    (yyval.intval)=(yyvsp[-2].intval)+1;
6556
0
                    }
6557
0
#line 6558 "cfg.tab.c"
6558
0
    break;
6559
6560
0
  case 475:
6561
0
#line 2273 "cfg.y"
6562
0
                        {
6563
0
                    elems[1].type = NULLV_ST;
6564
0
                    elems[1].u.data = NULL;
6565
0
                    elems[2].type = NULLV_ST;
6566
0
                    elems[2].u.data = NULL;
6567
0
                    (yyval.intval)=2;
6568
0
                    }
6569
0
#line 6570 "cfg.tab.c"
6570
0
    break;
6571
6572
0
  case 476:
6573
0
#line 2280 "cfg.y"
6574
0
                               {
6575
0
                    elems[1].type = NULLV_ST;
6576
0
                    elems[1].u.data = NULL;
6577
0
                    elems[2].type = STR_ST;
6578
0
                    elems[2].u.data = (yyvsp[0].strval);
6579
0
                    (yyval.intval)=2;
6580
0
                    }
6581
0
#line 6582 "cfg.tab.c"
6582
0
    break;
6583
6584
0
  case 477:
6585
0
#line 2287 "cfg.y"
6586
0
                                   {
6587
0
                    if ((yyvsp[-1].intval)+1>=MAX_ACTION_ELEMS) {
6588
0
                      yyerror("too many arguments "
6589
0
                        "in function\n");
6590
0
                      (yyval.intval)=0;
6591
0
                    }
6592
0
                    elems[(yyvsp[-1].intval)+1].type = NULLV_ST;
6593
0
                    elems[(yyvsp[-1].intval)+1].u.data = NULL;
6594
0
                    (yyval.intval)=(yyvsp[-1].intval)+1;
6595
0
                    }
6596
0
#line 6597 "cfg.tab.c"
6597
0
    break;
6598
6599
0
  case 478:
6600
0
#line 2297 "cfg.y"
6601
0
                          {
6602
0
                    elems[1].type = NUMBER_ST;
6603
0
                    elems[1].u.number = (yyvsp[0].intval);
6604
0
                    (yyval.intval)=1;
6605
0
                    }
6606
0
#line 6607 "cfg.tab.c"
6607
0
    break;
6608
6609
0
  case 479:
6610
0
#line 2302 "cfg.y"
6611
0
                                {
6612
0
                    elems[1].type = NULLV_ST;
6613
0
                    elems[1].u.data = NULL;
6614
0
                    elems[2].type = NUMBER_ST;
6615
0
                    elems[2].u.number = (yyvsp[0].intval);
6616
0
                    (yyval.intval)=2;
6617
0
                    }
6618
0
#line 6619 "cfg.tab.c"
6619
0
    break;
6620
6621
0
  case 480:
6622
0
#line 2309 "cfg.y"
6623
0
                                           {
6624
0
                    if ((yyvsp[-2].intval)+1>=MAX_ACTION_ELEMS) {
6625
0
                      yyerror("too many arguments "
6626
0
                        "in function\n");
6627
0
                      (yyval.intval)=0;
6628
0
                    }
6629
0
                    elems[(yyvsp[-2].intval)+1].type = NUMBER_ST;
6630
0
                    elems[(yyvsp[-2].intval)+1].u.number = (yyvsp[0].intval);
6631
0
                    (yyval.intval)=(yyvsp[-2].intval)+1;
6632
0
                    }
6633
0
#line 6634 "cfg.tab.c"
6634
0
    break;
6635
6636
0
  case 481:
6637
0
#line 2319 "cfg.y"
6638
0
                             {
6639
0
                    elems[1].type = SCRIPTVAR_ST;
6640
0
                    elems[1].u.data = (yyvsp[0].specval);
6641
0
                    (yyval.intval)=1;
6642
0
                    }
6643
0
#line 6644 "cfg.tab.c"
6644
0
    break;
6645
6646
0
  case 482:
6647
0
#line 2324 "cfg.y"
6648
0
                                   {
6649
0
                    elems[1].type = NULLV_ST;
6650
0
                    elems[1].u.data = NULL;
6651
0
                    elems[2].type = SCRIPTVAR_ST;
6652
0
                    elems[2].u.data = (yyvsp[0].specval);
6653
0
                    (yyval.intval)=2;
6654
0
                    }
6655
0
#line 6656 "cfg.tab.c"
6656
0
    break;
6657
6658
0
  case 483:
6659
0
#line 2331 "cfg.y"
6660
0
                                              {
6661
0
                    if ((yyvsp[-2].intval)+1>=MAX_ACTION_ELEMS) {
6662
0
                      yyerror("too many arguments "
6663
0
                        "in function\n");
6664
0
                      (yyval.intval)=0;
6665
0
                    }
6666
0
                    elems[(yyvsp[-2].intval)+1].type = SCRIPTVAR_ST;
6667
0
                    elems[(yyvsp[-2].intval)+1].u.data = (yyvsp[0].specval);
6668
0
                    (yyval.intval)=(yyvsp[-2].intval)+1;
6669
0
                    }
6670
0
#line 6671 "cfg.tab.c"
6671
0
    break;
6672
6673
0
  case 484:
6674
0
#line 2343 "cfg.y"
6675
0
                    {
6676
0
            route_elems[0].type = STRING_ST;
6677
0
            route_elems[0].u.string = (yyvsp[0].strval);
6678
0
            (yyval.intval)=1;
6679
0
      }
6680
0
#line 6681 "cfg.tab.c"
6681
0
    break;
6682
6683
0
  case 485:
6684
0
#line 2348 "cfg.y"
6685
0
                          {
6686
0
            route_elems[0].type = NUMBER_ST;
6687
0
            route_elems[0].u.number = (long)(yyvsp[0].intval);
6688
0
            (yyval.intval)=1;
6689
0
      }
6690
0
#line 6691 "cfg.tab.c"
6691
0
    break;
6692
6693
0
  case 486:
6694
0
#line 2353 "cfg.y"
6695
0
                        {
6696
0
            route_elems[0].type = NULLV_ST;
6697
0
            route_elems[0].u.data = 0;
6698
0
            (yyval.intval)=1;
6699
0
      }
6700
0
#line 6701 "cfg.tab.c"
6701
0
    break;
6702
6703
0
  case 487:
6704
0
#line 2358 "cfg.y"
6705
0
                             {
6706
0
            route_elems[0].type = SCRIPTVAR_ST;
6707
0
            route_elems[0].u.data = (yyvsp[0].specval);
6708
0
            (yyval.intval)=1;
6709
0
      }
6710
0
#line 6711 "cfg.tab.c"
6711
0
    break;
6712
6713
0
  case 488:
6714
0
#line 2363 "cfg.y"
6715
0
                                           {
6716
0
            if ((yyvsp[-2].intval)>=MAX_ACTION_ELEMS) {
6717
0
              yyerror("too many arguments in function\n");
6718
0
              (yyval.intval)=-1;
6719
0
            } else {
6720
0
              route_elems[(yyvsp[-2].intval)].type = STRING_ST;
6721
0
              route_elems[(yyvsp[-2].intval)].u.data = (yyvsp[0].strval);
6722
0
              (yyval.intval)=(yyvsp[-2].intval)+1;
6723
0
            }
6724
0
      }
6725
0
#line 6726 "cfg.tab.c"
6726
0
    break;
6727
6728
0
  case 489:
6729
0
#line 2373 "cfg.y"
6730
0
                                            {
6731
0
            if ((yyvsp[-2].intval)>=MAX_ACTION_ELEMS) {
6732
0
              yyerror("too many arguments in function\n");
6733
0
              (yyval.intval)=-1;
6734
0
            } else {
6735
0
              route_elems[(yyvsp[-2].intval)].type = NUMBER_ST;
6736
0
              route_elems[(yyvsp[-2].intval)].u.data = (void*)(long)(yyvsp[0].intval);
6737
0
              (yyval.intval)=(yyvsp[-2].intval)+1;
6738
0
            }
6739
0
      }
6740
0
#line 6741 "cfg.tab.c"
6741
0
    break;
6742
6743
0
  case 490:
6744
0
#line 2383 "cfg.y"
6745
0
                                               {
6746
0
            if ((yyvsp[-2].intval)+1>=MAX_ACTION_ELEMS) {
6747
0
              yyerror("too many arguments in function\n");
6748
0
              (yyval.intval)=-1;
6749
0
            } else {
6750
0
              route_elems[(yyvsp[-2].intval)].type = SCRIPTVAR_ST;
6751
0
              route_elems[(yyvsp[-2].intval)].u.data = (yyvsp[0].specval);
6752
0
              (yyval.intval)=(yyvsp[-2].intval)+1;
6753
0
            }
6754
0
      }
6755
0
#line 6756 "cfg.tab.c"
6756
0
    break;
6757
6758
0
  case 491:
6759
0
#line 2393 "cfg.y"
6760
0
                                          {
6761
0
            if ((yyvsp[-2].intval)+1>=MAX_ACTION_ELEMS) {
6762
0
              yyerror("too many arguments in function\n");
6763
0
              (yyval.intval)=-1;
6764
0
            } else {
6765
0
              route_elems[(yyvsp[-2].intval)].type = NULLV_ST;
6766
0
              route_elems[(yyvsp[-2].intval)].u.data = 0;
6767
0
              (yyval.intval)=(yyvsp[-2].intval)+1;
6768
0
            }
6769
0
      }
6770
0
#line 6771 "cfg.tab.c"
6771
0
    break;
6772
6773
0
  case 492:
6774
0
#line 2405 "cfg.y"
6775
0
                             {
6776
0
        const acmd_export_t* acmd_tmp=find_mod_acmd_export_t((yyvsp[-2].strval));
6777
0
        if (acmd_tmp==0){
6778
0
          yyerrorf("unknown async command <%s>, "
6779
0
            "missing loadmodule?", (yyvsp[-2].strval));
6780
0
          (yyval.action)=0;
6781
0
        }else{
6782
0
          if (check_acmd_call_params(acmd_tmp,elems,0)<0) {
6783
0
            yyerrorf("too few parameters "
6784
0
              "for command <%s>\n", (yyvsp[-2].strval));
6785
0
            (yyval.action)=0;
6786
0
          } else {
6787
0
            elems[0].type = ACMD_ST;
6788
0
            elems[0].u.data_const = acmd_tmp;
6789
0
            mk_action_((yyval.action), AMODULE_T, 1, elems);
6790
0
          }
6791
0
        }
6792
0
      }
6793
0
#line 6794 "cfg.tab.c"
6794
0
    break;
6795
6796
0
  case 493:
6797
0
#line 2423 "cfg.y"
6798
0
                                                      {
6799
0
        const acmd_export_t* acmd_tmp=find_mod_acmd_export_t((yyvsp[-3].strval));
6800
0
        if (acmd_tmp==0){
6801
0
          yyerrorf("unknown async command <%s>, "
6802
0
            "missing loadmodule?", (yyvsp[-3].strval));
6803
0
          (yyval.action)=0;
6804
0
        }else{
6805
0
          rc = check_acmd_call_params(acmd_tmp,elems,(yyvsp[-1].intval));
6806
0
          switch (rc) {
6807
0
          case -1:
6808
0
            yyerrorf("too few parameters "
6809
0
              "for async command <%s>\n", (yyvsp[-3].strval));
6810
0
            (yyval.action)=0;
6811
0
            break;
6812
0
          case -2:
6813
0
            yyerrorf("too many parameters "
6814
0
              "for async command <%s>\n", (yyvsp[-3].strval));
6815
0
            (yyval.action)=0;
6816
0
            break;
6817
0
          case -3:
6818
0
            yyerrorf("mandatory parameter "
6819
0
              " omitted for async command <%s>\n", (yyvsp[-3].strval));
6820
0
            (yyval.action)=0;
6821
0
            break;
6822
0
          default:
6823
0
            elems[0].type = ACMD_ST;
6824
0
            elems[0].u.data_const = acmd_tmp;
6825
0
            mk_action_((yyval.action), AMODULE_T, (yyvsp[-1].intval)+1, elems);
6826
0
          }
6827
0
        }
6828
0
      }
6829
0
#line 6830 "cfg.tab.c"
6830
0
    break;
6831
6832
0
  case 494:
6833
0
#line 2454 "cfg.y"
6834
0
                                                 {
6835
0
        (yyval.action)=0;
6836
0
        yyerrorf("bad arguments for command <%s>", (yyvsp[-3].strval));
6837
0
      }
6838
0
#line 6839 "cfg.tab.c"
6839
0
    break;
6840
6841
0
  case 495:
6842
0
#line 2458 "cfg.y"
6843
0
                                   {
6844
0
        (yyval.action)=0;
6845
0
        yyerrorf("bare word <%s> found, command calls need '()'", (yyvsp[-1].strval));
6846
0
      }
6847
0
#line 6848 "cfg.tab.c"
6848
0
    break;
6849
6850
0
  case 496:
6851
0
#line 2464 "cfg.y"
6852
0
                         { sr_tmp.rspec = (yyvsp[0].specval); (yyval.return_params) = mk_script_return(SCRIPT_ROUTE_RET_VAR);}
6853
0
#line 6854 "cfg.tab.c"
6854
0
    break;
6855
6856
0
  case 497:
6857
0
#line 2465 "cfg.y"
6858
0
                          { sr_tmp.rint = (yyvsp[0].intval); (yyval.return_params) = mk_script_return(SCRIPT_ROUTE_RET_INT);}
6859
0
#line 6860 "cfg.tab.c"
6860
0
    break;
6861
6862
0
  case 498:
6863
0
#line 2466 "cfg.y"
6864
0
                         { sr_tmp.rstr.s = (yyvsp[0].strval); sr_tmp.rstr.len = strlen((yyvsp[0].strval));
6865
0
          (yyval.return_params) = mk_script_return(SCRIPT_ROUTE_RET_STR);}
6866
0
#line 6867 "cfg.tab.c"
6867
0
    break;
6868
6869
0
  case 499:
6870
0
#line 2468 "cfg.y"
6871
0
                        { (yyval.return_params) = mk_script_return(SCRIPT_ROUTE_RET_NULL);}
6872
0
#line 6873 "cfg.tab.c"
6873
0
    break;
6874
6875
0
  case 500:
6876
0
#line 2471 "cfg.y"
6877
0
                            { (yyval.return_params) = (yyvsp[0].return_params); }
6878
0
#line 6879 "cfg.tab.c"
6879
0
    break;
6880
6881
0
  case 501:
6882
0
#line 2472 "cfg.y"
6883
0
                                                   { (yyvsp[0].return_params)->next = (yyvsp[-2].return_params); (yyval.return_params) = (yyvsp[0].return_params); }
6884
0
#line 6885 "cfg.tab.c"
6885
0
    break;
6886
6887
0
  case 502:
6888
0
#line 2475 "cfg.y"
6889
0
                                                 {
6890
0
      mk_action2( (yyval.action), ASSERT_T, EXPR_ST, STRING_ST, (yyvsp[-3].expr), (yyvsp[-1].strval));
6891
0
      }
6892
0
#line 6893 "cfg.tab.c"
6893
0
    break;
6894
6895
0
  case 503:
6896
0
#line 2478 "cfg.y"
6897
0
                                                 {
6898
0
      mk_action2( (yyval.action), ASSERT_T, EXPR_ST, STRING_ST, (yyvsp[-1].expr), NULL);
6899
0
      }
6900
0
#line 6901 "cfg.tab.c"
6901
0
    break;
6902
6903
0
  case 504:
6904
0
#line 2481 "cfg.y"
6905
0
                                                 {mk_action0( (yyval.action), DROP_T); }
6906
0
#line 6907 "cfg.tab.c"
6907
0
    break;
6908
6909
0
  case 505:
6910
0
#line 2482 "cfg.y"
6911
0
                                     {mk_action0( (yyval.action), DROP_T); }
6912
0
#line 6913 "cfg.tab.c"
6913
0
    break;
6914
6915
0
  case 506:
6916
0
#line 2483 "cfg.y"
6917
0
                                                 {mk_action0( (yyval.action), EXIT_T); }
6918
0
#line 6919 "cfg.tab.c"
6919
0
    break;
6920
6921
0
  case 507:
6922
0
#line 2484 "cfg.y"
6923
0
                                     {mk_action0( (yyval.action), EXIT_T); }
6924
0
#line 6925 "cfg.tab.c"
6925
0
    break;
6926
6927
0
  case 508:
6928
0
#line 2486 "cfg.y"
6929
0
                                                         {mk_action2( (yyval.action), RETURN_T,
6930
0
                SCRIPTVAR_ST,
6931
0
                NULLV_ST,
6932
0
                (void*)(yyvsp[0].specval),
6933
0
                NULL); }
6934
0
#line 6935 "cfg.tab.c"
6935
0
    break;
6936
6937
0
  case 509:
6938
0
#line 2492 "cfg.y"
6939
0
                                                         {mk_action2( (yyval.action), RETURN_T,
6940
0
                SCRIPTVAR_ST,
6941
0
                NULLV_ST,
6942
0
                (void*)(yyvsp[-1].specval),
6943
0
                NULL); }
6944
0
#line 6945 "cfg.tab.c"
6945
0
    break;
6946
6947
0
  case 510:
6948
0
#line 2498 "cfg.y"
6949
0
                                                         {mk_action2( (yyval.action), RETURN_T,
6950
0
                SCRIPTVAR_ST,
6951
0
                EXPR_ST,
6952
0
                (void*)(yyvsp[-3].specval),
6953
0
                (yyvsp[-1].return_params)); }
6954
0
#line 6955 "cfg.tab.c"
6955
0
    break;
6956
6957
0
  case 511:
6958
0
#line 2504 "cfg.y"
6959
0
                                                         {mk_action2( (yyval.action), RETURN_T,
6960
0
                NUMBER_ST,
6961
0
                NULLV_ST,
6962
0
                (void*)(yyvsp[0].intval),
6963
0
                NULL); }
6964
0
#line 6965 "cfg.tab.c"
6965
0
    break;
6966
6967
0
  case 512:
6968
0
#line 2510 "cfg.y"
6969
0
                                                         {mk_action2( (yyval.action), RETURN_T,
6970
0
                NUMBER_ST,
6971
0
                NULLV_ST,
6972
0
                (void*)(yyvsp[-1].intval),
6973
0
                NULL); }
6974
0
#line 6975 "cfg.tab.c"
6975
0
    break;
6976
6977
0
  case 513:
6978
0
#line 2516 "cfg.y"
6979
0
                                                         {mk_action2( (yyval.action), RETURN_T,
6980
0
                NUMBER_ST,
6981
0
                EXPR_ST,
6982
0
                (void*)(yyvsp[-3].intval),
6983
0
                (yyvsp[-1].return_params)); }
6984
0
#line 6985 "cfg.tab.c"
6985
0
    break;
6986
6987
0
  case 514:
6988
0
#line 2522 "cfg.y"
6989
0
                                                         {mk_action2( (yyval.action), RETURN_T,
6990
0
                NUMBER_ST,
6991
0
                NULLV_ST,
6992
0
                (void*)1,
6993
0
                NULL); }
6994
0
#line 6995 "cfg.tab.c"
6995
0
    break;
6996
6997
0
  case 515:
6998
0
#line 2528 "cfg.y"
6999
0
                                                         {mk_action2( (yyval.action), RETURN_T,
7000
0
                NUMBER_ST,
7001
0
                EXPR_ST,
7002
0
                (void*)1,
7003
0
                (yyvsp[-1].return_params)); }
7004
0
#line 7005 "cfg.tab.c"
7005
0
    break;
7006
7007
0
  case 516:
7008
0
#line 2533 "cfg.y"
7009
0
                                                 {mk_action2( (yyval.action), RETURN_T,
7010
0
                NUMBER_ST,
7011
0
                NULLV_ST,
7012
0
                (void*)1,
7013
0
                NULL); }
7014
0
#line 7015 "cfg.tab.c"
7015
0
    break;
7016
7017
0
  case 517:
7018
0
#line 2538 "cfg.y"
7019
0
                                                {mk_action2( (yyval.action), LOG_T, NUMBER_ST,
7020
0
                          STRING_ST,(void*)4,(yyvsp[-1].strval));
7021
0
                  }
7022
0
#line 7023 "cfg.tab.c"
7023
0
    break;
7024
7025
0
  case 518:
7026
0
#line 2541 "cfg.y"
7027
0
                                                                {mk_action2( (yyval.action), LOG_T,
7028
0
                                NUMBER_ST,
7029
0
                                STRING_ST,
7030
0
                                (void*)(yyvsp[-3].intval),
7031
0
                                (yyvsp[-1].strval));
7032
0
                        }
7033
0
#line 7034 "cfg.tab.c"
7034
0
    break;
7035
7036
0
  case 519:
7037
0
#line 2547 "cfg.y"
7038
0
                                { (yyval.action)=0; yyerror("missing '(' or ')' ?"); }
7039
0
#line 7040 "cfg.tab.c"
7040
0
    break;
7041
7042
0
  case 520:
7043
0
#line 2548 "cfg.y"
7044
0
                                              { (yyval.action)=0; yyerror("bad log"
7045
0
                  "argument"); }
7046
0
#line 7047 "cfg.tab.c"
7047
0
    break;
7048
7049
0
  case 521:
7050
0
#line 2550 "cfg.y"
7051
0
                                                          {mk_action2( (yyval.action), ERROR_T,
7052
0
                                STRING_ST,
7053
0
                                STRING_ST,
7054
0
                                (yyvsp[-3].strval),
7055
0
                                (yyvsp[-1].strval));
7056
0
                          }
7057
0
#line 7058 "cfg.tab.c"
7058
0
    break;
7059
7060
0
  case 522:
7061
0
#line 2556 "cfg.y"
7062
0
                              { (yyval.action)=0; yyerror("missing '(' or ')' ?"); }
7063
0
#line 7064 "cfg.tab.c"
7064
0
    break;
7065
7066
0
  case 523:
7067
0
#line 2557 "cfg.y"
7068
0
                                            { (yyval.action)=0; yyerror("bad error"
7069
0
                            "argument"); }
7070
0
#line 7071 "cfg.tab.c"
7071
0
    break;
7072
7073
0
  case 524:
7074
0
#line 2559 "cfg.y"
7075
0
                                                        {
7076
0
            mk_action2( (yyval.action), ROUTE_T, (yyvsp[-1].intval), 0, rn_tmp.data, 0);
7077
0
          }
7078
0
#line 7079 "cfg.tab.c"
7079
0
    break;
7080
7081
0
  case 525:
7082
0
#line 2563 "cfg.y"
7083
0
                                                                        {
7084
0
            if ((yyvsp[-1].intval) <= 0) yyerror("too many route parameters");
7085
7086
            /* duplicate the list */
7087
0
            a_tmp = pkg_malloc((yyvsp[-1].intval) * sizeof(action_elem_t));
7088
0
            if (!a_tmp) {
7089
0
              yyerror("no more pkg memory");
7090
0
              YYABORT;
7091
0
            }
7092
0
            memcpy(a_tmp, route_elems, (yyvsp[-1].intval)*sizeof(action_elem_t));
7093
7094
0
            mk_action3( (yyval.action), ROUTE_T, (yyvsp[-3].intval),  /* route idx */
7095
0
              NUMBER_ST,          /* number of params */
7096
0
              SCRIPTVAR_ST,       /* parameters */
7097
0
              rn_tmp.data,
7098
0
              (void*)(long)(yyvsp[-1].intval),
7099
0
              (void*)a_tmp);
7100
0
          }
7101
0
#line 7102 "cfg.tab.c"
7102
0
    break;
7103
7104
0
  case 526:
7105
0
#line 2582 "cfg.y"
7106
0
                              { (yyval.action)=0; yyerror("missing '(' or ')' ?"); }
7107
0
#line 7108 "cfg.tab.c"
7108
0
    break;
7109
7110
0
  case 527:
7111
0
#line 2583 "cfg.y"
7112
0
                                            { (yyval.action)=0; yyerror("bad route"
7113
0
            "argument"); }
7114
0
#line 7115 "cfg.tab.c"
7115
0
    break;
7116
7117
0
  case 528:
7118
0
#line 2585 "cfg.y"
7119
0
                                        {
7120
0
                const cmd_export_t* cmd_tmp=find_cmd_export_t((yyvsp[-2].strval), rt);
7121
0
                if (cmd_tmp==0){
7122
0
                  if (find_cmd_export_t((yyvsp[-2].strval), 0)) {
7123
0
                    yyerrorf("Command <%s> cannot be "
7124
0
                      "used in the block\n", (yyvsp[-2].strval));
7125
0
                  } else {
7126
0
                    yyerrorf("unknown command <%s>, "
7127
0
                      "missing loadmodule?", (yyvsp[-2].strval));
7128
0
                  }
7129
0
                  (yyval.action)=0;
7130
0
                }else{
7131
0
                  if (check_cmd_call_params(cmd_tmp,elems,0)<0) {
7132
0
                    yyerrorf("too few parameters "
7133
0
                      "for command <%s>\n", (yyvsp[-2].strval));
7134
0
                    (yyval.action)=0;
7135
0
                  } else {
7136
0
                    elems[0].type = CMD_ST;
7137
0
                    elems[0].u.data_const = cmd_tmp;
7138
0
                    mk_action_((yyval.action), CMD_T, 1, elems);
7139
0
                  }
7140
0
                }
7141
0
              }
7142
0
#line 7143 "cfg.tab.c"
7143
0
    break;
7144
7145
0
  case 529:
7146
0
#line 2608 "cfg.y"
7147
0
                                                {
7148
0
                const cmd_export_t* cmd_tmp=find_cmd_export_t((yyvsp[-3].strval), rt);
7149
0
                if (cmd_tmp==0){
7150
0
                  if (find_cmd_export_t((yyvsp[-3].strval), 0)) {
7151
0
                    yyerrorf("Command <%s> cannot be "
7152
0
                      "used in the block\n", (yyvsp[-3].strval));
7153
0
                  } else {
7154
0
                    yyerrorf("unknown command <%s>, "
7155
0
                      "missing loadmodule?", (yyvsp[-3].strval));
7156
0
                  }
7157
0
                  (yyval.action)=0;
7158
0
                }else{
7159
0
                  rc = check_cmd_call_params(cmd_tmp,elems,(yyvsp[-1].intval));
7160
0
                  switch (rc) {
7161
0
                  case -1:
7162
0
                    yyerrorf("too few parameters "
7163
0
                      "for command <%s>\n", (yyvsp[-3].strval));
7164
0
                    (yyval.action)=0;
7165
0
                    break;
7166
0
                  case -2:
7167
0
                    yyerrorf("too many parameters "
7168
0
                      "for command <%s>\n", (yyvsp[-3].strval));
7169
0
                    (yyval.action)=0;
7170
0
                    break;
7171
0
                  case -3:
7172
0
                    yyerrorf("mandatory parameter "
7173
0
                      "omitted for command <%s>\n", (yyvsp[-3].strval));
7174
0
                    (yyval.action)=0;
7175
0
                    break;
7176
0
                  default:
7177
0
                    elems[0].type = CMD_ST;
7178
0
                    elems[0].u.data_const = cmd_tmp;
7179
0
                    mk_action_((yyval.action), CMD_T, (yyvsp[-1].intval)+1, elems);
7180
0
                  }
7181
0
                }
7182
0
              }
7183
0
#line 7184 "cfg.tab.c"
7184
0
    break;
7185
7186
0
  case 530:
7187
0
#line 2644 "cfg.y"
7188
0
                                         { (yyval.action)=0; yyerrorf("bad arguments for "
7189
0
                        "command <%s>", (yyvsp[-3].strval)); }
7190
0
#line 7191 "cfg.tab.c"
7191
0
    break;
7192
7193
0
  case 531:
7194
0
#line 2646 "cfg.y"
7195
0
                           { (yyval.action)=0;
7196
0
      yyerrorf("bare word <%s> found, command calls need '()'", (yyvsp[-1].strval));
7197
0
      }
7198
0
#line 7199 "cfg.tab.c"
7199
0
    break;
7200
7201
0
  case 532:
7202
0
#line 2649 "cfg.y"
7203
0
                                            {
7204
0
        mk_action1((yyval.action), XDBG_T, STR_ST, (yyvsp[-1].strval)); }
7205
0
#line 7206 "cfg.tab.c"
7206
0
    break;
7207
7208
0
  case 533:
7209
0
#line 2651 "cfg.y"
7210
0
                                                   {
7211
0
        mk_action1((yyval.action), XDBG_T, STR_ST, (yyvsp[-1].strval)); }
7212
0
#line 7213 "cfg.tab.c"
7213
0
    break;
7214
7215
0
  case 534:
7216
0
#line 2653 "cfg.y"
7217
0
                                            {
7218
0
        mk_action1((yyval.action), XLOG_T, STR_ST, (yyvsp[-1].strval)); }
7219
0
#line 7220 "cfg.tab.c"
7220
0
    break;
7221
7222
0
  case 535:
7223
0
#line 2655 "cfg.y"
7224
0
                                                   {
7225
0
        mk_action1((yyval.action), XLOG_T, STR_ST, (yyvsp[-1].strval)); }
7226
0
#line 7227 "cfg.tab.c"
7227
0
    break;
7228
7229
0
  case 536:
7230
0
#line 2657 "cfg.y"
7231
0
                                                         {
7232
0
        mk_action2((yyval.action), XLOG_T, STR_ST, STR_ST, (yyvsp[-3].strval), (yyvsp[-1].strval)); }
7233
0
#line 7234 "cfg.tab.c"
7234
0
    break;
7235
7236
0
  case 537:
7237
0
#line 2659 "cfg.y"
7238
0
                                                                {
7239
0
        mk_action2((yyval.action), XLOG_T, STR_ST, STR_ST, (yyvsp[-3].strval), (yyvsp[-1].strval)); }
7240
0
#line 7241 "cfg.tab.c"
7241
0
    break;
7242
7243
0
  case 538:
7244
0
#line 2661 "cfg.y"
7245
0
                                                                        {
7246
0
        rt_ref = ref_script_route_by_name( (yyvsp[-1].strval), sroutes->request,
7247
0
          RT_NO, REQUEST_ROUTE, 0);
7248
0
        if (rt_ref==NULL) yyerror("fail to create route reference");
7249
0
        mk_action2((yyval.action), ASYNC_T, ACTIONS_ST, ROUTE_REF_ST,
7250
0
            (yyvsp[-3].action), (void*)rt_ref);
7251
0
        }
7252
0
#line 7253 "cfg.tab.c"
7253
0
    break;
7254
7255
0
  case 539:
7256
0
#line 2668 "cfg.y"
7257
0
                                                                                     {
7258
0
        rt_ref = ref_script_route_by_name( (yyvsp[-3].strval), sroutes->request,
7259
0
          RT_NO, REQUEST_ROUTE, 0);
7260
0
        if (rt_ref==NULL) yyerror("fail to create route reference");
7261
0
        mk_action3((yyval.action), ASYNC_T, ACTIONS_ST, ROUTE_REF_ST, NUMBER_ST,
7262
0
            (yyvsp[-5].action), (void*)rt_ref, (void*)(long)(yyvsp[-1].intval));
7263
0
        }
7264
0
#line 7265 "cfg.tab.c"
7265
0
    break;
7266
7267
0
  case 540:
7268
0
#line 2675 "cfg.y"
7269
0
                                                                                      {
7270
0
        rt_ref = ref_script_route_by_name( (yyvsp[-3].strval), sroutes->request,
7271
0
          RT_NO, REQUEST_ROUTE, 0);
7272
0
        if (rt_ref==NULL) yyerror("fail to create route reference");
7273
0
        mk_action3((yyval.action), LAUNCH_T, ACTIONS_ST, ROUTE_REF_ST, STRING_ST,
7274
0
            (yyvsp[-5].action), (void*)rt_ref, (yyvsp[-1].strval));
7275
0
        }
7276
0
#line 7277 "cfg.tab.c"
7277
0
    break;
7278
7279
0
  case 541:
7280
0
#line 2682 "cfg.y"
7281
0
                                                                         {
7282
0
        rt_ref = ref_script_route_by_name( (yyvsp[-1].strval), sroutes->request,
7283
0
          RT_NO, REQUEST_ROUTE, 0);
7284
0
        if (rt_ref==NULL) yyerror("fail to create route reference");
7285
0
        mk_action2((yyval.action), LAUNCH_T, ACTIONS_ST, ROUTE_REF_ST,
7286
0
            (yyvsp[-3].action), (void*)rt_ref);
7287
0
        }
7288
0
#line 7289 "cfg.tab.c"
7289
0
    break;
7290
7291
0
  case 542:
7292
0
#line 2689 "cfg.y"
7293
0
                                                        {
7294
0
        mk_action2((yyval.action), LAUNCH_T, ACTIONS_ST, ROUTE_REF_ST,
7295
0
            (yyvsp[-1].action), (void*)NULL);
7296
0
        }
7297
0
#line 7298 "cfg.tab.c"
7298
0
    break;
7299
7300
7301
0
#line 7302 "cfg.tab.c"
7302
7303
0
      default: break;
7304
0
    }
7305
  /* User semantic actions sometimes alter yychar, and that requires
7306
     that yytoken be updated with the new translation.  We take the
7307
     approach of translating immediately before every use of yytoken.
7308
     One alternative is translating here after every semantic action,
7309
     but that translation would be missed if the semantic action invokes
7310
     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
7311
     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
7312
     incorrect destructor might then be invoked immediately.  In the
7313
     case of YYERROR or YYBACKUP, subsequent parser actions might lead
7314
     to an incorrect destructor call or verbose syntax error message
7315
     before the lookahead is translated.  */
7316
0
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
7317
7318
0
  YYPOPSTACK (yylen);
7319
0
  yylen = 0;
7320
0
  YY_STACK_PRINT (yyss, yyssp);
7321
7322
0
  *++yyvsp = yyval;
7323
7324
  /* Now 'shift' the result of the reduction.  Determine what state
7325
     that goes to, based on the state we popped back to and the rule
7326
     number reduced by.  */
7327
0
  {
7328
0
    const int yylhs = yyr1[yyn] - YYNTOKENS;
7329
0
    const int yyi = yypgoto[yylhs] + *yyssp;
7330
0
    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
7331
0
               ? yytable[yyi]
7332
0
               : yydefgoto[yylhs]);
7333
0
  }
7334
7335
0
  goto yynewstate;
7336
7337
7338
/*--------------------------------------.
7339
| yyerrlab -- here on detecting error.  |
7340
`--------------------------------------*/
7341
0
yyerrlab:
7342
  /* Make sure we have latest lookahead translation.  See comments at
7343
     user semantic actions for why this is necessary.  */
7344
0
  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
7345
7346
  /* If not already recovering from an error, report this error.  */
7347
0
  if (!yyerrstatus)
7348
0
    {
7349
0
      ++yynerrs;
7350
0
#if ! YYERROR_VERBOSE
7351
0
      yyerror (YY_("syntax error"));
7352
#else
7353
# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
7354
                                        yyssp, yytoken)
7355
      {
7356
        char const *yymsgp = YY_("syntax error");
7357
        int yysyntax_error_status;
7358
        yysyntax_error_status = YYSYNTAX_ERROR;
7359
        if (yysyntax_error_status == 0)
7360
          yymsgp = yymsg;
7361
        else if (yysyntax_error_status == 1)
7362
          {
7363
            if (yymsg != yymsgbuf)
7364
              YYSTACK_FREE (yymsg);
7365
            yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
7366
            if (!yymsg)
7367
              {
7368
                yymsg = yymsgbuf;
7369
                yymsg_alloc = sizeof yymsgbuf;
7370
                yysyntax_error_status = 2;
7371
              }
7372
            else
7373
              {
7374
                yysyntax_error_status = YYSYNTAX_ERROR;
7375
                yymsgp = yymsg;
7376
              }
7377
          }
7378
        yyerror (yymsgp);
7379
        if (yysyntax_error_status == 2)
7380
          goto yyexhaustedlab;
7381
      }
7382
# undef YYSYNTAX_ERROR
7383
#endif
7384
0
    }
7385
7386
7387
7388
0
  if (yyerrstatus == 3)
7389
0
    {
7390
      /* If just tried and failed to reuse lookahead token after an
7391
         error, discard it.  */
7392
7393
0
      if (yychar <= YYEOF)
7394
0
        {
7395
          /* Return failure if at end of input.  */
7396
0
          if (yychar == YYEOF)
7397
0
            YYABORT;
7398
0
        }
7399
0
      else
7400
0
        {
7401
0
          yydestruct ("Error: discarding",
7402
0
                      yytoken, &yylval);
7403
0
          yychar = YYEMPTY;
7404
0
        }
7405
0
    }
7406
7407
  /* Else will try to reuse lookahead token after shifting the error
7408
     token.  */
7409
0
  goto yyerrlab1;
7410
7411
7412
/*---------------------------------------------------.
7413
| yyerrorlab -- error raised explicitly by YYERROR.  |
7414
`---------------------------------------------------*/
7415
0
yyerrorlab:
7416
  /* Pacify compilers when the user code never invokes YYERROR and the
7417
     label yyerrorlab therefore never appears in user code.  */
7418
0
  if (0)
7419
0
    YYERROR;
7420
7421
  /* Do not reclaim the symbols of the rule whose action triggered
7422
     this YYERROR.  */
7423
0
  YYPOPSTACK (yylen);
7424
0
  yylen = 0;
7425
0
  YY_STACK_PRINT (yyss, yyssp);
7426
0
  yystate = *yyssp;
7427
0
  goto yyerrlab1;
7428
7429
7430
/*-------------------------------------------------------------.
7431
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
7432
`-------------------------------------------------------------*/
7433
0
yyerrlab1:
7434
0
  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
7435
7436
0
  for (;;)
7437
0
    {
7438
0
      yyn = yypact[yystate];
7439
0
      if (!yypact_value_is_default (yyn))
7440
0
        {
7441
0
          yyn += YYTERROR;
7442
0
          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
7443
0
            {
7444
0
              yyn = yytable[yyn];
7445
0
              if (0 < yyn)
7446
0
                break;
7447
0
            }
7448
0
        }
7449
7450
      /* Pop the current state because it cannot handle the error token.  */
7451
0
      if (yyssp == yyss)
7452
0
        YYABORT;
7453
7454
7455
0
      yydestruct ("Error: popping",
7456
0
                  yystos[yystate], yyvsp);
7457
0
      YYPOPSTACK (1);
7458
0
      yystate = *yyssp;
7459
0
      YY_STACK_PRINT (yyss, yyssp);
7460
0
    }
7461
7462
0
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
7463
0
  *++yyvsp = yylval;
7464
0
  YY_IGNORE_MAYBE_UNINITIALIZED_END
7465
7466
7467
  /* Shift the error token.  */
7468
0
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
7469
7470
0
  yystate = yyn;
7471
0
  goto yynewstate;
7472
7473
7474
/*-------------------------------------.
7475
| yyacceptlab -- YYACCEPT comes here.  |
7476
`-------------------------------------*/
7477
0
yyacceptlab:
7478
0
  yyresult = 0;
7479
0
  goto yyreturn;
7480
7481
7482
/*-----------------------------------.
7483
| yyabortlab -- YYABORT comes here.  |
7484
`-----------------------------------*/
7485
0
yyabortlab:
7486
0
  yyresult = 1;
7487
0
  goto yyreturn;
7488
7489
7490
0
#if !defined yyoverflow || YYERROR_VERBOSE
7491
/*-------------------------------------------------.
7492
| yyexhaustedlab -- memory exhaustion comes here.  |
7493
`-------------------------------------------------*/
7494
0
yyexhaustedlab:
7495
0
  yyerror (YY_("memory exhausted"));
7496
0
  yyresult = 2;
7497
  /* Fall through.  */
7498
0
#endif
7499
7500
7501
/*-----------------------------------------------------.
7502
| yyreturn -- parsing is finished, return the result.  |
7503
`-----------------------------------------------------*/
7504
0
yyreturn:
7505
0
  if (yychar != YYEMPTY)
7506
0
    {
7507
      /* Make sure we have latest lookahead translation.  See comments at
7508
         user semantic actions for why this is necessary.  */
7509
0
      yytoken = YYTRANSLATE (yychar);
7510
0
      yydestruct ("Cleanup: discarding lookahead",
7511
0
                  yytoken, &yylval);
7512
0
    }
7513
  /* Do not reclaim the symbols of the rule whose action triggered
7514
     this YYABORT or YYACCEPT.  */
7515
0
  YYPOPSTACK (yylen);
7516
0
  YY_STACK_PRINT (yyss, yyssp);
7517
0
  while (yyssp != yyss)
7518
0
    {
7519
0
      yydestruct ("Cleanup: popping",
7520
0
                  yystos[+*yyssp], yyvsp);
7521
0
      YYPOPSTACK (1);
7522
0
    }
7523
0
#ifndef yyoverflow
7524
0
  if (yyss != yyssa)
7525
0
    YYSTACK_FREE (yyss);
7526
0
#endif
7527
#if YYERROR_VERBOSE
7528
  if (yymsg != yymsgbuf)
7529
    YYSTACK_FREE (yymsg);
7530
#endif
7531
0
  return yyresult;
7532
0
}
7533
#line 2696 "cfg.y"
7534
7535
7536
static inline void ALLOW_UNUSED warn(char* s)
7537
0
{
7538
0
  LM_WARN("warning in config file %s, line %d, column %d-%d: %s\n",
7539
0
      get_cfg_file_name, line, startcolumn, column, s);
7540
0
}
7541
7542
static void yyerror(char* s)
7543
0
{
7544
0
  cfg_dump_backtrace();
7545
0
  LM_CRIT("parse error in %s:%d:%d-%d: %s\n",
7546
0
      get_cfg_file_name, line, startcolumn, column, s);
7547
0
  _cfg_dump_context(get_cfg_file_name, line, startcolumn, column, 1);
7548
0
  cfg_errors++;
7549
0
}
7550
7551
0
#define ERROR_MAXLEN 1024
7552
static void yyerrorf(char *fmt, ...)
7553
0
{
7554
0
  char *tmp = pkg_malloc(ERROR_MAXLEN);
7555
0
  va_list ap;
7556
0
  va_start(ap, fmt);
7557
7558
0
  vsnprintf(tmp, ERROR_MAXLEN, fmt, ap);
7559
0
  yyerror(tmp);
7560
7561
0
  pkg_free(tmp);
7562
0
  va_end(ap);
7563
0
}
7564
7565
7566
static struct socket_id* mk_listen_id(char* host, enum sip_protos proto,
7567
                                  int port)
7568
0
{
7569
0
  struct socket_id* l;
7570
0
  l=pkg_malloc(sizeof(struct socket_id));
7571
0
  if (l==0){
7572
0
    LM_CRIT("cfg. parser: out of memory.\n");
7573
0
  }else{
7574
0
    memset(l, 0, sizeof(*l));
7575
0
    l->name     = host;
7576
0
    l->proto    = proto;
7577
0
    l->port     = port;
7578
0
  }
7579
7580
0
  return l;
7581
0
}
7582
7583
static struct socket_id* mk_bond_id(char *bond_name,
7584
    struct socket_bond_elem *bond_list)
7585
0
{
7586
0
  struct socket_id *sid;
7587
7588
0
  sid = mk_listen_id( bond_name, PROTO_BOND, 0);
7589
0
  if (!sid) {
7590
0
    LM_CRIT("cfg. parser: out of memory.\n");
7591
0
    return NULL;
7592
0
  }
7593
0
  sid->bond_list = bond_list;
7594
0
  add_bond_socket_id(sid);
7595
0
  return sid;
7596
0
}
7597
7598
static struct socket_id* mk_listen_id_range(char* host, enum sip_protos proto, struct port_range *pr)
7599
0
{
7600
0
  int port;
7601
0
  struct socket_id *sid, *first_sid = NULL;
7602
0
  if (!pr)
7603
0
    return mk_listen_id(host, proto, 0);
7604
0
  while (pr) {
7605
0
    for (port = pr->max; port >= pr->min; port--) {
7606
0
      sid = mk_listen_id(host, proto, port);
7607
0
      if (!sid)
7608
0
        return first_sid;
7609
0
      sid->next = first_sid;
7610
0
      first_sid = sid;
7611
0
    }
7612
0
    pr = pr->next;
7613
0
  }
7614
0
  return first_sid;
7615
0
}
7616
7617
static struct socket_bond_elem *new_socket_bond_elem(char *name)
7618
0
{
7619
0
  struct socket_bond_elem *elem = pkg_malloc(sizeof *elem);
7620
7621
0
  if (!elem) {
7622
0
    LM_CRIT("cfg. parser: out of memory.\n");
7623
0
    pkg_free(name);
7624
0
    return NULL;
7625
0
  }
7626
0
  elem->name = name;
7627
0
  elem->next = NULL;
7628
0
  return elem;
7629
0
}
7630
7631
static void fill_socket_id(struct listen_param *param, struct socket_id *s)
7632
0
{
7633
0
  int warn;
7634
0
  struct socket_id *socket;
7635
0
  while (s) {
7636
0
    s->flags |= param->flags;
7637
0
    s->workers = param->workers;
7638
0
    s->tos = param->tos;
7639
0
    s->auto_scaling_profile = param->auto_scaling_profile;
7640
0
    s->tag = param->tag;
7641
0
    if (param->socket) {
7642
0
      socket = param->socket;
7643
0
      param->socket = param->socket->next;
7644
0
      set_listen_id_adv(s, socket->name, socket->port);
7645
0
      pkg_free(socket);
7646
0
    } else if (!warn) {
7647
0
      LM_WARN("inconsistent port range with advertised ports - skipping advertised\n");
7648
0
      warn = 1;
7649
0
    }
7650
0
    s = s->next;
7651
0
  }
7652
  /* free remaining sockets, if any */
7653
0
  while (param->socket) {
7654
0
    if (!warn) {
7655
0
      LM_WARN("inconsistent port range with advertised ports - too many adverised\n");
7656
0
      warn = 1;
7657
0
    }
7658
0
    socket = param->socket->next;
7659
0
    param->socket = param->socket->next;
7660
0
    pkg_free(socket);
7661
0
  }
7662
0
}
7663
7664
static struct multi_str *new_string(char *s)
7665
0
{
7666
0
  struct multi_str *ms = pkg_malloc(sizeof(struct multi_str));
7667
0
  if (!ms) {
7668
0
    LM_CRIT("cfg. parser: out of memory.\n");
7669
0
  }else{
7670
0
    ms->s    = s;
7671
0
    ms->next = NULL;
7672
0
  }
7673
0
  return ms;
7674
0
}
7675
7676
static struct port_range* mk_port_range(int min, int max)
7677
0
{
7678
0
  struct port_range *pr = pkg_malloc(sizeof *pr);
7679
0
  if (pr) {
7680
0
    memset(pr, 0, sizeof *pr);
7681
0
    pr->min = min;
7682
0
    pr->max = max;
7683
0
    pr->next = NULL;
7684
0
  } else {
7685
0
    LM_CRIT("cfg. parser: out of memory.\n");
7686
0
  }
7687
0
  return pr;
7688
0
}
7689
7690
static struct socket_id* set_listen_id_adv(struct socket_id* sock,
7691
                      char *adv_name,
7692
                      int adv_port)
7693
0
{
7694
0
  sock->adv_name=adv_name;
7695
0
  sock->adv_port=adv_port;
7696
0
  return sock;
7697
0
}
7698
7699
static int parse_ipnet(char *in, int len, struct net **ipnet)
7700
0
{
7701
0
  char *p = NULL;
7702
0
  str ip_s, mask_s;
7703
0
  struct ip_addr *ip = NULL, *mask = NULL, *ip_tmp;
7704
0
  int af;
7705
0
  unsigned int bitlen;
7706
7707
0
  p = q_memchr(in, '.', len);
7708
0
  if (p)
7709
0
    af = AF_INET;
7710
0
  else if (q_memchr(in, ':', len)) {
7711
0
    af = AF_INET6;
7712
0
  } else {
7713
0
    LM_ERR("Not an IP");
7714
0
    return -1;
7715
0
  }
7716
7717
0
  p = q_memchr(in, '/', len);
7718
0
  if (!p) {
7719
0
    LM_ERR("No netmask\n");
7720
0
    return -1;
7721
0
  }
7722
0
  ip_s.s = in;
7723
0
  ip_s.len = p - in;
7724
7725
0
  mask_s.s = p + 1;
7726
0
  mask_s.len = len - ip_s.len - 1;
7727
0
  if (!mask_s.s || mask_s.len == 0) {
7728
0
    LM_ERR("Empty netmask\n");
7729
0
    return -1;
7730
0
  }
7731
7732
0
  ip_tmp = (af == AF_INET) ? str2ip(&ip_s) : str2ip6(&ip_s);
7733
0
  if (!ip_tmp) {
7734
0
    LM_ERR("Invalid IP\n");
7735
0
    return -1;
7736
0
  }
7737
0
  ip = pkg_malloc(sizeof *ip);
7738
0
  if (!ip) {
7739
0
    LM_CRIT("No more pkg memory\n");
7740
0
    return -1;
7741
0
  }
7742
0
  memcpy(ip, ip_tmp, sizeof *ip);
7743
7744
0
  p = (af == AF_INET) ? q_memchr(p, '.', len-(p-in)+1) : q_memchr(p, ':', len-(p-in)+1);
7745
0
  if (p) {
7746
0
    ip_tmp = (af == AF_INET) ? str2ip(&mask_s) : str2ip6(&mask_s);
7747
0
    if (!ip_tmp) {
7748
0
      LM_ERR("Invalid netmask\n");
7749
0
      return -1;
7750
0
    }
7751
0
    mask = pkg_malloc(sizeof *mask);
7752
0
    if (!mask) {
7753
0
      LM_CRIT("No more pkg memory\n");
7754
0
      return -1;
7755
0
    }
7756
0
    memcpy(mask, ip_tmp, sizeof *mask);
7757
7758
0
    *ipnet = mk_net(ip, mask);
7759
0
  } else {
7760
0
    if (str2int(&mask_s, &bitlen) < 0) {
7761
0
      LM_ERR("Invalid netmask bitlen\n");
7762
0
      return -1;
7763
0
    }
7764
7765
0
    *ipnet = mk_net_bitlen(ip, bitlen);
7766
0
  }
7767
7768
0
  pkg_free(ip);
7769
0
  pkg_free(mask);
7770
7771
0
  if (*ipnet == NULL)
7772
0
      return -1;
7773
7774
0
  return 0;
7775
0
}