diff options
author | rizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-05-03 16:12:31 +0000 |
---|---|---|
committer | rizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-05-03 16:12:31 +0000 |
commit | d9a549e560904899ffec909c3664a82ba19de3b9 (patch) | |
tree | 96c3d68cd4559c81204048b6f7f57aa41fce5330 /pbx/ael/ael.y | |
parent | 088b8e75cf0bfb5d7256bed9eef2c14afbe9c7c0 (diff) |
simplify case_statements
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@24424 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx/ael/ael.y')
-rw-r--r-- | pbx/ael/ael.y | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/pbx/ael/ael.y b/pbx/ael/ael.y index f73b385aa..e46a002d3 100644 --- a/pbx/ael/ael.y +++ b/pbx/ael/ael.y @@ -121,6 +121,7 @@ static pval *update_last(pval *, YYLTYPE *); %type <pval>switchlist_block %type <pval>timespec %type <pval>included_entry +%type <pval>opt_statements %type <str>opt_word %type <str>context_name @@ -169,6 +170,7 @@ static pval *update_last(pval *, YYLTYPE *); opt_else elements_block switchlist_block timespec included_entry + opt_statements %destructor { free($$);} word word_list goto_word word3_list opt_word context_name timerange @@ -547,27 +549,23 @@ case_statements: /* empty */ { $$ = NULL; } | case_statements case_statement { $$ = linku1($1, $2); } ; -case_statement: KW_CASE word COLON statements { +/* statement in a switch body after a label */ +opt_statements : { $$ = NULL; } + | statements { $$ = $1; } + ; + +case_statement: KW_CASE word COLON opt_statements { $$ = npval2(PV_CASE, &@1, &@3); /* XXX 3 or 4 ? */ $$->u1.str = $2; $$->u2.statements = $4;} - | KW_DEFAULT COLON statements { + | KW_DEFAULT COLON opt_statements { $$ = npval2(PV_DEFAULT, &@1, &@3); $$->u1.str = NULL; $$->u2.statements = $3;} - | KW_PATTERN word COLON statements { + | KW_PATTERN word COLON opt_statements { $$ = npval2(PV_PATTERN, &@1, &@4); /* XXX@3 or @4 ? */ $$->u1.str = $2; $$->u2.statements = $4;} - | KW_CASE word COLON { - $$ = npval2(PV_CASE, &@1, &@3); - $$->u1.str = $2;} - | KW_DEFAULT COLON { - $$ = npval2(PV_DEFAULT, &@1, &@2); - $$->u1.str = NULL;} - | KW_PATTERN word COLON { - $$ = npval2(PV_PATTERN, &@1, &@3); - $$->u1.str = $2;} ; macro_statements: /* empty */ { $$ = NULL; } |