aboutsummaryrefslogtreecommitdiffstats
path: root/pbx/ael/ael.y
diff options
context:
space:
mode:
authorrizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b>2006-05-03 16:12:31 +0000
committerrizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b>2006-05-03 16:12:31 +0000
commitd9a549e560904899ffec909c3664a82ba19de3b9 (patch)
tree96c3d68cd4559c81204048b6f7f57aa41fce5330 /pbx/ael/ael.y
parent088b8e75cf0bfb5d7256bed9eef2c14afbe9c7c0 (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.y22
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; }