Changeset 7023

Show
Ignore:
Timestamp:
11/08/07 18:40:52 (9 months ago)
Author:
sdlime
Message:

Parser output generated by bison version 1.875. (bug 2373)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/mapserver/mapparser.c

    r6898 r7023  
    1 /* A Bison parser, made from mapparser.y 
    2    by GNU bison 1.35.  */ 
    3  
    4 #define YYBISON 1  /* Identify Bison output.  */ 
    5  
     1/* A Bison parser, made by GNU Bison 1.875.  */ 
     2 
     3/* Skeleton parser for Yacc-like parsing with Bison, 
     4   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc. 
     5 
     6   This program is free software; you can redistribute it and/or modify 
     7   it under the terms of the GNU General Public License as published by 
     8   the Free Software Foundation; either version 2, or (at your option) 
     9   any later version. 
     10 
     11   This program is distributed in the hope that it will be useful, 
     12   but WITHOUT ANY WARRANTY; without even the implied warranty of 
     13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
     14   GNU General Public License for more details. 
     15 
     16   You should have received a copy of the GNU General Public License 
     17   along with this program; if not, write to the Free Software 
     18   Foundation, Inc., 59 Temple Place - Suite 330, 
     19   Boston, MA 02111-1307, USA.  */ 
     20 
     21/* As a special exception, when this file is copied by Bison into a 
     22   Bison output file, you may use that output file without restriction. 
     23   This special exception was added by the Free Software Foundation 
     24   in version 1.24 of Bison.  */ 
     25 
     26/* Written by Richard Stallman by simplifying the original so called 
     27   ``semantic'' parser.  */ 
     28 
     29/* All symbols defined below should begin with yy or YY, to avoid 
     30   infringing on user name space.  This should be done even for local 
     31   variables, as they might otherwise be expanded by user macros. 
     32   There are some unavoidable exceptions within include files to 
     33   define necessary library symbols; they are noted "INFRINGES ON 
     34   USER NAME SPACE" below.  */ 
     35 
     36/* Identify Bison output.  */ 
     37#define YYBISON 1 
     38 
     39/* Skeleton name.  */ 
     40#define YYSKELETON_NAME "yacc.c" 
     41 
     42/* Pure parsers.  */ 
     43#define YYPURE 0 
     44 
     45/* Using locations.  */ 
     46#define YYLSP_NEEDED 0 
     47 
     48/* If NAME_PREFIX is specified substitute the variables and functions 
     49   names.  */ 
    650#define yyparse msyyparse 
    7 #define yylex msyylex 
     51#define yylex   msyylex 
    852#define yyerror msyyerror 
    9 #define yylval msyylval 
    10 #define yychar msyychar 
     53#define yylval msyylval 
     54#define yychar msyychar 
    1155#define yydebug msyydebug 
    1256#define yynerrs msyynerrs 
    13 # define        NUMBER  257 
    14 # define        STRING  258 
    15 # define        ISTRING 259 
    16 # define        TIME    260 
    17 # define        REGEX   261 
    18 # define        IREGEX  262 
    19 # define        OR      263 
    20 # define        AND     264 
    21 # define        NOT     265 
    22 # define        RE      266 
    23 # define        EQ      267 
    24 # define        NE      268 
    25 # define        LT      269 
    26 # define        GT      270 
    27 # define        LE      271 
    28 # define        GE      272 
    29 # define        IN      273 
    30 # define        IEQ     274 
    31 # define        LENGTH  275 
    32 # define        NEG     276 
    33  
     57 
     58 
     59/* Tokens.  */ 
     60#ifndef YYTOKENTYPE 
     61# define YYTOKENTYPE 
     62   /* Put the tokens into the symbol table, so that GDB and other debuggers 
     63      know about them.  */ 
     64   enum yytokentype { 
     65     NUMBER = 258, 
     66     STRING = 259, 
     67     ISTRING = 260, 
     68     TIME = 261, 
     69     REGEX = 262, 
     70     IREGEX = 263, 
     71     OR = 264, 
     72     AND = 265, 
     73     NOT = 266, 
     74     IEQ = 267, 
     75     IN = 268, 
     76     GE = 269, 
     77     LE = 270, 
     78     GT = 271, 
     79     LT = 272, 
     80     NE = 273, 
     81     EQ = 274, 
     82     RE = 275, 
     83     LENGTH = 276, 
     84     NEG = 277 
     85   }; 
     86#endif 
     87#define NUMBER 258 
     88#define STRING 259 
     89#define ISTRING 260 
     90#define TIME 261 
     91#define REGEX 262 
     92#define IREGEX 263 
     93#define OR 264 
     94#define AND 265 
     95#define NOT 266 
     96#define IEQ 267 
     97#define IN 268 
     98#define GE 269 
     99#define LE 270 
     100#define GT 271 
     101#define LT 272 
     102#define NE 273 
     103#define EQ 274 
     104#define RE 275 
     105#define LENGTH 276 
     106#define NEG 277 
     107 
     108 
     109 
     110 
     111/* Copy the first part of user declarations.  */ 
    34112#line 5 "mapparser.y" 
    35113 
     
    49127int msyyresult; 
    50128 
     129 
     130/* Enabling traces.  */ 
     131#ifndef YYDEBUG 
     132# define YYDEBUG 0 
     133#endif 
     134 
     135/* Enabling verbose error messages.  */ 
     136#ifdef YYERROR_VERBOSE 
     137# undef YYERROR_VERBOSE 
     138# define YYERROR_VERBOSE 1 
     139#else 
     140# define YYERROR_VERBOSE 0 
     141#endif 
     142 
     143#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) 
    51144#line 24 "mapparser.y" 
    52 #ifndef YYSTYPE 
    53 typedef union { 
     145typedef union YYSTYPE { 
    54146  double dblval; 
    55147  int intval;   
    56148  char *strval;   
    57149  struct tm tmval; 
    58 } yystype; 
    59 # define YYSTYPE yystype 
     150} YYSTYPE; 
     151/* Line 191 of yacc.c.  */ 
     152#line 152 "mapparser.c" 
     153# define yystype YYSTYPE /* obsolescent; will be withdrawn */ 
     154# define YYSTYPE_IS_DECLARED 1 
    60155# define YYSTYPE_IS_TRIVIAL 1 
    61156#endif 
    62 #ifndef YYDEBUG 
    63 # define YYDEBUG 0 
    64 #endif 
    65  
    66  
    67  
    68 #define YYFINAL         109 
    69 #define YYFLAG          -32768 
    70 #define YYNTBASE        31 
    71  
    72 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ 
    73 #define YYTRANSLATE(x) ((unsigned)(x) <= 276 ? yytranslate[x] : 37) 
    74  
    75 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ 
    76 static const char yytranslate[] = 
    77 
    78        0,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    79        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    80        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    81        2,     2,     2,     2,     2,     2,     2,    26,     2,     2, 
    82       29,    30,    24,    22,     2,    23,     2,    25,     2,     2, 
    83        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    84        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    85        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    86        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    87        2,     2,     2,     2,    28,     2,     2,     2,     2,     2, 
    88        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    89        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    90        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    91        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    92        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    93        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    94        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    95        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    96        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    97        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    98        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    99        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    100        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    101        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    102        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
    103        2,     2,     2,     2,     2,     2,     1,     3,     4,     5, 
    104        6,     7,     8,     9,    10,    11,    12,    13,    14,    15, 
    105       16,    17,    18,    19,    20,    21,    27 
    106 }; 
    107  
    108 #if YYDEBUG 
    109 static const short yyprhs[] = 
    110 
    111        0,     0,     1,     3,     5,     7,    11,    15,    19,    23, 
    112       27,    31,    35,    39,    42,    45,    49,    53,    57,    61, 
    113       65,    69,    73,    77,    81,    85,    89,    93,    97,   101, 
    114      105,   109,   113,   117,   121,   125,   129,   133,   137,   141, 
    115      145,   147,   151,   155,   159,   163,   167,   170,   174,   178, 
    116      183,   185,   189,   193,   195 
    117 }; 
    118 static const short yyrhs[] = 
    119 
    120       -1,    33,     0,    34,     0,     7,     0,    33,     9,    33, 
    121        0,    33,    10,    33,     0,    33,     9,    34,     0,    33, 
    122       10,    34,     0,    34,     9,    33,     0,    34,    10,    33, 
    123        0,    34,     9,    34,     0,    34,    10,    34,     0,    11, 
    124       33,     0,    11,    34,     0,    35,    12,    32,     0,    34, 
    125       13,    34,     0,    34,    14,    34,     0,    34,    16,    34, 
    126        0,    34,    15,    34,     0,    34,    18,    34,     0,    34, 
    127       17,    34,     0,    29,    33,    30,     0,    35,    13,    35, 
    128        0,    35,    14,    35,     0,    35,    16,    35,     0,    35, 
    129       15,    35,     0,    35,    18,    35,     0,    35,    17,    35, 
    130        0,    36,    13,    36,     0,    36,    14,    36,     0,    36, 
    131       16,    36,     0,    36,    15,    36,     0,    36,    18,    36, 
    132        0,    36,    17,    36,     0,    35,    19,    35,     0,    34, 
    133       19,    35,     0,    34,    20,    34,     0,    35,    20,    35, 
    134        0,    36,    20,    36,     0,     3,     0,    34,    22,    34, 
    135        0,    34,    23,    34,     0,    34,    24,    34,     0,    34, 
    136       26,    34,     0,    34,    25,    34,     0,    23,    34,     0, 
    137       34,    28,    34,     0,    29,    34,    30,     0,    21,    29, 
    138       35,    30,     0,     4,     0,    29,    35,    30,     0,    35, 
    139       22,    35,     0,     6,     0,    29,    36,    30,     0 
    140 }; 
    141  
    142 #endif 
    143  
    144 #if YYDEBUG 
    145 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 
    146 static const short yyrline[] = 
    147 
    148        0,    57,    58,    61,    69,    71,    80,    89,    97,   106, 
    149      114,   123,   131,   140,   141,   142,   155,   161,   167,   173, 
    150      179,   185,   191,   192,   200,   208,   217,   225,   233,   241, 
    151      247,   253,   259,   265,   271,   277,   298,   319,   325,   333, 
    152      341,   342,   343,   344,   345,   346,   353,   354,   355,   356, 
    153      359,   360,   361,   364,   365 
    154 }; 
    155 #endif 
    156  
    157  
    158 #if (YYDEBUG) || defined YYERROR_VERBOSE 
    159  
    160 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ 
    161 static const char *const yytname[] = 
    162 
    163   "$", "error", "$undefined.", "NUMBER", "STRING", "ISTRING", "TIME",  
    164   "REGEX", "IREGEX", "OR", "AND", "NOT", "RE", "EQ", "NE", "LT", "GT",  
    165   "LE", "GE", "IN", "IEQ", "LENGTH", "'+'", "'-'", "'*'", "'/'", "'%'",  
    166   "NEG", "'^'", "'('", "')'", "input", "regular_exp", "logical_exp",  
    167   "math_exp", "string_exp", "time_exp", 0 
    168 }; 
    169 #endif 
    170  
    171 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 
    172 static const short yyr1[] = 
    173 
    174        0,    31,    31,    31,    32,    33,    33,    33,    33,    33, 
    175       33,    33,    33,    33,    33,    33,    33,    33,    33,    33, 
    176       33,    33,    33,    33,    33,    33,    33,    33,    33,    33, 
    177       33,    33,    33,    33,    33,    33,    33,    33,    33,    33, 
    178       34,    34,    34,    34,    34,    34,    34,    34,    34,    34, 
    179       35,    35,    35,    36,    36 
    180 }; 
    181  
    182 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 
    183 static const short yyr2[] = 
    184 
    185        0,     0,     1,     1,     1,     3,     3,     3,     3,     3, 
    186        3,     3,     3,     2,     2,     3,     3,     3,     3,     3, 
    187        3,     3,     3,     3,     3,     3,     3,     3,     3,     3, 
    188        3,     3,     3,     3,     3,     3,     3,     3,     3,     3, 
    189        1,     3,     3,     3,     3,     3,     2,     3,     3,     4, 
    190        1,     3,     3,     1,     3 
    191 }; 
    192  
    193 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE 
    194    doesn't specify something else to do.  Zero means the default is an 
    195    error. */ 
    196 static const short yydefact[] = 
    197 
    198        1,    40,    50,    53,     0,     0,     0,     0,     2,     3, 
    199        0,     0,    13,    14,     0,     0,    46,     0,     0,     0, 
    200        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    201        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    202        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
    203        0,     0,     0,     0,     0,     0,     0,     0,     0,    22, 
    204       48,    51,    54,     5,     7,     6,     8,     9,    11,    10, 
    205       12,    16,    17,    19,    18,    21,    20,    36,    37,    41, 
    206       42,    43,    45,    44,    47,     4,    15,    23,    24,    26, 
    207       25,    28,    27,    35,    38,    52,     0,    29,    30,    32, 
    208       31,    34,    33,    39,     0,    49,     0,     0,     0,     0 
    209 }; 
    210  
    211 static const short yydefgoto[] = 
    212 
    213      107,    86,     8,     9,    10,    11 
    214 }; 
    215  
    216 static const short yypact[] = 
    217 
    218       -2,-32768,-32768,-32768,    -2,   -24,     3,    -2,    49,   121, 
    219      192,   202,-32768,   175,    -1,     3,   -20,     4,    99,   155, 
    220      166,    -2,    -2,    -2,    -2,     3,     3,     3,     3,     3, 
    221        3,    -1,     3,     3,     3,     3,     3,     3,     3,     8, 
    222       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1, 
    223        1,     1,     1,     1,     1,     1,    -1,   -12,    44,-32768, 
    224   -32768,-32768,-32768,     7,   138,-32768,   175,     7,   138,-32768, 
    225      175,    13,    13,    13,    13,    13,    13,   -11,    13,    57, 
    226       57,   -20,   -20,   -20,   -20,-32768,-32768,   -11,   -11,   -11, 
    227      -11,   -11,   -11,   -11,   -11,-32768,     1,-32768,-32768,-32768, 
    228   -32768,-32768,-32768,-32768,   -10,-32768,    -8,    25,    29,-32768 
    229 }; 
    230  
    231 static const short yypgoto[] = 
    232 
    233   -32768,-32768,    56,    69,     9,    -7 
    234 }; 
    235  
    236  
    237 #define YYLAST          222 
    238  
    239  
    240 static const short yytable[] = 
    241 
    242       20,     1,     2,     2,     3,    14,     1,     3,    38,     4, 
    243       48,    48,    48,    21,    22,    85,    19,    22,   105,     5, 
    244       61,     6,    62,    57,     5,   108,     6,     7,    56,   109, 
    245       96,     0,    15,     0,    59,    33,    34,    35,    36,    37, 
    246       77,    38,    97,    98,    99,   100,   101,   102,   103,    87, 
    247       88,    89,    90,    91,    92,    93,    94,    95,    21,    22, 
    248       12,     0,     0,    17,     0,   104,    33,    34,    35,    36, 
    249       37,     0,    38,    13,    60,    16,    18,    63,    65,    67, 
    250       69,    35,    36,    37,    58,    38,     0,     0,     0,   106, 
    251       64,    66,    68,    70,    71,    72,    73,    74,    75,    76, 
    252        0,    78,    79,    80,    81,    82,    83,    84,    23,    24, 
    253        0,     0,    25,    26,    27,    28,    29,    30,    31,    32, 
    254        0,    33,    34,    35,    36,    37,     0,    38,     0,    60, 
    255       23,    24,     0,     0,    25,    26,    27,    28,    29,    30, 
    256       31,    32,     0,    33,    34,    35,    36,    37,    24,    38, 
    257        0,    25,    26,    27,    28,    29,    30,    31,    32,     0, 
    258       33,    34,    35,    36,    37,     0,    38,    39,    40,    41, 
    259       42,    43,    44,    45,    46,    47,     0,    48,     0,    49, 
    260       50,    51,    52,    53,    54,    61,    55,     0,    25,    26, 
    261       27,    28,    29,    30,    31,    32,    62,    33,    34,    35, 
    262       36,    37,     0,    38,    39,    40,    41,    42,    43,    44, 
    263       45,    46,    47,     0,    48,    49,    50,    51,    52,    53, 
    264       54,     0,    55 
    265 }; 
    266  
    267 static const short yycheck[] = 
    268 
    269        7,     3,     4,     4,     6,    29,     3,     6,    28,    11, 
    270       22,    22,    22,     9,    10,     7,     7,    10,    30,    21, 
    271       30,    23,    30,    14,    21,     0,    23,    29,    29,     0, 
    272       29,    -1,    29,    -1,    30,    22,    23,    24,    25,    26, 
    273       31,    28,    49,    50,    51,    52,    53,    54,    55,    40, 
    274       41,    42,    43,    44,    45,    46,    47,    48,     9,    10, 
    275        4,    -1,    -1,     7,    -1,    56,    22,    23,    24,    25, 
    276       26,    -1,    28,     4,    30,     6,     7,    21,    22,    23, 
    277       24,    24,    25,    26,    15,    28,    -1,    -1,    -1,    96, 
    278       21,    22,    23,    24,    25,    26,    27,    28,    29,    30, 
    279       -1,    32,    33,    34,    35,    36,    37,    38,     9,    10, 
    280       -1,    -1,    13,    14,    15,    16,    17,    18,    19,    20, 
    281       -1,    22,    23,    24,    25,    26,    -1,    28,    -1,    30, 
    282        9,    10,    -1,    -1,    13,    14,    15,    16,    17,    18, 
    283       19,    20,    -1,    22,    23,    24,    25,    26,    10,    28, 
    284       -1,    13,    14,    15,    16,    17,    18,    19,    20,    -1, 
    285       22,    23,    24,    25,    26,    -1,    28,    12,    13,    14, 
    286       15,    16,    17,    18,    19,    20,    -1,    22,    -1,    13, 
    287       14,    15,    16,    17,    18,    30,    20,    -1,    13,    14, 
    288       15,    16,    17,    18,    19,    20,    30,    22,    23,    24, 
    289       25,    26,    -1,    28,    12,    13,    14,    15,    16,    17, 
    290       18,    19,    20,    -1,    22,    13,    14,    15,    16,    17, 
    291       18,    -1,    20 
    292 }; 
    293 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */ 
    294 #line 3 "/sw/share/bison/bison.simple" 
    295  
    296 /* Skeleton output parser for bison, 
    297  
    298    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software 
    299    Foundation, Inc. 
    300  
    301    This program is free software; you can redistribute it and/or modify 
    302    it under the terms of the GNU General Public License as published by 
    303    the Free Software Foundation; either version 2, or (at your option) 
    304    any later version. 
    305  
    306    This program is distributed in the hope that it will be useful, 
    307    but WITHOUT ANY WARRANTY; without even the implied warranty of 
    308    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    309    GNU General Public License for more details. 
    310  
    311    You should have received a copy of the GNU General Public License 
    312    along with this program; if not, write to the Free Software 
    313    Foundation, Inc., 59 Temple Place - Suite 330, 
    314    Boston, MA 02111-1307, USA.  */ 
    315  
    316 /* As a special exception, when this file is copied by Bison into a 
    317    Bison output file, you may use that output file without restriction. 
    318    This special exception was added by the Free Software Foundation 
    319    in version 1.24 of Bison.  */ 
    320  
    321 /* This is the parser code that is written into each bison parser when 
    322    the %semantic_parser declaration is not specified in the grammar. 
    323    It was written by Richard Stallman by simplifying the hairy parser 
    324    used when %semantic_parser is specified.  */ 
    325  
    326 /* All symbols defined below should begin with yy or YY, to avoid 
    327    infringing on user name space.  This should be done even for local 
    328    variables, as they might otherwise be expanded by user macros. 
    329    There are some unavoidable exceptions within include files to 
    330    define necessary library symbols; they are noted "INFRINGES ON 
    331    USER NAME SPACE" below.  */ 
    332  
    333 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE) 
     157 
     158 
     159 
     160/* Copy the second part of user declarations.  */ 
     161 
     162 
     163/* Line 214 of yacc.c.  */ 
     164#line 164 "mapparser.c" 
     165 
     166#if ! defined (yyoverflow) || YYERROR_VERBOSE 
    334167 
    335168/* The parser invokes alloca or malloc; define the necessary symbols.  */ 
     
    360193#  define YYSTACK_FREE free 
    361194# endif 
    362 #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ 
     195#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ 
    363196 
    364197 
    365198#if (! defined (yyoverflow) \ 
    366199     && (! defined (__cplusplus) \ 
    367          || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 
     200         || (YYSTYPE_IS_TRIVIAL))) 
    368201 
    369202/* A type that is properly aligned for any stack member.  */ 
     
    372205  short yyss; 
    373206  YYSTYPE yyvs; 
    374 # if YYLSP_NEEDED 
    375   YYLTYPE yyls; 
    376 # endif 
    377 }; 
     207  }; 
    378208 
    379209/* The size of the maximum gap between one aligned stack and the next.  */ 
    380 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) 
     210# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 
    381211 
    382212/* The size of an array large to enough to hold all stacks, each with 
    383213   N elements.  */ 
    384 # if YYLSP_NEEDED 
    385 #  define YYSTACK_BYTES(N) \ 
    386      ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))      \ 
    387       + 2 * YYSTACK_GAP_MAX) 
    388 # else 
    389 #  define YYSTACK_BYTES(N) \ 
     214# define YYSTACK_BYTES(N) \ 
    390215     ((N) * (sizeof (short) + sizeof (YYSTYPE))                         \ 
    391       + YYSTACK_GAP_MAX) 
    392 # endif 
     216      + YYSTACK_GAP_MAXIMUM) 
    393217 
    394218/* Copy COUNT objects from FROM to TO.  The source and destination do 
     
    421245        YYCOPY (&yyptr->Stack, Stack, yysize);                          \ 
    422246        Stack = &yyptr->Stack;                                          \ 
    423         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX
     247        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM;
    424248        yyptr += yynewbytes / sizeof (*yyptr);                          \ 
    425249      }                                                                 \ 
     
    428252#endif 
    429253 
     254#if defined (__STDC__) || defined (__cplusplus) 
     255   typedef signed char yysigned_char; 
     256#else 
     257   typedef short yysigned_char; 
     258#endif 
     259 
     260/* YYFINAL -- State number of the termination state. */ 
     261#define YYFINAL  22 
     262/* YYLAST -- Last index in YYTABLE.  */ 
     263#define YYLAST   215 
     264 
     265/* YYNTOKENS -- Number of terminals. */ 
     266#define YYNTOKENS  31 
     267/* YYNNTS -- Number of nonterminals. */ 
     268#define YYNNTS  7 
     269/* YYNRULES -- Number of rules. */ 
     270#define YYNRULES  55 
     271/* YYNRULES -- Number of states. */ 
     272#define YYNSTATES  109 
     273 
     274/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */ 
     275#define YYUNDEFTOK  2 
     276#define YYMAXUTOK   277 
     277 
     278#define YYTRANSLATE(YYX)                                                \ 
     279  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 
     280 
     281/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */ 
     282static const unsigned char yytranslate[] = 
     283{ 
     284       0,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     285       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     286       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     287       2,     2,     2,     2,     2,     2,     2,    26,     2,     2, 
     288      29,    30,    24,    22,     2,    23,     2,    25,     2,     2, 
     289       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     290       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     291       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     292       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     293       2,     2,     2,     2,    28,     2,     2,     2,     2,     2, 
     294       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     295       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     296       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     297       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     298       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     299       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     300       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     301       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     302       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     303       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     304       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     305       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     306       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     307       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     308       2,     2,     2,     2,     2,     2,     2,     2,     2,     2, 
     309       2,     2,     2,     2,     2,     2,     1,     2,     3,     4, 
     310       5,     6,     7,     8,     9,    10,    11,    12,    13,    14, 
     311      15,    16,    17,    18,    19,    20,    21,    27 
     312}; 
     313 
     314#if YYDEBUG 
     315/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 
     316   YYRHS.  */ 
     317static const unsigned char yyprhs[] = 
     318{ 
     319       0,     0,     3,     4,     6,     8,    10,    14,    18,    22, 
     320      26,    30,    34,    38,    42,    45,    48,    52,    56,    60, 
     321      64,    68,    72,    76,    80,    84,    88,    92,    96,   100, 
     322     104,   108,   112,   116,   120,   124,   128,   132,   136,   140, 
     323     144,   148,   150,   154,   158,   162,   166,   170,   173,   177, 
     324     181,   186,   188,   192,   196,   198 
     325}; 
     326 
     327/* YYRHS -- A `-1'-separated list of the rules' RHS. */ 
     328static const yysigned_char yyrhs[] = 
     329{ 
     330      32,     0,    -1,    -1,    34,    -1,    35,    -1,     7,    -1, 
     331      34,     9,    34,    -1,    34,    10,    34,    -1,    34,     9, 
     332      35,    -1,    34,    10,    35,    -1,    35,     9,    34,    -1, 
     333      35,    10,    34,    -1,    35,     9,    35,    -1,    35,    10, 
     334      35,    -1,    11,    34,    -1,    11,    35,    -1,    36,    20, 
     335      33,    -1,    35,    19,    35,    -1,    35,    18,    35,    -1, 
     336      35,    16,    35,    -1,    35,    17,    35,    -1,    35,    14, 
     337      35,    -1,    35,    15,    35,    -1,    29,    34,    30,    -1, 
     338      36,    19,    36,    -1,    36,    18,    36,    -1,    36,    16, 
     339      36,    -1,    36,    17,    36,    -1,    36,    14,    36,    -1, 
     340      36,    15,    36,    -1,    37,    19,    37,    -1,    37,    18, 
     341      37,    -1,    37,    16,    37,    -1,    37,    17,    37,    -1, 
     342      37,    14,    37,    -1,    37,    15,    37,    -1,    36,    13, 
     343      36,    -1,    35,    13,    36,    -1,    35,    12,    35,    -1, 
     344      36,    12,    36,    -1,    37,    12,    37,    -1,     3,    -1, 
     345      35,    22,    35,    -1,    35,    23,    35,    -1,    35,    24, 
     346      35,    -1,    35,    26,    35,    -1,    35,    25,    35,    -1, 
     347      23,    35,    -1,    35,    28,    35,    -1,    29,    35,    30, 
     348      -1,    21,    29,    36,    30,    -1,     4,    -1,    29,    36, 
     349      30,    -1,    36,    22,    36,    -1,     6,    -1,    29,    37, 
     350      30,    -1 
     351}; 
     352 
     353/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */ 
     354static const unsigned short yyrline[] = 
     355{ 
     356       0,    57,    57,    58,    61,    69,    72,    80,    89,    97, 
     357     106,   114,   123,   131,   140,   141,   142,   155,   161,   167, 
     358     173,   179,   185,   191,   192,   200,   208,   217,   225,   233, 
     359     241,   247,   253,   259,   265,   271,   277,   298,   319,   325, 
     360     333,   341,   342,   343,   344,   345,   346,   353,   354,   355, 
     361     356,   359,   360,   361,   364,   365 
     362}; 
     363#endif 
     364 
     365#if YYDEBUG || YYERROR_VERBOSE 
     366/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 
     367   First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 
     368static const char *const yytname[] = 
     369{ 
     370  "$end", "error", "$undefined", "NUMBER", "STRING", "ISTRING", "TIME",  
     371  "REGEX", "IREGEX", "OR", "AND", "NOT", "IEQ", "IN", "GE", "LE", "GT",  
     372  "LT", "NE", "EQ", "RE", "LENGTH", "'+'", "'-'", "'*'", "'/'", "'%'",  
     373  "NEG", "'^'", "'('", "')'", "$accept", "input", "regular_exp",  
     374  "logical_exp", "math_exp", "string_exp", "time_exp", 0 
     375}; 
     376#endif 
     377 
     378# ifdef YYPRINT 
     379/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 
     380   token YYLEX-NUM.  */ 
     381static const unsigned short yytoknum[] = 
     382{ 
     383       0,   256,   257,   258,   259,   260,   261,   262,   263,   264, 
     384     265,   266,   267,   268,   269,   270,   271,   272,   273,   274, 
     385     275,   276,    43,    45,    42,    47,    37,   277,    94,    40, 
     386      41 
     387}; 
     388# endif 
     389 
     390/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */ 
     391static const unsigned char yyr1[] = 
     392{ 
     393       0,    31,    32,    32,    32,    33,    34,    34,    34,    34, 
     394      34,    34,    34,    34,    34,    34,    34,    34,    34,    34, 
     395      34,    34,    34,    34,    34,    34,    34,    34,    34,    34, 
     396      34,    34,    34,    34,    34,    34,    34,    34,    34,    34, 
     397      34,    35,    35,    35,    35,    35,    35,    35,    35,    35, 
     398      35,    36,    36,    36,    37,    37 
     399}; 
     400 
     401/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */ 
     402static const unsigned char yyr2[] = 
     403{ 
     404       0,     2,     0,     1,     1,     1,     3,     3,     3,     3, 
     405       3,     3,     3,     3,     2,     2,     3,     3,     3,     3, 
     406       3,     3,     3,     3,     3,     3,     3,     3,     3,     3, 
     407       3,     3,     3,     3,     3,     3,     3,     3,     3,     3, 
     408       3,     1,     3,     3,     3,     3,     3,     2,     3,     3, 
     409       4,     1,     3,     3,     1,     3 
     410}; 
     411 
     412/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state 
     413   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero 
     414   means the default is an error.  */ 
     415static const unsigned char yydefact[] = 
     416{ 
     417       2,    41,    51,    54,     0,     0,     0,     0,     0,     3, 
     418       4,     0,     0,    14,    15,     0,     0,    47,     0,     0, 
     419       0,     0,     1,     0,     0,     0,     0,     0,     0,     0, 
     420       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
     421       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
     422       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, 
     423       0,    23,    49,    52,    55,     6,     8,     7,     9,    10, 
     424      12,    11,    13,    38,    37,    21,    22,    19,    20,    18, 
     425      17,    42,    43,    44,    46,    45,    48,    39,    36,    28, 
     426      29,    26,    27,    25,    24,     5,    16,    53,     0,    40, 
     427      34,    35,    32,    33,    31,    30,     0,    50,     0 
     428}; 
     429 
     430/* YYDEFGOTO[NTERM-NUM]. */ 
     431static const yysigned_char yydefgoto[] = 
     432{ 
     433      -1,     8,    96,     9,    10,    11,    12 
     434}; 
     435 
     436/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 
     437   STATE-NUM.  */ 
     438#define YYPACT_NINF -28 
     439static const short yypact[] = 
     440{ 
     441      58,   -28,   -28,   -28,    58,   -27,    63,    58,     5,    73, 
     442     110,   180,   189,   -28,   163,    11,    63,   -12,    33,    88, 
     443     144,   153,   -28,    58,    58,    58,    58,    63,    11,    63, 
     444      63,    63,    63,    63,    63,    63,    63,    63,    63,    63, 
     445      63,    11,    11,    11,    11,    11,    11,    11,    11,    32, 
     446      11,    12,    12,    12,    12,    12,    12,    12,    11,   -11, 
     447     -16,   -28,   -28,   -28,   -28,    55,   127,   -28,   163,    55, 
     448     127,   -28,   163,   187,    48,   187,   187,   187,   187,   187, 
     449     187,    47,    47,   -12,   -12,   -12,   -12,    48,    48,    48, 
     450      48,    48,    48,    48,    48,   -28,   -28,   -28,    12,   -28, 
     451     -28,   -28,   -28,   -28,   -28,   -28,    37,   -28,    46 
     452}; 
     453 
     454/* YYPGOTO[NTERM-NUM].  */ 
     455static const yysigned_char yypgoto[] = 
     456{ 
     457     -28,   -28,   -28,    70,    -3,    10,    -7 
     458}; 
     459 
     460/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If 
     461   positive, shift that token.  If negative, reduce the rule which 
     462   number is the opposite.  If zero, do what YYDEFACT says. 
     463   If YYTABLE_NINF, syntax error.  */ 
     464#define YYTABLE_NINF -1 
     465static const unsigned char yytable[] = 
     466{ 
     467      21,    14,    15,    17,    19,    22,    35,    36,    37,    38, 
     468      39,    50,    40,    60,    62,     2,    40,    20,     3,   107, 
     469      66,    68,    70,    72,    73,    59,    75,    76,    77,    78, 
     470      79,    80,    81,    82,    83,    84,    85,    86,    74,    95, 
     471      58,    98,    23,    24,    99,   100,   101,   102,   103,   104, 
     472     105,    87,    88,    89,    90,    91,    92,    93,    94,    50, 
     473      97,     1,     2,    61,     3,    24,     1,    63,   106,     4, 
     474      50,    37,    38,    39,    13,    40,    64,    18,     0,     5, 
     475       0,     6,    23,    24,     5,     0,     6,     7,     0,     0, 
     476       0,   108,    16,    65,    67,    69,    71,    25,    26,     0, 
     477      27,    28,    29,    30,    31,    32,    33,    34,     0,     0, 
     478      35,    36,    37,    38,    39,     0,    40,     0,    62,    25, 
     479      26,     0,    27,    28,    29,    30,    31,    32,    33,    34, 
     480       0,     0,    35,    36,    37,    38,    39,    26,    40,    27, 
     481      28,    29,    30,    31,    32,    33,    34,     0,     0,    35, 
     482      36,    37,    38,    39,     0,    40,    41,    42,    43,    44, 
     483      45,    46,    47,    48,    49,    51,    50,    52,    53,    54, 
     484      55,    56,    57,     0,    63,    27,    28,    29,    30,    31, 
     485      32,    33,    34,    64,     0,    35,    36,    37,    38,    39, 
     486       0,    40,    41,    42,    43,    44,    45,    46,    47,    48, 
     487      49,    51,    50,    52,    53,    54,    55,    56,    57,    35, 
     488      36,    37,    38,    39,     0,    40 
     489}; 
     490 
     491static const yysigned_char yycheck[] = 
     492{ 
     493       7,     4,    29,     6,     7,     0,    22,    23,    24,    25, 
     494      26,    22,    28,    16,    30,     4,    28,     7,     6,    30, 
     495      23,    24,    25,    26,    27,    15,    29,    30,    31,    32, 
     496      33,    34,    35,    36,    37,    38,    39,    40,    28,     7, 
     497      29,    29,     9,    10,    51,    52,    53,    54,    55,    56, 
     498      57,    41,    42,    43,    44,    45,    46,    47,    48,    22, 
     499      50,     3,     4,    30,     6,    10,     3,    30,    58,    11, 
     500      22,    24,    25,    26,     4,    28,    30,     7,    -1,    21, 
     501      -1,    23,     9,    10,    21,    -1,    23,    29,    -1,    -1, 
     502      -1,    98,    29,    23,    24,    25,    26,     9,    10,    -1, 
     503      12,    13,    14,    15,    16,    17,    18,    19,    -1,    -1, 
     504      22,    23,    24,    25,    26,    -1,    28,    -1,    30,     9, 
     505      10,    -1,    12,    13,    14,    15,    16,    17,    18,    19, 
     506      -1,    -1,    22,    23,    24,    25,    26,    10,    28,    12, 
     507      13,    14,    15,    16,    17,    18,    19,    -1,    -1,    22, 
     508      23,    24,    25,    26,    -1,    28,    12,    13,    14,    15, 
     509      16,    17,    18,    19,    20,    12,    22,    14,    15,    16, 
     510      17,    18,    19,    -1,    30,    12,    13,    14,    15,    16, 
     511      17,    18,    19,    30,    -1,    22,    23,    24,    25,    26, 
     512      -1,    28,    12,    13,    14,    15,    16,    17,    18,    19, 
     513      20,    12,    22,    14,    15,    16,    17,    18,    19,    22, 
     514      23,    24,    25,    26,    -1,    28 
     515}; 
     516 
     517/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 
     518   symbol of state STATE-NUM.  */ 
     519static const unsigned char yystos[] = 
     520{ 
     521       0,     3,     4,     6,    11,    21,    23,    29,    32,    34, 
     522      35,    36,    37,    34,    35,    29,    29,    35,    34,    35, 
     523      36,    37,     0,     9,    10,     9,    10,    12,    13,    14, 
     524      15,    16,    17,    18,    19,    22,    23,    24,    25,    26, 
     525      28,    12,    13,    14,    15,    16,    17,    18,    19,    20, 
     526      22,    12,    14,    15,    16,    17,    18,    19,    29,    36, 
     527      35,    30,    30,    30,    30,    34,    35,    34,    35,    34, 
     528      35,    34,    35,    35,    36,    35,    35,    35,    35,    35, 
     529      35,    35,    35,    35,    35,    35,    35,    36,    36,    36, 
     530      36,    36,    36,    36,    36,     7,    33,    36,    29,    37, 
     531      37,    37,    37,    37,    37,    37,    36,    30,    37