Coverage Report

Created: 2025-10-10 06:07

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