more dup removal
authorLuigi Rizzo <rizzo@icir.org>
Thu, 27 Apr 2006 11:43:34 +0000 (11:43 +0000)
committerLuigi Rizzo <rizzo@icir.org>
Thu, 27 Apr 2006 11:43:34 +0000 (11:43 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@22844 65c4cc65-6c06-0410-ace0-fbb531ad65f3

pbx/ael/ael.flex
pbx/ael/ael_lex.c

index 51c994d..e56b1b7 100644 (file)
@@ -277,29 +277,14 @@ includes  { STORE_POS; return KW_INCLUDES;}
                }
        }
 
-<argg>{NOARGG}\}       {
-               /*printf("ARGG:%s\n",yytext);*/
-               yylloc->first_line = my_lineno;
-               yylloc->first_column=my_col;
-               if ( pbcpop('}') ) { /* error */
-                       pbcwhere(yytext, &my_lineno, &my_col);
-                       ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno, my_col);
-                       BEGIN(0);
-                       yylloc->last_line = my_lineno;
-                       yylloc->last_column = my_col;
-                       yylval->str = strdup(yytext);
-                       return word;
-               }
-               yymore();
-       }
-
-<argg>{NOARGG}\]       {
+<argg>{NOARGG}[\]\}]   {
+               char c = yytext[yyleng-1];
                /*printf("ARGG:%s\n",yytext);*/
                yylloc->first_line = my_lineno;
                yylloc->first_column=my_col;
-               if ( pbcpop(']') ) { /* error */
+               if ( pbcpop(c) ) { /* error */
                        pbcwhere(yytext, &my_lineno, &my_col);
-                       ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno, my_col);
+                       ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '%c' in expression!\n", my_file, my_lineno, my_col, c);
                        BEGIN(0);
                        yylloc->last_line = my_lineno;
                        yylloc->last_column = my_col;
@@ -311,7 +296,6 @@ includes    { STORE_POS; return KW_INCLUDES;}
 
 
 
-
 <semic>{NOSEMIC}[\(\[\{]       {
                char c = yytext[yyleng-1];
                /*printf("SEMIC:%s\n",yytext);*/
@@ -321,13 +305,14 @@ includes  { STORE_POS; return KW_INCLUDES;}
                pbcpush(c);
                }
 
-<semic>{NOSEMIC}\]     {
+<semic>{NOSEMIC}[\)\]\}]       {
+               char c = yytext[yyleng-1];
                /*printf("SEMIC:%s\n",yytext);*/
                yylloc->first_line = my_lineno;
                yylloc->first_column=my_col;
-               if ( pbcpop(']') ) { /* error */
+               if ( pbcpop(c) ) { /* error */
                        pbcwhere(yytext, &my_lineno, &my_col);
-                       ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno, my_col);
+                       ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '%c' in expression!\n", my_file, my_lineno, my_col, c);
                        BEGIN(0);
                        yylloc->last_line = my_lineno;
                        yylloc->last_column= my_col;
@@ -337,38 +322,6 @@ includes   { STORE_POS; return KW_INCLUDES;}
                yymore();
        }
 
-<semic>{NOSEMIC}\}     {
-               /*printf("SEMIC:%s\n",yytext);*/
-               yylloc->first_line = my_lineno;
-               yylloc->first_column=my_col;
-               if ( pbcpop('}') ) { /* error */
-                       pbcwhere(yytext, &my_lineno, &my_col);
-                       ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno, my_col);
-                       BEGIN(0);
-                       yylloc->last_line = my_lineno;
-                       yylloc->last_column=my_col;
-                       yylval->str = strdup(yytext);
-                       return word;
-               }
-               yymore();
-       }
-
-<semic>{NOSEMIC}\)     {
-               /*printf("SEMIC:%s\n",yytext);*/
-               yylloc->first_line = my_lineno;
-               yylloc->first_column=my_col;
-               if ( pbcpop(')') ) { /* error */
-                       pbcwhere(yytext, &my_lineno, &my_col);
-                       ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression!\n", my_file, my_lineno, my_col);
-                       BEGIN(0);
-                       yylloc->last_line = my_lineno;
-                       yylloc->last_column=my_col;
-                       yylval->str = strdup(yytext);
-                       return word;
-               }
-               yymore();
-       }
-
 <semic>{NOSEMIC};      {
                yylloc->first_line = my_lineno;
                yylloc->first_column=my_col;
index 83bd7e8..b537d5f 100644 (file)
@@ -356,8 +356,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
        *yy_cp = '\0'; \
        yyg->yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 58
-#define YY_END_OF_BUFFER 59
+#define YY_NUM_RULES 55
+#define YY_END_OF_BUFFER 56
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -365,32 +365,31 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[212] =
+static yyconst flex_int16_t yy_accept[206] =
     {   0,
-        0,    0,    0,    0,    0,    0,    0,    0,   59,   58,
+        0,    0,    0,    0,    0,    0,    0,    0,   56,   55,
        42,   40,   41,   43,   43,    9,    3,    4,    7,   43,
         8,    5,    6,   12,   43,   43,   43,   43,   43,   43,
        43,   43,   43,   43,   43,   43,   43,   43,   43,    1,
-       10,    2,   58,   45,   44,   46,   58,   52,   55,   56,
-       53,   54,   58,   47,   48,   49,   51,   50,   42,   41,
-       43,   43,   13,   11,   43,   43,   43,   43,   43,   43,
-       43,   43,   43,   43,   43,   20,   43,   43,   43,   43,
-       43,   43,   43,   43,   43,    0,   45,   44,   46,    0,
-       52,   55,   56,   53,   54,    0,   47,   48,   49,   51,
-
-       50,   43,   13,   13,   43,   43,   43,   43,   43,   43,
-       43,   43,   31,   43,   43,   43,   43,   43,   43,   43,
+       10,    2,   55,   45,   44,   46,   55,   51,   52,   53,
+       55,   47,   48,   49,   50,   42,   41,   43,   43,   13,
+       11,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+       43,   43,   20,   43,   43,   43,   43,   43,   43,   43,
+       43,   43,    0,   45,   44,   46,    0,   51,   52,   53,
+        0,   47,   48,   49,   50,   43,   13,   13,   43,   43,
+
+       43,   43,   43,   43,   43,   43,   31,   43,   43,   43,
        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
-       33,   43,   43,   43,   25,   43,   43,   26,   24,   43,
-       43,   43,   27,   43,   43,   43,   43,   43,   43,   43,
-       43,   43,   29,   36,   43,   43,   43,   43,   43,   43,
-       43,   43,   16,   43,   43,   43,   43,   43,   32,   43,
-       43,   43,   43,   43,   43,   43,   21,   43,   43,   43,
-       22,   43,   28,   19,   43,   43,   14,   43,   34,   43,
-       17,   43,   43,   35,   43,   43,   43,   15,   30,   43,
-
-       43,   39,   23,   37,    0,   38,   18,    0,    0,   57,
-        0
+       43,   43,   43,   43,   33,   43,   43,   43,   25,   43,
+       43,   26,   24,   43,   43,   43,   27,   43,   43,   43,
+       43,   43,   43,   43,   43,   43,   29,   36,   43,   43,
+       43,   43,   43,   43,   43,   43,   16,   43,   43,   43,
+       43,   43,   32,   43,   43,   43,   43,   43,   43,   43,
+       21,   43,   43,   43,   22,   43,   28,   19,   43,   43,
+       14,   43,   34,   43,   17,   43,   43,   35,   43,   43,
+       43,   15,   30,   43,   43,   39,   23,   37,    0,   38,
+
+       18,    0,    0,   54,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -434,62 +433,60 @@ static yyconst flex_int32_t yy_meta[46] =
         3,    3,    3,    1,    3
     } ;
 
-static yyconst flex_int16_t yy_base[222] =
+static yyconst flex_int16_t yy_base[216] =
     {   0,
         0,    0,   37,   40,   77,  114,  151,  188,  237,  507,
       234,  507,  228,    0,  201,  507,  507,  507,  507,  217,
       507,  507,  212,  507,  205,  189,   27,  200,   20,  189,
        19,  194,   37,  182,  200,  199,   40,  178,  190,  507,
       507,  507,   57,  507,  507,  507,  225,  507,  507,  507,
-      507,  507,  262,  507,  507,  507,  507,  507,  215,  212,
-        0,  181,  307,  507,  176,  188,   30,  178,  185,  172,
-      168,  169,  170,  165,  169,  184,  167,  177,  162,  170,
-      153,  157,   45,  161,  160,   69,  507,  507,  507,  343,
-      507,  507,  507,  507,  507,  380,  507,  507,  507,  507,
-
-      507,  165,    0,  425,  148,  165,  160,  161,  144,  161,
-      156,  151,    0,  157,  143,  138,  147,  140,  142,  137,
-      135,  130,  144,  142,  126,  126,  132,  131,  121,  125,
-        0,  127,   45,  114,    0,  114,  131,    0,    0,  118,
-      113,  109,    0,  113,  122,  111,  103,  107,  120,  117,
-      101,  119,    0,    0,   97,  104,  105,  113,  103,  107,
-      106,  106,    0,   92,   94,   87,   91,   93,    0,   95,
-       95,   78,   76,   76,   85,   73,    0,   74,   84,   74,
-        0,   82,    0,   81,   80,   65,    0,   78,    0,   76,
-        0,   78,   60,    0,   61,   55,   51,    0,    0,   43,
-
-       36,    0,    0,    0,   88,    0,    0,    0,   67,  507,
-      507,  469,  473,  477,  479,  483,  487,  491,  495,  499,
-      503
+      262,  507,  507,  507,  507,  215,  212,    0,  181,  307,
+      507,  176,  188,   30,  178,  185,  172,  168,  169,  170,
+      165,  169,  184,  167,  177,  162,  170,  153,  157,   45,
+      161,  160,   69,  507,  507,  507,  343,  507,  507,  507,
+      380,  507,  507,  507,  507,  165,    0,  425,  148,  165,
+
+      160,  161,  144,  161,  156,  151,    0,  157,  143,  138,
+      147,  140,  142,  137,  135,  130,  144,  142,  126,  126,
+      132,  131,  121,  125,    0,  127,   45,  114,    0,  114,
+      131,    0,    0,  118,  113,  109,    0,  113,  122,  111,
+      103,  107,  120,  117,  101,  119,    0,    0,   97,  104,
+      105,  113,  103,  107,  106,  106,    0,   92,   94,   87,
+       91,   93,    0,   95,   95,   78,   76,   76,   85,   73,
+        0,   74,   84,   74,    0,   82,    0,   81,   80,   65,
+        0,   78,    0,   76,    0,   78,   60,    0,   61,   55,
+       51,    0,    0,   43,   36,    0,    0,    0,   88,    0,
+
+        0,    0,   67,  507,  507,  469,  473,  477,  479,  483,
+      487,  491,  495,  499,  503
     } ;
 
-static yyconst flex_int16_t yy_def[222] =
+static yyconst flex_int16_t yy_def[216] =
     {   0,
-      211,    1,  212,  212,  213,  213,  214,  214,  211,  211,
-      211,  211,  211,  215,  215,  211,  211,  211,  211,  215,
-      211,  211,  211,  211,  215,  215,  215,  215,  215,  215,
-      215,  215,  215,  215,  215,  215,  215,  215,  215,  211,
-      211,  211,  216,  211,  211,  211,  217,  211,  211,  211,
-      211,  211,  218,  211,  211,  211,  211,  211,  211,  211,
-      215,  215,  219,  211,  215,  215,  215,  215,  215,  215,
-      215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
-      215,  215,  215,  215,  215,  216,  211,  211,  211,  217,
-      211,  211,  211,  211,  211,  218,  211,  211,  211,  211,
-
-      211,  215,  220,  219,  215,  215,  215,  215,  215,  215,
-      215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
-      215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
-      215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
-      215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
-      215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
-      215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
-      215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
-      215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
-      215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
-
-      215,  215,  215,  215,  211,  215,  215,  221,  221,  211,
-        0,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      211
+      205,    1,  206,  206,  207,  207,  208,  208,  205,  205,
+      205,  205,  205,  209,  209,  205,  205,  205,  205,  209,
+      205,  205,  205,  205,  209,  209,  209,  209,  209,  209,
+      209,  209,  209,  209,  209,  209,  209,  209,  209,  205,
+      205,  205,  210,  205,  205,  205,  211,  205,  205,  205,
+      212,  205,  205,  205,  205,  205,  205,  209,  209,  213,
+      205,  209,  209,  209,  209,  209,  209,  209,  209,  209,
+      209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
+      209,  209,  210,  205,  205,  205,  211,  205,  205,  205,
+      212,  205,  205,  205,  205,  209,  214,  213,  209,  209,
+
+      209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
+      209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
+      209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
+      209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
+      209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
+      209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
+      209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
+      209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
+      209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
+      209,  209,  209,  209,  209,  209,  209,  209,  205,  209,
+
+      209,  215,  215,  205,    0,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205
     } ;
 
 static yyconst flex_int16_t yy_nxt[553] =
@@ -498,63 +495,63 @@ static yyconst flex_int16_t yy_nxt[553] =
        19,   20,   21,   22,   23,   14,   24,   14,   14,   14,
        25,   26,   27,   28,   29,   30,   31,   32,   33,   34,
        14,   14,   35,   14,   14,   36,   37,   38,   14,   14,
-       39,   14,   40,   41,   42,   44,   45,   67,   44,   45,
-       73,   70,  205,   74,  205,   44,   46,   71,   44,   46,
-       82,   68,   76,   77,   83,   87,   88,  107,  108,  155,
-       78,  124,  210,  156,  207,   87,   89,   87,   88,   44,
-      206,   46,   44,  125,   46,   48,   49,   87,   89,  205,
-       50,  205,  204,  208,  203,   48,   51,  202,  201,   87,
-
-      200,   89,  199,  198,  197,  196,  195,  194,  193,  192,
-      191,   87,  190,   89,  189,  188,  187,  186,  185,   48,
-      184,   52,   48,   49,  183,  182,  181,   50,  180,  179,
-      178,  177,   48,   51,  176,  175,  174,  173,  172,  171,
-      170,  169,  168,  167,  166,  165,  164,  163,  162,  161,
-      160,  159,  158,  157,  154,  153,   48,  152,   52,   54,
-       55,   56,  151,  150,  149,  148,  147,  146,  145,   54,
-       57,  144,  143,  142,  141,  140,  139,  138,  137,  136,
-      135,  134,  133,  132,  131,  130,  129,  128,  127,  126,
-      123,  122,  121,   54,  120,   58,   54,   55,   56,  119,
-
-      118,  117,  116,  115,  114,  113,   54,   57,  112,  111,
-      110,  109,  106,  105,  102,   60,   59,   85,   84,   81,
-       80,   79,   75,   72,   69,   66,   65,   64,   63,   62,
-       54,   60,   58,   91,   92,   59,  211,  211,   93,  211,
-      211,  211,  211,   91,   94,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,   91,  211,   95,
-       97,   98,   99,  211,  211,  211,  211,  211,  211,  211,
-       97,  100,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-
-      211,  211,  211,  211,   97,  211,  101,  103,  103,  211,
-      103,  211,  211,  211,  103,  103,  103,  103,  211,  103,
-      103,  103,  211,  103,  211,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      103,   91,   92,  211,  211,  211,   93,  211,  211,  211,
-      211,   91,   94,  211,  211,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,   91,  211,   95,   97,   98,
-       99,  211,  211,  211,  211,  211,  211,  211,   97,  100,
-
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211,   97,  211,  101,  103,  103,  211,  103,  211,
-      211,  211,  103,  103,  103,  103,  211,  103,  103,  103,
-      211,  103,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  103,   43,
-       43,   43,   43,   47,   47,   47,   47,   53,   53,   53,
-       53,   61,   61,   86,   86,   86,   86,   90,   90,   90,
-       90,   96,   96,   96,   96,  104,  211,  104,  104,  103,
-
-      211,  103,  103,  209,  209,  209,    9,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211
+       39,   14,   40,   41,   42,   44,   45,   64,   44,   45,
+       70,   67,  199,   71,  199,   44,   46,   68,   44,   46,
+       79,   65,   73,   74,   80,   84,   85,  101,  102,  149,
+       75,  118,  204,  150,  201,   84,   86,   84,   85,   44,
+      200,   46,   44,  119,   46,   48,   49,   84,   86,  199,
+       50,  199,  198,  202,  197,   48,   49,  196,  195,   84,
+
+      194,   86,  193,  192,  191,  190,  189,  188,  187,  186,
+      185,   84,  184,   86,  183,  182,  181,  180,  179,   48,
+      178,   49,   48,   49,  177,  176,  175,   50,  174,  173,
+      172,  171,   48,   49,  170,  169,  168,  167,  166,  165,
+      164,  163,  162,  161,  160,  159,  158,  157,  156,  155,
+      154,  153,  152,  151,  148,  147,   48,  146,   49,   52,
+       53,   54,  145,  144,  143,  142,  141,  140,  139,   52,
+       55,  138,  137,  136,  135,  134,  133,  132,  131,  130,
+      129,  128,  127,  126,  125,  124,  123,  122,  121,  120,
+      117,  116,  115,   52,  114,   55,   52,   53,   54,  113,
+
+      112,  111,  110,  109,  108,  107,   52,   55,  106,  105,
+      104,  103,  100,   99,   96,   57,   56,   82,   81,   78,
+       77,   76,   72,   69,   66,   63,   62,   61,   60,   59,
+       52,   57,   55,   88,   89,   56,  205,  205,   90,  205,
+      205,  205,  205,   88,   89,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,   88,  205,   89,
+       92,   93,   94,  205,  205,  205,  205,  205,  205,  205,
+       92,   95,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+
+      205,  205,  205,  205,   92,  205,   95,   97,   97,  205,
+       97,  205,  205,  205,   97,   97,   97,   97,  205,   97,
+       97,   97,  205,   97,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+       97,   88,   89,  205,  205,  205,   90,  205,  205,  205,
+      205,   88,   89,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,   88,  205,   89,   92,   93,
+       94,  205,  205,  205,  205,  205,  205,  205,   92,   95,
+
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,   92,  205,   95,   97,   97,  205,   97,  205,
+      205,  205,   97,   97,   97,   97,  205,   97,   97,   97,
+      205,   97,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,   97,   43,
+       43,   43,   43,   47,   47,   47,   47,   51,   51,   51,
+       51,   58,   58,   83,   83,   83,   83,   87,   87,   87,
+       87,   91,   91,   91,   91,   98,  205,   98,   98,   97,
+
+      205,   97,   97,  203,  203,  203,    9,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205
     } ;
 
 static yyconst flex_int16_t yy_chk[553] =
@@ -564,62 +561,62 @@ static yyconst flex_int16_t yy_chk[553] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    3,    3,   27,    4,    4,
-       31,   29,  197,   31,  197,    3,    3,   29,    4,    4,
-       37,   27,   33,   33,   37,   43,   43,   67,   67,  133,
-       33,   83,  209,  133,  201,   43,   43,   86,   86,    3,
-      200,    3,    4,   83,    4,    5,    5,   86,   86,  205,
-        5,  205,  196,  205,  195,    5,    5,  193,  192,   43,
-
-      190,   43,  188,  186,  185,  184,  182,  180,  179,  178,
-      176,   86,  175,   86,  174,  173,  172,  171,  170,    5,
-      168,    5,    6,    6,  167,  166,  165,    6,  164,  162,
-      161,  160,    6,    6,  159,  158,  157,  156,  155,  152,
-      151,  150,  149,  148,  147,  146,  145,  144,  142,  141,
-      140,  137,  136,  134,  132,  130,    6,  129,    6,    7,
-        7,    7,  128,  127,  126,  125,  124,  123,  122,    7,
-        7,  121,  120,  119,  118,  117,  116,  115,  114,  112,
-      111,  110,  109,  108,  107,  106,  105,  102,   85,   84,
-       82,   81,   80,    7,   79,    7,    8,    8,    8,   78,
-
-       77,   76,   75,   74,   73,   72,    8,    8,   71,   70,
-       69,   68,   66,   65,   62,   60,   59,   39,   38,   36,
+       31,   29,  191,   31,  191,    3,    3,   29,    4,    4,
+       37,   27,   33,   33,   37,   43,   43,   64,   64,  127,
+       33,   80,  203,  127,  195,   43,   43,   83,   83,    3,
+      194,    3,    4,   80,    4,    5,    5,   83,   83,  199,
+        5,  199,  190,  199,  189,    5,    5,  187,  186,   43,
+
+      184,   43,  182,  180,  179,  178,  176,  174,  173,  172,
+      170,   83,  169,   83,  168,  167,  166,  165,  164,    5,
+      162,    5,    6,    6,  161,  160,  159,    6,  158,  156,
+      155,  154,    6,    6,  153,  152,  151,  150,  149,  146,
+      145,  144,  143,  142,  141,  140,  139,  138,  136,  135,
+      134,  131,  130,  128,  126,  124,    6,  123,    6,    7,
+        7,    7,  122,  121,  120,  119,  118,  117,  116,    7,
+        7,  115,  114,  113,  112,  111,  110,  109,  108,  106,
+      105,  104,  103,  102,  101,  100,   99,   96,   82,   81,
+       79,   78,   77,    7,   76,    7,    8,    8,    8,   75,
+
+       74,   73,   72,   71,   70,   69,    8,    8,   68,   67,
+       66,   65,   63,   62,   59,   57,   56,   39,   38,   36,
        35,   34,   32,   30,   28,   26,   25,   23,   20,   15,
         8,   13,    8,   47,   47,   11,    9,    0,   47,    0,
         0,    0,    0,   47,   47,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,   47,    0,   47,
-       53,   53,   53,    0,    0,    0,    0,    0,    0,    0,
-       53,   53,    0,    0,    0,    0,    0,    0,    0,    0,
+       51,   51,   51,    0,    0,    0,    0,    0,    0,    0,
+       51,   51,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,   53,    0,   53,   63,   63,    0,
-       63,    0,    0,    0,   63,   63,   63,   63,    0,   63,
-       63,   63,    0,   63,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   51,    0,   51,   60,   60,    0,
+       60,    0,    0,    0,   60,   60,   60,   60,    0,   60,
+       60,   60,    0,   60,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       63,   90,   90,    0,    0,    0,   90,    0,    0,    0,
-        0,   90,   90,    0,    0,    0,    0,    0,    0,    0,
+       60,   87,   87,    0,    0,    0,   87,    0,    0,    0,
+        0,   87,   87,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   90,    0,   90,   96,   96,
-       96,    0,    0,    0,    0,    0,    0,    0,   96,   96,
+        0,    0,    0,    0,    0,   87,    0,   87,   91,   91,
+       91,    0,    0,    0,    0,    0,    0,    0,   91,   91,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   96,    0,   96,  104,  104,    0,  104,    0,
-        0,    0,  104,  104,  104,  104,    0,  104,  104,  104,
-        0,  104,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   91,    0,   91,   98,   98,    0,   98,    0,
+        0,    0,   98,   98,   98,   98,    0,   98,   98,   98,
+        0,   98,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  104,  212,
-      212,  212,  212,  213,  213,  213,  213,  214,  214,  214,
-      214,  215,  215,  216,  216,  216,  216,  217,  217,  217,
-      217,  218,  218,  218,  218,  219,    0,  219,  219,  220,
-
-        0,  220,  220,  221,  221,  221,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
-      211,  211
+        0,    0,    0,    0,    0,    0,    0,    0,   98,  206,
+      206,  206,  206,  207,  207,  207,  207,  208,  208,  208,
+      208,  209,  209,  210,  210,  210,  210,  211,  211,  211,
+      211,  212,  212,  212,  212,  213,    0,  213,  213,  214,
+
+        0,  214,  214,  215,  215,  215,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
+      205,  205
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -696,7 +693,7 @@ static int include_stack_index = 0;
        } while (0)
 
 /* %option yylineno I've tried hard, but haven't been able to use this */
-#line 700 "ael_lex.c"
+#line 697 "ael_lex.c"
 
 #define INITIAL 0
 #define paren 1
@@ -939,7 +936,7 @@ YY_DECL
 #line 83 "ael.flex"
 
 
-#line 943 "ael_lex.c"
+#line 940 "ael_lex.c"
 
     yylval = yylval_param;
 
@@ -1002,13 +999,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 212 )
+                               if ( yy_current_state >= 206 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 211 );
+               while ( yy_current_state != 205 );
                yy_cp = yyg->yy_last_accepting_cpos;
                yy_current_state = yyg->yy_last_accepting_state;
 
@@ -1419,12 +1416,13 @@ case 50:
 YY_RULE_SETUP
 #line 280 "ael.flex"
 {
+               char c = yytext[yyleng-1];
                /*printf("ARGG:%s\n",yytext);*/
                yylloc->first_line = my_lineno;
                yylloc->first_column=my_col;
-               if ( pbcpop('}') ) { /* error */
+               if ( pbcpop(c) ) { /* error */
                        pbcwhere(yytext, &my_lineno, &my_col);
-                       ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno, my_col);
+                       ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '%c' in expression!\n", my_file, my_lineno, my_col, c);
                        BEGIN(0);
                        yylloc->last_line = my_lineno;
                        yylloc->last_column = my_col;
@@ -1437,27 +1435,7 @@ YY_RULE_SETUP
 case 51:
 /* rule 51 can match eol */
 YY_RULE_SETUP
-#line 296 "ael.flex"
-{
-               /*printf("ARGG:%s\n",yytext);*/
-               yylloc->first_line = my_lineno;
-               yylloc->first_column=my_col;
-               if ( pbcpop(']') ) { /* error */
-                       pbcwhere(yytext, &my_lineno, &my_col);
-                       ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno, my_col);
-                       BEGIN(0);
-                       yylloc->last_line = my_lineno;
-                       yylloc->last_column = my_col;
-                       yylval->str = strdup(yytext);
-                       return word;
-               }
-               yymore();
-       }
-       YY_BREAK
-case 52:
-/* rule 52 can match eol */
-YY_RULE_SETUP
-#line 315 "ael.flex"
+#line 299 "ael.flex"
 {
                char c = yytext[yyleng-1];
                /*printf("SEMIC:%s\n",yytext);*/
@@ -1467,17 +1445,18 @@ YY_RULE_SETUP
                pbcpush(c);
                }
        YY_BREAK
-case 53:
-/* rule 53 can match eol */
+case 52:
+/* rule 52 can match eol */
 YY_RULE_SETUP
-#line 324 "ael.flex"
+#line 308 "ael.flex"
 {
+               char c = yytext[yyleng-1];
                /*printf("SEMIC:%s\n",yytext);*/
                yylloc->first_line = my_lineno;
                yylloc->first_column=my_col;
-               if ( pbcpop(']') ) { /* error */
+               if ( pbcpop(c) ) { /* error */
                        pbcwhere(yytext, &my_lineno, &my_col);
-                       ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ']' in expression!\n", my_file, my_lineno, my_col);
+                       ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '%c' in expression!\n", my_file, my_lineno, my_col, c);
                        BEGIN(0);
                        yylloc->last_line = my_lineno;
                        yylloc->last_column= my_col;
@@ -1487,50 +1466,10 @@ YY_RULE_SETUP
                yymore();
        }
        YY_BREAK
-case 54:
-/* rule 54 can match eol */
-YY_RULE_SETUP
-#line 340 "ael.flex"
-{
-               /*printf("SEMIC:%s\n",yytext);*/
-               yylloc->first_line = my_lineno;
-               yylloc->first_column=my_col;
-               if ( pbcpop('}') ) { /* error */
-                       pbcwhere(yytext, &my_lineno, &my_col);
-                       ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched '}' in expression!\n", my_file, my_lineno, my_col);
-                       BEGIN(0);
-                       yylloc->last_line = my_lineno;
-                       yylloc->last_column=my_col;
-                       yylval->str = strdup(yytext);
-                       return word;
-               }
-               yymore();
-       }
-       YY_BREAK
-case 55:
-/* rule 55 can match eol */
-YY_RULE_SETUP
-#line 356 "ael.flex"
-{
-               /*printf("SEMIC:%s\n",yytext);*/
-               yylloc->first_line = my_lineno;
-               yylloc->first_column=my_col;
-               if ( pbcpop(')') ) { /* error */
-                       pbcwhere(yytext, &my_lineno, &my_col);
-                       ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Mismatched ')' in expression!\n", my_file, my_lineno, my_col);
-                       BEGIN(0);
-                       yylloc->last_line = my_lineno;
-                       yylloc->last_column=my_col;
-                       yylval->str = strdup(yytext);
-                       return word;
-               }
-               yymore();
-       }
-       YY_BREAK
-case 56:
-/* rule 56 can match eol */
+case 53:
+/* rule 53 can match eol */
 YY_RULE_SETUP
-#line 372 "ael.flex"
+#line 325 "ael.flex"
 {
                yylloc->first_line = my_lineno;
                yylloc->first_column=my_col;
@@ -1546,10 +1485,10 @@ YY_RULE_SETUP
                return word;
        }
        YY_BREAK
-case 57:
-/* rule 57 can match eol */
+case 54:
+/* rule 54 can match eol */
 YY_RULE_SETUP
-#line 387 "ael.flex"
+#line 340 "ael.flex"
 {
                FILE *in1;
                char fnamebuf[1024],*p1,*p2;
@@ -1616,7 +1555,7 @@ case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(paren):
 case YY_STATE_EOF(semic):
 case YY_STATE_EOF(argg):
-#line 449 "ael.flex"
+#line 402 "ael.flex"
 {
                if ( --include_stack_index < 0 ) {
                        yyterminate();
@@ -1630,12 +1569,12 @@ case YY_STATE_EOF(argg):
                }
        }
        YY_BREAK
-case 58:
+case 55:
 YY_RULE_SETUP
-#line 462 "ael.flex"
+#line 415 "ael.flex"
 ECHO;
        YY_BREAK
-#line 1639 "ael_lex.c"
+#line 1578 "ael_lex.c"
 
        case YY_END_OF_BUFFER:
                {
@@ -1920,7 +1859,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 212 )
+                       if ( yy_current_state >= 206 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1949,11 +1888,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 212 )
+               if ( yy_current_state >= 206 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 211);
+       yy_is_jam = (yy_current_state == 205);
 
        return yy_is_jam ? 0 : yy_current_state;
 }
@@ -2765,7 +2704,7 @@ void ael_yyfree (void * ptr , yyscan_t yyscanner)
 
 #define YYTABLES_NAME "yytables"
 
-#line 462 "ael.flex"
+#line 415 "ael.flex"