Coverage Report

Created: 2026-04-29 06:40

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