diff options
author | murf <murf@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-07-06 22:49:18 +0000 |
---|---|---|
committer | murf <murf@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-07-06 22:49:18 +0000 |
commit | 038813616f01f97561cfb07ac0138eccd73e486f (patch) | |
tree | b3e271d6c8977746d980b1f845f04866c1d89d84 /pbx/ael | |
parent | c8019be99aff3b3041399d659861b95c18556bb1 (diff) |
OK, here is everything I changed to fix 7474:
1. ael/ael.flex -- the "fix" is here. In short, I modified the
pattern for the chars that break args, to exclude those chars that
would normally break args if they are preceded by a backslash. I did
this to 3 patterns where really, this kind of exclusion should be placed.
2. ael_lex.c is an updated output from lex.
3. the ael-test stuff -- instituted a regression test for this condition.
as ael_ntest9. The "n" in the name means that instead of just getting
the syntax/semantic errors and high-level output from aelparse, we
also want the compilation results to be in the comparison file.
(remove the -n option).
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@37255 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx/ael')
-rwxr-xr-x | pbx/ael/ael-test/ael-ntest9/extensions.ael | 12 | ||||
-rw-r--r-- | pbx/ael/ael-test/ref.ael-ntest9 | 29 | ||||
-rwxr-xr-x | pbx/ael/ael-test/runtests | 16 | ||||
-rw-r--r-- | pbx/ael/ael.flex | 6 | ||||
-rw-r--r-- | pbx/ael/ael_lex.c | 554 |
5 files changed, 420 insertions, 197 deletions
diff --git a/pbx/ael/ael-test/ael-ntest9/extensions.ael b/pbx/ael/ael-test/ael-ntest9/extensions.ael new file mode 100755 index 000000000..b9762ed54 --- /dev/null +++ b/pbx/ael/ael-test/ael-ntest9/extensions.ael @@ -0,0 +1,12 @@ + +context workext { + ignorepat => 8; + ignorepat => 9; + 793 => { + Set(QUERYSTRING=SELECT\ foo\,\ bar\ FROM\ foobar); + Verbose(2|${QUERYSTRING}); + query="SELECT foo\, bar FROM foobar" ; + Verbose(2|${query}) ; + } +} + diff --git a/pbx/ael/ael-test/ref.ael-ntest9 b/pbx/ael/ael-test/ref.ael-ntest9 new file mode 100644 index 000000000..c520b0d38 --- /dev/null +++ b/pbx/ael/ael-test/ref.ael-ntest9 @@ -0,0 +1,29 @@ +Executed ast_register_file_version(); +Executed ast_register_file_version(); +Executed ast_register_file_version(); +Executed ast_register_file_version(); + +(You can use the -n option if you aren't interested in seeing all the instructions generated by the compiler) + +Executed ast_cli_register_multiple(); +LOG: lev:2 file:../pbx/pbx_ael.c line:3453 func: pbx_load_module Starting AEL load process. +LOG: lev:2 file:../pbx/pbx_ael.c line:3460 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'. +LOG: lev:2 file:../pbx/pbx_ael.c line:3463 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. +LOG: lev:2 file:../pbx/pbx_ael.c line:3466 func: pbx_load_module AEL load process: checked config file name './extensions.ael'. +Executed ast_context_create(conts, name=workext, registrar=pbx_ael); +Executed ast_context_add_ignorepat2(con, value=8, registrar=pbx_ael); +Executed ast_context_add_ignorepat2(con, value=9, registrar=pbx_ael); +Executed ast_add_extension2(con, rep=0, exten=793, priority=1, label=(null), callerid=(null), appl=Set, data=QUERYSTRING=SELECT\ foo\,\ bar\ FROM\ foobar, FREE, registrar=pbx_ael); +Executed ast_add_extension2(con, rep=0, exten=793, priority=2, label=(null), callerid=(null), appl=Verbose, data=2|${QUERYSTRING}, FREE, registrar=pbx_ael); +Executed ast_add_extension2(con, rep=0, exten=793, priority=3, label=(null), callerid=(null), appl=Set, data=query=$["SELECT foo\, bar FROM foobar" ], FREE, registrar=pbx_ael); +Executed ast_add_extension2(con, rep=0, exten=793, priority=4, label=(null), callerid=(null), appl=Verbose, data=2|${query}, FREE, registrar=pbx_ael); +LOG: lev:2 file:../pbx/pbx_ael.c line:3468 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'. +Executed ast_merge_contexts_and_delete(); +LOG: lev:2 file:../pbx/pbx_ael.c line:3471 func: pbx_load_module AEL load process: merged config file name './extensions.ael'. +Executed ast_walk_contexts(); +LOG: lev:2 file:../pbx/pbx_ael.c line:3474 func: pbx_load_module AEL load process: verified config file name './extensions.ael'. +LOG: lev:4 file:ael2_parse line:253 func: main 1 contexts, 1 extensions, 4 priorities +Executed ast_unregister_file_version(); +Executed ast_unregister_file_version(); +Executed ast_unregister_file_version(); +Executed ast_unregister_file_version(); diff --git a/pbx/ael/ael-test/runtests b/pbx/ael/ael-test/runtests index 441088eb3..b8772cdb4 100755 --- a/pbx/ael/ael-test/runtests +++ b/pbx/ael/ael-test/runtests @@ -21,4 +21,20 @@ for i in ael-test*; do fi done + +for i in ael-ntest*; do + echo -n Test: $i................. + (cd $i; ../../../../utils/aelparse -d | grep -v -i 'seconds' > ../res.$i) + do_filter < res.$i > $NEW + do_filter < ref.$i > $ORIG + if (diff -q $NEW $ORIG > /dev/null 2>&1 ) then + echo PASSED + rm res.$i + else + echo %%%%%%FAILED%%%%%% + # diff -u ref.$i res.$i + diff -u $ORIG $NEW + fi + +done rm $NEW $ORIG diff --git a/pbx/ael/ael.flex b/pbx/ael/ael.flex index e66ce1287..f773dd4e9 100644 --- a/pbx/ael/ael.flex +++ b/pbx/ael/ael.flex @@ -164,11 +164,11 @@ static void pbcwhere(const char *text, int *line, int *col ) %} -NOPARENS [^()\[\]\{\}]* +NOPARENS ([^()\[\]\{\}]|\\[()\[\]\{\}])* -NOARGG [^(),\{\}\[\]]* +NOARGG ([^(),\{\}\[\]]|\\[,()\[\]\{\}])* -NOSEMIC [^;()\{\}\[\]]* +NOSEMIC ([^;()\{\}\[\]]|\\[;()\[\]\{\}])* %% diff --git a/pbx/ael/ael_lex.c b/pbx/ael/ael_lex.c index df46817e1..30dfd539b 100644 --- a/pbx/ael/ael_lex.c +++ b/pbx/ael/ael_lex.c @@ -354,31 +354,33 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[206] = +static yyconst flex_int16_t yy_accept[222] = { 0, 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, 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, + 10, 2, 55, 45, 44, 55, 46, 55, 51, 52, + 53, 55, 55, 47, 48, 49, 55, 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, 0, 46, + 45, 44, 46, 0, 51, 52, 53, 0, 51, 52, + + 53, 0, 47, 48, 49, 0, 50, 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, 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, 54, 0 + 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] = @@ -392,11 +394,11 @@ static yyconst flex_int32_t yy_ec[256] = 15, 16, 1, 17, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 18, 5, 5, 5, 5, 5, 5, - 19, 1, 20, 1, 5, 1, 21, 22, 23, 24, + 19, 20, 21, 1, 5, 1, 22, 23, 24, 25, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 5, 37, 38, 39, 40, 5, 41, 42, - 5, 5, 43, 44, 45, 1, 1, 1, 1, 1, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 5, 38, 39, 40, 41, 5, 42, 43, + 5, 5, 44, 45, 46, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -413,199 +415,363 @@ static yyconst flex_int32_t yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[46] = +static yyconst flex_int32_t yy_meta[47] = { 0, 1, 1, 2, 1, 3, 4, 3, 1, 1, 1, - 1, 3, 1, 1, 1, 3, 1, 3, 3, 3, + 1, 3, 1, 1, 1, 3, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 1, 3 + 3, 3, 3, 3, 1, 3 } ; -static yyconst flex_int16_t yy_base[216] = +static yyconst flex_int16_t yy_base[232] = { 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, - 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 + 0, 0, 38, 76, 114, 152, 190, 228, 220, 1238, + 217, 1238, 214, 0, 187, 1238, 1238, 1238, 1238, 204, + 1238, 1238, 199, 1238, 191, 175, 27, 186, 17, 172, + 18, 177, 25, 165, 183, 182, 39, 161, 173, 1238, + 1238, 1238, 266, 1238, 1238, 304, 1238, 342, 1238, 1238, + 1238, 380, 418, 1238, 1238, 1238, 456, 1238, 195, 191, + 0, 159, 502, 1238, 154, 166, 27, 156, 163, 150, + 146, 149, 150, 145, 149, 165, 147, 157, 146, 155, + 138, 142, 34, 146, 145, 539, 1238, 1238, 577, 1238, + 615, 653, 691, 729, 1238, 1238, 1238, 767, 805, 843, + + 881, 919, 1238, 1238, 1238, 957, 1238, 995, 1033, 1071, + 1109, 150, 0, 1155, 130, 147, 142, 143, 125, 142, + 137, 129, 0, 134, 120, 115, 124, 117, 119, 114, + 112, 109, 123, 121, 105, 105, 111, 110, 104, 109, + 0, 111, 38, 98, 0, 98, 115, 0, 0, 102, + 94, 90, 0, 94, 103, 91, 83, 87, 97, 93, + 77, 95, 0, 0, 73, 80, 81, 89, 79, 85, + 84, 84, 0, 70, 73, 66, 70, 75, 0, 78, + 78, 61, 59, 59, 69, 55, 0, 56, 66, 56, + 0, 64, 0, 63, 62, 47, 0, 57, 0, 55, + + 0, 58, 40, 0, 43, 37, 67, 0, 0, 33, + 30, 0, 0, 0, 71, 0, 0, 0, 49, 1238, + 1238, 1200, 1204, 1208, 1210, 1214, 1218, 1222, 1226, 1230, + 1234 } ; -static yyconst flex_int16_t yy_def[216] = +static yyconst flex_int16_t yy_def[232] = { 0, - 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 + 221, 1, 222, 222, 223, 223, 224, 224, 221, 221, + 221, 221, 221, 225, 225, 221, 221, 221, 221, 225, + 221, 221, 221, 221, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 221, + 221, 221, 226, 221, 221, 226, 221, 227, 221, 221, + 221, 227, 228, 221, 221, 221, 228, 221, 221, 221, + 225, 225, 229, 221, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 226, 221, 221, 226, 221, + 226, 226, 226, 227, 221, 221, 221, 227, 227, 227, + + 227, 228, 221, 221, 221, 228, 221, 228, 228, 228, + 228, 225, 230, 229, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 221, 225, 225, 231, 231, 221, + 0, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221 } ; -static yyconst flex_int16_t yy_nxt[553] = +static yyconst flex_int16_t yy_nxt[1285] = { 0, 10, 11, 12, 13, 14, 14, 15, 16, 17, 18, - 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, 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, + 19, 20, 21, 22, 23, 14, 24, 14, 14, 10, + 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, 70, + 73, 76, 77, 74, 220, 71, 44, 46, 47, 78, + 82, 134, 68, 165, 83, 117, 118, 166, 215, 217, + 215, 216, 215, 135, 215, 214, 218, 213, 212, 211, + 210, 44, 209, 47, 44, 45, 208, 207, 206, 205, + 204, 203, 202, 201, 44, 46, 47, 200, 199, 198, + + 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, + 187, 186, 185, 184, 183, 182, 181, 180, 179, 44, + 178, 47, 49, 50, 177, 176, 175, 51, 174, 173, + 172, 171, 49, 52, 50, 170, 169, 168, 167, 164, + 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, + 153, 152, 151, 150, 149, 148, 147, 49, 146, 50, + 49, 50, 145, 144, 143, 51, 142, 141, 140, 139, + 49, 52, 50, 138, 137, 136, 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 + 119, 116, 115, 112, 60, 49, 59, 50, 54, 55, + + 56, 85, 84, 81, 80, 79, 75, 72, 54, 57, + 58, 69, 66, 65, 64, 63, 62, 60, 59, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 54, 221, 58, 54, 55, 56, 221, + 221, 221, 221, 221, 221, 221, 54, 57, 58, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 54, 221, 58, 87, 88, 221, 221, 221, 221, + 221, 221, 221, 221, 87, 89, 90, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + + 221, 221, 221, 221, 221, 221, 221, 221, 221, 87, + 221, 90, 91, 92, 221, 221, 221, 221, 221, 221, + 221, 221, 91, 89, 93, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 91, 221, 93, + 95, 96, 221, 221, 221, 97, 221, 221, 221, 221, + 95, 98, 96, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 95, 221, 96, 99, 100, + 221, 221, 221, 101, 221, 221, 221, 221, 99, 98, + + 100, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 99, 221, 100, 103, 104, 105, 221, + 221, 221, 221, 221, 221, 221, 103, 106, 107, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 103, 221, 107, 108, 109, 110, 221, 221, 221, + 221, 221, 221, 221, 108, 106, 111, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 108, + + 221, 111, 113, 113, 221, 113, 221, 221, 221, 113, + 113, 113, 113, 221, 113, 113, 113, 221, 113, 221, + 221, 113, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 113, 87, 88, 221, + 221, 221, 221, 221, 221, 221, 221, 87, 89, 90, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 87, 221, 90, 91, 92, 221, 221, 221, + 221, 221, 221, 221, 221, 91, 89, 93, 221, 221, + + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 91, 221, 93, 87, 88, 221, 221, 221, 221, 221, + 221, 221, 221, 87, 89, 90, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 87, 221, + 90, 87, 88, 221, 221, 221, 221, 221, 221, 221, + 221, 87, 89, 90, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 87, 221, 90, 87, + + 88, 221, 221, 221, 221, 221, 221, 221, 221, 87, + 89, 90, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 87, 221, 90, 95, 96, 221, + 221, 221, 97, 221, 221, 221, 221, 95, 98, 96, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 95, 221, 96, 99, 100, 221, 221, 221, + 101, 221, 221, 221, 221, 99, 98, 100, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 99, 221, 100, 95, 96, 221, 221, 221, 97, 221, + 221, 221, 221, 95, 98, 96, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 95, 221, + 96, 95, 96, 221, 221, 221, 97, 221, 221, 221, + 221, 95, 98, 96, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 95, 221, 96, 95, + 96, 221, 221, 221, 97, 221, 221, 221, 221, 95, + + 98, 96, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 95, 221, 96, 103, 104, 105, + 221, 221, 221, 221, 221, 221, 221, 103, 106, 107, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 103, 221, 107, 108, 109, 110, 221, 221, + 221, 221, 221, 221, 221, 108, 106, 111, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + + 108, 221, 111, 103, 104, 105, 221, 221, 221, 221, + 221, 221, 221, 103, 106, 107, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 103, 221, + 107, 103, 104, 105, 221, 221, 221, 221, 221, 221, + 221, 103, 106, 107, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 103, 221, 107, 103, + 104, 105, 221, 221, 221, 221, 221, 221, 221, 103, + 106, 107, 221, 221, 221, 221, 221, 221, 221, 221, + + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 103, 221, 107, 103, 104, 105, + 221, 221, 221, 221, 221, 221, 221, 103, 106, 107, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 103, 221, 107, 113, 113, 221, 113, 221, + 221, 221, 113, 113, 113, 113, 221, 113, 113, 113, + 221, 113, 221, 221, 113, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 113, + + 43, 43, 43, 43, 48, 48, 48, 48, 53, 53, + 53, 53, 61, 61, 86, 86, 86, 86, 94, 94, + 94, 94, 102, 102, 102, 102, 114, 221, 114, 114, + 113, 221, 113, 113, 219, 219, 219, 9, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221 } ; -static yyconst flex_int16_t yy_chk[553] = +static yyconst flex_int16_t yy_chk[1285] = { 0, 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, 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, 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, + 1, 1, 1, 1, 1, 1, 3, 3, 27, 29, + 31, 33, 33, 31, 219, 29, 3, 3, 3, 33, + 37, 83, 27, 143, 37, 67, 67, 143, 207, 211, + 207, 210, 215, 83, 215, 206, 215, 205, 203, 202, + 200, 3, 198, 3, 4, 4, 196, 195, 194, 192, + 190, 189, 188, 186, 4, 4, 4, 185, 184, 183, + + 182, 181, 180, 178, 177, 176, 175, 174, 172, 171, + 170, 169, 168, 167, 166, 165, 162, 161, 160, 4, + 159, 4, 5, 5, 158, 157, 156, 5, 155, 154, + 152, 151, 5, 5, 5, 150, 147, 146, 144, 142, + 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, + 130, 129, 128, 127, 126, 125, 124, 5, 122, 5, + 6, 6, 121, 120, 119, 6, 118, 117, 116, 115, + 6, 6, 6, 112, 85, 84, 82, 81, 80, 79, + 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, + 68, 66, 65, 62, 60, 6, 59, 6, 7, 7, + + 7, 39, 38, 36, 35, 34, 32, 30, 7, 7, + 7, 28, 26, 25, 23, 20, 15, 13, 11, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 47, 0, 47, - 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, - 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 0, 7, 8, 8, 8, 0, + 0, 0, 0, 0, 0, 0, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8, 0, 8, 43, 43, 0, 0, 0, 0, + 0, 0, 0, 0, 43, 43, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, + 0, 43, 46, 46, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 46, 46, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 0, 46, + 48, 48, 0, 0, 0, 48, 0, 0, 0, 0, + 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 0, 48, 52, 52, + 0, 0, 0, 52, 0, 0, 0, 0, 52, 52, + + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 0, 52, 53, 53, 53, 0, + 0, 0, 0, 0, 0, 0, 53, 53, 53, 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, 57, 57, 57, 0, 0, 0, + 0, 0, 0, 0, 57, 57, 57, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, - 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, 57, 63, 63, 0, 63, 0, 0, 0, 63, + 63, 63, 63, 0, 63, 63, 63, 0, 63, 0, + 0, 63, 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, 86, 86, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 86, 86, 0, 0, 0, 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, 87, 0, 87, 91, 91, - 91, 0, 0, 0, 0, 0, 0, 0, 91, 91, + 0, 0, 86, 0, 86, 89, 89, 0, 0, 0, + 0, 0, 0, 0, 0, 89, 89, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, + 89, 0, 89, 91, 91, 0, 0, 0, 0, 0, + 0, 0, 0, 91, 91, 91, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, + 91, 92, 92, 0, 0, 0, 0, 0, 0, 0, + 0, 92, 92, 92, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 92, 0, 92, 93, + + 93, 0, 0, 0, 0, 0, 0, 0, 0, 93, + 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 93, 0, 93, 94, 94, 0, + 0, 0, 94, 0, 0, 0, 0, 94, 94, 94, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 94, 0, 94, 98, 98, 0, 0, 0, + 98, 0, 0, 0, 0, 98, 98, 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, 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 + 98, 0, 98, 99, 99, 0, 0, 0, 99, 0, + 0, 0, 0, 99, 99, 99, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, + 99, 100, 100, 0, 0, 0, 100, 0, 0, 0, + 0, 100, 100, 100, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 100, 0, 100, 101, + 101, 0, 0, 0, 101, 0, 0, 0, 0, 101, + + 101, 101, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 101, 0, 101, 102, 102, 102, + 0, 0, 0, 0, 0, 0, 0, 102, 102, 102, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 102, 0, 102, 106, 106, 106, 0, 0, + 0, 0, 0, 0, 0, 106, 106, 106, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 106, 0, 106, 108, 108, 108, 0, 0, 0, 0, + 0, 0, 0, 108, 108, 108, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, + 108, 109, 109, 109, 0, 0, 0, 0, 0, 0, + 0, 109, 109, 109, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 109, 0, 109, 110, + 110, 110, 0, 0, 0, 0, 0, 0, 0, 110, + 110, 110, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 110, 0, 110, 111, 111, 111, + 0, 0, 0, 0, 0, 0, 0, 111, 111, 111, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 111, 0, 111, 114, 114, 0, 114, 0, + 0, 0, 114, 114, 114, 114, 0, 114, 114, 114, + 0, 114, 0, 0, 114, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, + + 222, 222, 222, 222, 223, 223, 223, 223, 224, 224, + 224, 224, 225, 225, 226, 226, 226, 226, 227, 227, + 227, 227, 228, 228, 228, 228, 229, 0, 229, 229, + 230, 0, 230, 230, 231, 231, 231, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221 } ; /* The intent behind this definition is that it'll catch @@ -766,7 +932,7 @@ static void pbcwhere(const char *text, int *line, int *col ) #define STORE_POS #define STORE_LOC #endif -#line 781 "ael_lex.c" +#line 935 "ael_lex.c" #define INITIAL 0 #define paren 1 @@ -1003,7 +1169,7 @@ YY_DECL #line 173 "ael.flex" -#line 1024 "ael_lex.c" +#line 1172 "ael_lex.c" yylval = yylval_param; @@ -1066,13 +1232,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 >= 206 ) + if ( yy_current_state >= 222 ) 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 != 205 ); + while ( yy_current_state != 221 ); yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; @@ -1591,7 +1757,7 @@ YY_RULE_SETUP #line 453 "ael.flex" ECHO; YY_BREAK -#line 1612 "ael_lex.c" +#line 1760 "ael_lex.c" case YY_END_OF_BUFFER: { @@ -1822,7 +1988,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - yyg->yy_n_chars, (size_t) num_to_read ); + yyg->yy_n_chars, num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } @@ -1876,7 +2042,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 >= 206 ) + if ( yy_current_state >= 222 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1905,11 +2071,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 >= 206 ) + if ( yy_current_state >= 222 ) 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 == 205); + yy_is_jam = (yy_current_state == 221); return yy_is_jam ? 0 : yy_current_state; } @@ -2727,7 +2893,7 @@ void ael_yyfree (void * ptr , yyscan_t yyscanner) #undef YY_DECL_IS_OURS #undef YY_DECL #endif -#line 450 "ael.flex" +#line 453 "ael.flex" |