[asterisk-commits] trunk r22273 - in /trunk: ./ configs/ doc/ include/asterisk/ mxml/ pbx/ pbx/a...

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Mon Apr 24 10:41:28 MST 2006


Author: kpfleming
Date: Mon Apr 24 12:41:27 2006
New Revision: 22273

URL: http://svn.digium.com/view/asterisk?rev=22273&view=rev
Log:
Merge Steve Murphy's (murf) complete re-implementation of AEL, which is now no longer considered experimental :-)

Added:
    trunk/include/asterisk/ael_structs.h   (props changed)
      - copied unchanged from r22271, team/murf/AEL2/include/asterisk/ael_structs.h
    trunk/pbx/ael/
      - copied from r22271, team/murf/AEL2/pbx/ael/
    trunk/pbx/ael/ael-test/
      - copied from r22271, team/murf/AEL2/pbx/ael/ael-test/
    trunk/pbx/ael/ael-test/ael-test1/
      - copied from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test1/
    trunk/pbx/ael/ael-test/ael-test1/extensions.ael
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test1/extensions.ael
    trunk/pbx/ael/ael-test/ael-test2/
      - copied from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test2/
    trunk/pbx/ael/ael-test/ael-test2/apptest.ael2
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test2/apptest.ael2
    trunk/pbx/ael/ael-test/ael-test2/extensions.ael
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test2/extensions.ael
    trunk/pbx/ael/ael-test/ael-test3/
      - copied from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test3/
    trunk/pbx/ael/ael-test/ael-test3/extensions.ael
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test3/extensions.ael
    trunk/pbx/ael/ael-test/ael-test3/include1.ael2
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test3/include1.ael2
    trunk/pbx/ael/ael-test/ael-test3/include2.ael2
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test3/include2.ael2
    trunk/pbx/ael/ael-test/ael-test3/include3.ael2
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test3/include3.ael2
    trunk/pbx/ael/ael-test/ael-test3/include4.ael2
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test3/include4.ael2
    trunk/pbx/ael/ael-test/ael-test3/include5.ael2
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test3/include5.ael2
    trunk/pbx/ael/ael-test/ael-test4/
      - copied from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test4/
    trunk/pbx/ael/ael-test/ael-test4/apptest.ael2
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test4/apptest.ael2
    trunk/pbx/ael/ael-test/ael-test4/extensions.ael
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test4/extensions.ael
    trunk/pbx/ael/ael-test/ael-test5/
      - copied from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test5/
    trunk/pbx/ael/ael-test/ael-test5/extensions.ael
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test5/extensions.ael
    trunk/pbx/ael/ael-test/ael-test6/
      - copied from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test6/
    trunk/pbx/ael/ael-test/ael-test6/extensions.ael
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test6/extensions.ael
    trunk/pbx/ael/ael-test/ael-test7/
      - copied from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test7/
    trunk/pbx/ael/ael-test/ael-test7/extensions.ael
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ael-test7/extensions.ael
    trunk/pbx/ael/ael-test/ref.ael-test1
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ref.ael-test1
    trunk/pbx/ael/ael-test/ref.ael-test2
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ref.ael-test2
    trunk/pbx/ael/ael-test/ref.ael-test3
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ref.ael-test3
    trunk/pbx/ael/ael-test/ref.ael-test4
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ref.ael-test4
    trunk/pbx/ael/ael-test/ref.ael-test5
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ref.ael-test5
    trunk/pbx/ael/ael-test/ref.ael-test6
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ref.ael-test6
    trunk/pbx/ael/ael-test/ref.ael-test7
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/ref.ael-test7
    trunk/pbx/ael/ael-test/runtests
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/runtests
    trunk/pbx/ael/ael-test/setref
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael-test/setref
    trunk/pbx/ael/ael.flex
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael.flex
    trunk/pbx/ael/ael.tab.c
      - copied, changed from r22271, team/murf/AEL2/pbx/ael/ael.tab.c
    trunk/pbx/ael/ael.tab.h
      - copied, changed from r22271, team/murf/AEL2/pbx/ael/ael.tab.h
    trunk/pbx/ael/ael.y
      - copied unchanged from r22271, team/murf/AEL2/pbx/ael/ael.y
    trunk/pbx/ael/ael_lex.c
      - copied, changed from r22271, team/murf/AEL2/pbx/ael/ael_lex.c
    trunk/utils/ael_main.c   (props changed)
      - copied unchanged from r22271, team/murf/AEL2/utils/ael_main.c
    trunk/utils/expr2.testinput   (props changed)
      - copied unchanged from r22271, team/murf/AEL2/utils/expr2.testinput
Modified:
    trunk/   (props changed)
    trunk/CREDITS
    trunk/ast_expr2.c
    trunk/ast_expr2.fl
    trunk/ast_expr2.h
    trunk/ast_expr2.y
    trunk/ast_expr2f.c
    trunk/configs/extensions.ael.sample
    trunk/doc/ael.txt
    trunk/mxml/configure
    trunk/pbx/Makefile
    trunk/pbx/pbx_ael.c
    trunk/utils/Makefile

Propchange: trunk/
------------------------------------------------------------------------------
    automerge = 1

Propchange: trunk/
------------------------------------------------------------------------------
    automerge-email = murf at parsetree.com

Propchange: trunk/
------------------------------------------------------------------------------
    svnmerge-integrated = /trunk:1-22270

Modified: trunk/CREDITS
URL: http://svn.digium.com/view/asterisk/trunk/CREDITS?rev=22273&r1=22272&r2=22273&view=diff
==============================================================================
--- trunk/CREDITS (original)
+++ trunk/CREDITS Mon Apr 24 12:41:27 2006
@@ -76,7 +76,7 @@
 Steve Kann - new jitter buffer for IAX2
 	stevek at stevek.com
 Constantine Filin - major contributions to the Asterisk Realtime Architecture
-Steve Murphy - privacy support
+Steve Murphy - privacy support, $[ ] parser upgrade, AEL2 parser upgrade
 Claude Patry - bug fixes, feature enhancements, and bug marshalling
 	cpatry at gmail.com
 

Modified: trunk/ast_expr2.c
URL: http://svn.digium.com/view/asterisk/trunk/ast_expr2.c?rev=22273&r1=22272&r2=22273&view=diff
==============================================================================
--- trunk/ast_expr2.c (original)
+++ trunk/ast_expr2.c Mon Apr 24 12:41:27 2006
@@ -1,7 +1,7 @@
-/* A Bison parser, made by GNU Bison 2.1.  */
+/* A Bison parser, made by GNU Bison 2.1a.  */
 
 /* Skeleton parser for Yacc-like parsing with Bison,
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -23,8 +23,8 @@
    This special exception was added by the Free Software Foundation
    in version 1.24 of Bison.  */
 
-/* Written by Richard Stallman by simplifying the original so called
-   ``semantic'' parser.  */
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+   simplifying the original so-called "semantic" parser.  */
 
 /* All symbols defined below should begin with yy or YY, to avoid
    infringing on user name space.  This should be done even for local
@@ -37,7 +37,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.1"
+#define YYBISON_VERSION "2.1a"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -134,6 +134,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <locale.h>
+#include <unistd.h>
 #include <ctype.h>
 #if !defined(SOLARIS) && !defined(__CYGWIN__)
 #include <err.h>
@@ -168,6 +169,8 @@
 #define YYPARSE_PARAM parseio
 #define YYLEX_PARAM ((struct parse_io *)parseio)->scanner
 #define YYERROR_VERBOSE 1
+extern char extra_error_message[4095];
+extern int extra_error_message_supplied;
 
 enum valtype {
 	AST_EXPR_integer, AST_EXPR_numeric_string, AST_EXPR_string
@@ -246,12 +249,7 @@
    some useful info about the error. Not as easy as it looks, but it
    is possible. */
 #define ast_yyerror(x) ast_yyerror(x,&yyloc,parseio)
-#define DESTROY(x) { \
-if ((x)->type == AST_EXPR_numeric_string || (x)->type == AST_EXPR_string) \
-	free((x)->u.s); \
-	(x)->u.s = 0; \
-	free(x); \
-}
+#define DESTROY(x) {if((x)->type == AST_EXPR_numeric_string || (x)->type == AST_EXPR_string) free((x)->u.s); (x)->u.s = 0; free(x);}
 
 
 /* Enabling traces.  */
@@ -272,19 +270,21 @@
 # define YYTOKEN_TABLE 0
 #endif
 
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 142 "ast_expr2.y"
-typedef union YYSTYPE {
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 140 "ast_expr2.y"
+{
 	struct val *val;
-} YYSTYPE;
-/* Line 196 of yacc.c.  */
-#line 277 "ast_expr2.c"
+}
+/* Line 198 of yacc.c.  */
+#line 276 "ast_expr2.c"
+	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
 
-#if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
+#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
 typedef struct YYLTYPE
 {
   int first_line;
@@ -299,27 +299,60 @@
 
 
 /* Copy the second part of user declarations.  */
-#line 146 "ast_expr2.y"
+#line 144 "ast_expr2.y"
 
 extern int		ast_yylex __P((YYSTYPE *, YYLTYPE *, yyscan_t));
 
 
-/* Line 219 of yacc.c.  */
+/* Line 221 of yacc.c.  */
 #line 304 "ast_expr2.c"
 
-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
-# define YYSIZE_T __SIZE_TYPE__
-#endif
-#if ! defined (YYSIZE_T) && defined (size_t)
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
-#endif
+#ifdef short
+# undef short
+#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
+#endif
+
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
+
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
+
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+#  define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+#  define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYSIZE_T size_t
+# else
+#  define YYSIZE_T unsigned int
+# endif
+#endif
+
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
 
 #ifndef YY_
 # if YYENABLE_NLS
@@ -333,7 +366,32 @@
 # endif
 #endif
 
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
+/* Suppress unused-variable warnings by "using" E.  */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(e) ((void) (e))
+#else
+# define YYUSE(e) /* empty */
+#endif
+
+/* Identity function, used to suppress warnings about constant conditions.  */
+#ifndef lint
+# define YYID(n) (n)
+#else
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int i)
+#else
+static int
+YYID (i)
+    int i;
+#endif
+{
+  return i;
+}
+#endif
+
+#if ! defined yyoverflow || YYERROR_VERBOSE
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
 
@@ -341,46 +399,56 @@
 #  if YYSTACK_USE_ALLOCA
 #   ifdef __GNUC__
 #    define YYSTACK_ALLOC __builtin_alloca
+#   elif defined __BUILTIN_VA_ARG_INCR
+#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+#   elif defined _AIX
+#    define YYSTACK_ALLOC __alloca
+#   elif defined _MSC_VER
+#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+#    define alloca _alloca
 #   else
 #    define YYSTACK_ALLOC alloca
-#    if defined (__STDC__) || defined (__cplusplus)
+#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#     define YYINCLUDED_STDLIB_H
+#     ifndef _STDLIB_H
+#      define _STDLIB_H 1
+#     endif
 #    endif
 #   endif
 #  endif
 # endif
 
 # ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning. */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+   /* Pacify GCC's `empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
 #  ifndef YYSTACK_ALLOC_MAXIMUM
     /* The OS might guarantee only one guard page at the bottom of the stack,
        and a page size can be as small as 4096 bytes.  So we cannot safely
        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
        to allow for a few compiler-allocated temporary stack slots.  */
-#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
+#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
 #  endif
 # else
 #  define YYSTACK_ALLOC YYMALLOC
 #  define YYSTACK_FREE YYFREE
 #  ifndef YYSTACK_ALLOC_MAXIMUM
-#   define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
+#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
 #  endif
 #  ifdef __cplusplus
 extern "C" {
 #  endif
 #  ifndef YYMALLOC
 #   define YYMALLOC malloc
-#   if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
-	&& (defined (__STDC__) || defined (__cplusplus)))
+#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
 #  ifndef YYFREE
 #   define YYFREE free
-#   if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
-	&& (defined (__STDC__) || defined (__cplusplus)))
+#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 void free (void *); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
@@ -388,18 +456,18 @@
 }
 #  endif
 # endif
-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-
-
-#if (! defined (yyoverflow) \
-     && (! defined (__cplusplus) \
-	 || (defined (YYLTYPE_IS_TRIVIAL) && YYLTYPE_IS_TRIVIAL \
-             && defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+#if (! defined yyoverflow \
+     && (! defined __cplusplus \
+	 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
+	     && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
 
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
-  short int yyss;
+  yytype_int16 yyss;
   YYSTYPE yyvs;
     YYLTYPE yyls;
 };
@@ -410,13 +478,13 @@
 /* The size of an array large to enough to hold all stacks, each with
    N elements.  */
 # define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short int) + sizeof (YYSTYPE) + sizeof (YYLTYPE))	\
+     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
       + 2 * YYSTACK_GAP_MAXIMUM)
 
 /* Copy COUNT objects from FROM to TO.  The source and destination do
    not overlap.  */
 # ifndef YYCOPY
-#  if defined (__GNUC__) && 1 < __GNUC__
+#  if defined __GNUC__ && 1 < __GNUC__
 #   define YYCOPY(To, From, Count) \
       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
 #  else
@@ -427,7 +495,7 @@
 	  for (yyi = 0; yyi < (Count); yyi++)	\
 	    (To)[yyi] = (From)[yyi];		\
 	}					\
-      while (0)
+      while (YYID (0))
 #  endif
 # endif
 
@@ -445,28 +513,22 @@
 	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
 	yyptr += yynewbytes / sizeof (*yyptr);				\
       }									\
-    while (0)
-
-#endif
-
-#if defined (__STDC__) || defined (__cplusplus)
-   typedef signed char yysigned_char;
-#else
-   typedef short int yysigned_char;
-#endif
-
-/* YYFINAL -- State number of the termination state. */
+    while (YYID (0))
+
+#endif
+
+/* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  10
 /* YYLAST -- Last index in YYTABLE.  */
 #define YYLAST   140
 
-/* YYNTOKENS -- Number of terminals. */
+/* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  24
-/* YYNNTS -- Number of nonterminals. */
+/* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  3
-/* YYNRULES -- Number of rules. */
-#define YYNRULES  22
-/* YYNRULES -- Number of states. */
+/* YYNRULES -- Number of rules.  */
+#define YYNRULES  23
+/* YYNRULES -- Number of states.  */
 #define YYNSTATES  46
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
@@ -477,7 +539,7 @@
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
-static const unsigned char yytranslate[] =
+static const yytype_uint8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -512,39 +574,39 @@
 #if YYDEBUG
 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
    YYRHS.  */
-static const unsigned char yyprhs[] =
-{
-       0,     0,     3,     5,     7,    11,    15,    19,    23,    27,
-      31,    35,    39,    43,    47,    51,    54,    57,    61,    65,
-      69,    73,    77
+static const yytype_uint8 yyprhs[] =
+{
+       0,     0,     3,     5,     6,     8,    12,    16,    20,    24,
+      28,    32,    36,    40,    44,    48,    52,    55,    58,    62,
+      66,    70,    74,    78
 };
 
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yysigned_char yyrhs[] =
-{
-      25,     0,    -1,    26,    -1,    23,    -1,    21,    26,    22,
-      -1,    26,     5,    26,    -1,    26,     6,    26,    -1,    26,
-      12,    26,    -1,    26,    11,    26,    -1,    26,    10,    26,
-      -1,    26,     9,    26,    -1,    26,     8,    26,    -1,    26,
-       7,    26,    -1,    26,    14,    26,    -1,    26,    13,    26,
-      -1,    13,    26,    -1,    18,    26,    -1,    26,    17,    26,
-      -1,    26,    16,    26,    -1,    26,    15,    26,    -1,    26,
-      20,    26,    -1,    26,    19,    26,    -1,    26,     4,    26,
-       3,    26,    -1
+/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
+static const yytype_int8 yyrhs[] =
+{
+      25,     0,    -1,    26,    -1,    -1,    23,    -1,    21,    26,
+      22,    -1,    26,     5,    26,    -1,    26,     6,    26,    -1,
+      26,    12,    26,    -1,    26,    11,    26,    -1,    26,    10,
+      26,    -1,    26,     9,    26,    -1,    26,     8,    26,    -1,
+      26,     7,    26,    -1,    26,    14,    26,    -1,    26,    13,
+      26,    -1,    13,    26,    -1,    18,    26,    -1,    26,    17,
+      26,    -1,    26,    16,    26,    -1,    26,    15,    26,    -1,
+      26,    20,    26,    -1,    26,    19,    26,    -1,    26,     4,
+      26,     3,    26,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
-static const unsigned char yyrline[] =
-{
-       0,   165,   165,   175,   176,   180,   184,   188,   192,   196,
-     200,   204,   208,   212,   216,   220,   224,   228,   232,   236,
-     240,   244,   248
+static const yytype_uint16 yyrline[] =
+{
+       0,   168,   168,   176,   183,   184,   188,   192,   196,   200,
+     204,   208,   212,   216,   220,   224,   228,   232,   236,   240,
+     244,   248,   252,   256
 };
 #endif
 
 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
 {
   "$end", "error", "$undefined", "TOK_COLONCOLON", "TOK_COND", "TOK_OR",
@@ -558,7 +620,7 @@
 # ifdef YYPRINT
 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    token YYLEX-NUM.  */
-static const unsigned short int yytoknum[] =
+static const yytype_uint16 yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
@@ -567,35 +629,35 @@
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const unsigned char yyr1[] =
-{
-       0,    24,    25,    26,    26,    26,    26,    26,    26,    26,
+static const yytype_uint8 yyr1[] =
+{
+       0,    24,    25,    25,    26,    26,    26,    26,    26,    26,
       26,    26,    26,    26,    26,    26,    26,    26,    26,    26,
-      26,    26,    26
+      26,    26,    26,    26
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const unsigned char yyr2[] =
-{
-       0,     2,     1,     1,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     2,     2,     3,     3,     3,
-       3,     3,     5
+static const yytype_uint8 yyr2[] =
+{
+       0,     2,     1,     0,     1,     3,     3,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     2,     2,     3,     3,
+       3,     3,     3,     5
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
    means the default is an error.  */
-static const unsigned char yydefact[] =
-{
-       0,     0,     0,     0,     3,     0,     2,    15,    16,     0,
+static const yytype_uint8 yydefact[] =
+{
+       3,     0,     0,     0,     4,     0,     2,    16,    17,     0,
        1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     4,     0,     5,
-       6,    12,    11,    10,     9,     8,     7,    14,    13,    19,
-      18,    17,    21,    20,     0,    22
+       0,     0,     0,     0,     0,     0,     0,     5,     0,     6,
+       7,    13,    12,    11,    10,     9,     8,    15,    14,    20,
+      19,    18,    22,    21,     0,    23
 };
 
-/* YYDEFGOTO[NTERM-NUM]. */
-static const yysigned_char yydefgoto[] =
+/* YYDEFGOTO[NTERM-NUM].  */
+static const yytype_int8 yydefgoto[] =
 {
       -1,     5,     6
 };
@@ -603,7 +665,7 @@
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
 #define YYPACT_NINF -13
-static const yysigned_char yypact[] =
+static const yytype_int8 yypact[] =
 {
      109,   109,   109,   109,   -13,     6,    59,   106,   106,    22,
      -13,   109,   109,   109,   109,   109,   109,   109,   109,   109,
@@ -613,7 +675,7 @@
 };
 
 /* YYPGOTO[NTERM-NUM].  */
-static const yysigned_char yypgoto[] =
+static const yytype_int8 yypgoto[] =
 {
      -13,   -13,    -1
 };
@@ -623,7 +685,7 @@
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
 #define YYTABLE_NINF -1
-static const unsigned char yytable[] =
+static const yytype_uint8 yytable[] =
 {
        7,     8,     9,    22,    23,    24,    10,    25,    26,     0,
       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
@@ -642,7 +704,7 @@
       26
 };
 
-static const yysigned_char yycheck[] =
+static const yytype_int8 yycheck[] =
 {
        1,     2,     3,    15,    16,    17,     0,    19,    20,    -1,
       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
@@ -663,7 +725,7 @@
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
-static const unsigned char yystos[] =
+static const yytype_uint8 yystos[] =
 {
        0,    13,    18,    21,    23,    25,    26,    26,    26,    26,
        0,     4,     5,     6,     7,     8,     9,    10,    11,    12,
@@ -697,7 +759,7 @@
       yychar = (Token);						\
       yylval = (Value);						\
       yytoken = YYTRANSLATE (yychar);				\
-      YYPOPSTACK;						\
+      YYPOPSTACK (1);						\
       goto yybackup;						\
     }								\
   else								\
@@ -705,7 +767,7 @@
       yyerror (YY_("syntax error: cannot back up")); \
       YYERROR;							\
     }								\
-while (0)
+while (YYID (0))
 
 
 #define YYTERROR	1
@@ -720,7 +782,7 @@
 #ifndef YYLLOC_DEFAULT
 # define YYLLOC_DEFAULT(Current, Rhs, N)				\
     do									\
-      if (N)								\
+      if (YYID (N))                                                    \
 	{								\
 	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
 	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
@@ -734,7 +796,7 @@
 	  (Current).first_column = (Current).last_column =		\
 	    YYRHSLOC (Rhs, 0).last_column;				\
 	}								\
-    while (0)
+    while (YYID (0))
 #endif
 
 
@@ -746,8 +808,8 @@
 # if YYLTYPE_IS_TRIVIAL
 #  define YY_LOCATION_PRINT(File, Loc)			\
      fprintf (File, "%d.%d-%d.%d",			\
-              (Loc).first_line, (Loc).first_column,	\
-              (Loc).last_line,  (Loc).last_column)
+	      (Loc).first_line, (Loc).first_column,	\
+	      (Loc).last_line,  (Loc).last_column)
 # else
 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
 # endif
@@ -774,36 +836,101 @@
 do {						\
   if (yydebug)					\
     YYFPRINTF Args;				\
-} while (0)
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)		\
-do {								\
-  if (yydebug)							\
-    {								\
-      YYFPRINTF (stderr, "%s ", Title);				\
-      yysymprint (stderr,					\
-                  Type, Value, Location);	\
-      YYFPRINTF (stderr, "\n");					\
-    }								\
-} while (0)
+} while (YYID (0))
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
+do {									  \
+  if (yydebug)								  \
+    {									  \
+      YYFPRINTF (stderr, "%s ", Title);					  \
+      yy_symbol_print (stderr,						  \
+		  Type, Value, Location); \
+      YYFPRINTF (stderr, "\n");						  \
+    }									  \
+} while (YYID (0))
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, const YYSTYPE * const yyvaluep, const YYLTYPE * const yylocationp)
+#else
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
+    FILE *yyoutput;
+    int yytype;
+    const YYSTYPE * const yyvaluep;
+    const YYLTYPE * const yylocationp;
+#endif
+{
+  if (!yyvaluep)
+    return;
+  YYUSE (yylocationp);
+# ifdef YYPRINT
+  if (yytype < YYNTOKENS)
+    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+  YYUSE (yyoutput);
+# endif
+  switch (yytype)
+    {
+      default:
+	break;
+    }
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, const YYSTYPE * const yyvaluep, const YYLTYPE * const yylocationp)
+#else
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
+    FILE *yyoutput;
+    int yytype;
+    const YYSTYPE * const yyvaluep;
+    const YYLTYPE * const yylocationp;
+#endif
+{
+  if (yytype < YYNTOKENS)
+    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+  YY_LOCATION_PRINT (yyoutput, *yylocationp);
+  YYFPRINTF (yyoutput, ": ");
+  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
+  YYFPRINTF (yyoutput, ")");
+}
 
 /*------------------------------------------------------------------.
 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
 | TOP (included).                                                   |
 `------------------------------------------------------------------*/
 
-#if defined (__STDC__) || defined (__cplusplus)
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
-yy_stack_print (short int *bottom, short int *top)
+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
 #else
 static void
 yy_stack_print (bottom, top)
-    short int *bottom;
-    short int *top;
+    yytype_int16 *bottom;
+    yytype_int16 *top;
 #endif
 {
   YYFPRINTF (stderr, "Stack now");
-  for (/* Nothing. */; bottom <= top; ++bottom)
+  for (; bottom <= top; ++bottom)
     YYFPRINTF (stderr, " %d", *bottom);
   YYFPRINTF (stderr, "\n");
 }
@@ -812,37 +939,47 @@
 do {								\
   if (yydebug)							\
     yy_stack_print ((Bottom), (Top));				\
-} while (0)
+} while (YYID (0))
 
 
 /*------------------------------------------------.
 | Report that the YYRULE is going to be reduced.  |
 `------------------------------------------------*/
 
-#if defined (__STDC__) || defined (__cplusplus)
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
-yy_reduce_print (int yyrule)
+yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
 #else
 static void
-yy_reduce_print (yyrule)
+yy_reduce_print (yyvsp, yylsp, yyrule
+		   )
+    YYSTYPE *yyvsp;
+    YYLTYPE *yylsp;
     int yyrule;
 #endif
 {
+  int yynrhs = yyr2[yyrule];
   int yyi;
   unsigned long int yylno = yyrline[yyrule];
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
-             yyrule - 1, yylno);
-  /* Print the symbols being reduced, and their result.  */
-  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
-    YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
-  YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+	     yyrule - 1, yylno);
+  /* The symbols being reduced.  */
+  for (yyi = 0; yyi < yynrhs; yyi++)
+    {
+      fprintf (stderr, "   $%d = ", yyi + 1);
+      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+		       &(yyvsp[(yyi + 1) - (yynrhs)])
+		       , &(yylsp[(yyi + 1) - (yynrhs)])		       );
+      fprintf (stderr, "\n");
+    }
 }
 
 # define YY_REDUCE_PRINT(Rule)		\
 do {					\
   if (yydebug)				\
-    yy_reduce_print (Rule);		\
-} while (0)
+    yy_reduce_print (yyvsp, yylsp, Rule); \
+} while (YYID (0))
 
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
@@ -876,42 +1013,44 @@
 #if YYERROR_VERBOSE
 
 # ifndef yystrlen
-#  if defined (__GLIBC__) && defined (_STRING_H)
+#  if defined __GLIBC__ && defined _STRING_H
 #   define yystrlen strlen
 #  else
 /* Return the length of YYSTR.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static YYSIZE_T
-#   if defined (__STDC__) || defined (__cplusplus)
 yystrlen (const char *yystr)
-#   else
+#else
+static YYSIZE_T
 yystrlen (yystr)
-     const char *yystr;
-#   endif
-{
-  const char *yys = yystr;
-
-  while (*yys++ != '\0')
+    const char *yystr;
+#endif
+{
+  YYSIZE_T yylen;
+  for (yylen = 0; yystr[yylen]; yylen++)
     continue;
-
-  return yys - yystr - 1;
+  return yylen;
 }
 #  endif
 # endif
 
 # ifndef yystpcpy
-#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
+#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
 #   define yystpcpy stpcpy
 #  else
 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    YYDEST.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static char *
-#   if defined (__STDC__) || defined (__cplusplus)
 yystpcpy (char *yydest, const char *yysrc)
-#   else
+#else
+static char *
 yystpcpy (yydest, yysrc)
-     char *yydest;
-     const char *yysrc;
-#   endif
+    char *yydest;
+    const char *yysrc;
+#endif
 {
   char *yyd = yydest;
   const char *yys = yysrc;
@@ -972,57 +1111,123 @@
 }
 # endif
 
+/* Copy into YYRESULT an error message about the unexpected token
+   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
+   including the terminating null byte.  If YYRESULT is null, do not
+   copy anything; just return the number of bytes that would be
+   copied.  As a special case, return 0 if an ordinary "syntax error"
+   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
+   size calculation.  */
+static YYSIZE_T
+yysyntax_error (char *yyresult, int yystate, int yychar)
+{
+  int yyn = yypact[yystate];
+
+  if (! (YYPACT_NINF < yyn && yyn < YYLAST))
+    return 0;
+  else
+    {
+      int yytype = YYTRANSLATE (yychar);
+      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+      YYSIZE_T yysize = yysize0;
+      YYSIZE_T yysize1;
+      int yysize_overflow = 0;
+      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+      int yyx;
+
+# if 0
+      /* This is so xgettext sees the translatable formats that are
+	 constructed on the fly.  */
+      YY_("syntax error, unexpected %s");
+      YY_("syntax error, unexpected %s, expecting %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+# endif
+      char *yyfmt;
+      char const *yyf;
+      static char const yyunexpected[] = "syntax error, unexpected %s";
+      static char const yyexpecting[] = ", expecting %s";
+      static char const yyor[] = " or %s";
+      char yyformat[sizeof yyunexpected
+		    + sizeof yyexpecting - 1
+		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+		       * (sizeof yyor - 1))];
+      char const *yyprefix = yyexpecting;
+
+      /* Start YYX at -YYN if negative to avoid negative indexes in
+	 YYCHECK.  */
+      int yyxbegin = yyn < 0 ? -yyn : 0;
+
+      /* Stay within bounds of both yycheck and yytname.  */
+      int yychecklim = YYLAST - yyn;
+      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+      int yycount = 1;
+
+      yyarg[0] = yytname[yytype];
+      yyfmt = yystpcpy (yyformat, yyunexpected);
+
+      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+	  {
+	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+	      {
+		yycount = 1;
+		yysize = yysize0;
+		yyformat[sizeof yyunexpected - 1] = '\0';
+		break;
+	      }
+	    yyarg[yycount++] = yytname[yyx];
+	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+	    yysize_overflow |= (yysize1 < yysize);
+	    yysize = yysize1;
+	    yyfmt = yystpcpy (yyfmt, yyprefix);
+	    yyprefix = yyor;
+	  }
+
+      yyf = YY_(yyformat);
+      yysize1 = yysize + yystrlen (yyf);
+      yysize_overflow |= (yysize1 < yysize);
+      yysize = yysize1;
+
+      if (yysize_overflow)
+	return YYSIZE_MAXIMUM;
+
+      if (yyresult)
+	{
+	  /* Avoid sprintf, as that infringes on the user's name space.
+	     Don't have undefined behavior even if the translation
+	     produced a string with the wrong number of "%s"s.  */
+	  char *yyp = yyresult;
+	  int yyi = 0;
+	  while ((*yyp = *yyf) != '\0')
+	    {
+	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+		{
+		  yyp += yytnamerr (yyp, yyarg[yyi++]);
+		  yyf += 2;
+		}
+	      else
+		{
+		  yyp++;
+		  yyf++;
+		}
+	    }
+	}
+      return yysize;
+    }
+}
 #endif /* YYERROR_VERBOSE */
-
 
 
-#if YYDEBUG
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
-#else
-static void
-yysymprint (yyoutput, yytype, yyvaluep, yylocationp)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE *yyvaluep;
-    YYLTYPE *yylocationp;
-#endif
-{
-  /* Pacify ``unused variable'' warnings.  */
-  (void) yyvaluep;
-  (void) yylocationp;
-
-  if (yytype < YYNTOKENS)
-    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-  else
-    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
-  YY_LOCATION_PRINT (yyoutput, *yylocationp);
-  YYFPRINTF (yyoutput, ": ");
-
-# ifdef YYPRINT
-  if (yytype < YYNTOKENS)
-    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
-  switch (yytype)
-    {
-      default:
-        break;
-    }
-  YYFPRINTF (yyoutput, ")");
-}
-
-#endif /* ! YYDEBUG */
 /*-----------------------------------------------.
 | Release the memory associated to this symbol.  |
 `-----------------------------------------------*/
 
-#if defined (__STDC__) || defined (__cplusplus)
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
 #else
@@ -1034,9 +1239,8 @@
     YYLTYPE *yylocationp;
 #endif
 {
-  /* Pacify ``unused variable'' warnings.  */
-  (void) yyvaluep;
-  (void) yylocationp;
+  YYUSE (yyvaluep);
+  YYUSE (yylocationp);
 
   if (!yymsg)
     yymsg = "Deleting";
@@ -1044,9 +1248,119 @@
 
   switch (yytype)
     {
+      case 3: /* "TOK_COLONCOLON" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1250 "ast_expr2.c"
+	break;
+      case 4: /* "TOK_COND" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1255 "ast_expr2.c"
+	break;
+      case 5: /* "TOK_OR" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1260 "ast_expr2.c"
+	break;
+      case 6: /* "TOK_AND" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1265 "ast_expr2.c"
+	break;
+      case 7: /* "TOK_NE" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1270 "ast_expr2.c"
+	break;
+      case 8: /* "TOK_LE" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1275 "ast_expr2.c"
+	break;
+      case 9: /* "TOK_GE" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1280 "ast_expr2.c"
+	break;
+      case 10: /* "TOK_LT" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1285 "ast_expr2.c"
+	break;
+      case 11: /* "TOK_GT" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1290 "ast_expr2.c"
+	break;
+      case 12: /* "TOK_EQ" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1295 "ast_expr2.c"
+	break;
+      case 13: /* "TOK_MINUS" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1300 "ast_expr2.c"
+	break;
+      case 14: /* "TOK_PLUS" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1305 "ast_expr2.c"
+	break;
+      case 15: /* "TOK_MOD" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1310 "ast_expr2.c"
+	break;
+      case 16: /* "TOK_DIV" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1315 "ast_expr2.c"
+	break;
+      case 17: /* "TOK_MULT" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1320 "ast_expr2.c"
+	break;
+      case 18: /* "TOK_COMPL" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1325 "ast_expr2.c"
+	break;
+      case 19: /* "TOK_EQTILDE" */
+#line 162 "ast_expr2.y"
+	{  free_value((yyvaluep->val)); };
+#line 1330 "ast_expr2.c"
+	break;

[... 14191 lines stripped ...]


More information about the asterisk-commits mailing list