Skip to content

Commit 0cc9d10

Browse files
committed
allow conditionals in function
1 parent d3554fe commit 0cc9d10

File tree

1 file changed

+50
-1
lines changed

1 file changed

+50
-1
lines changed

act/defs.m4

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1945,7 +1945,7 @@ func_body[ActBody *]: ";"
19451945
}}
19461946
;
19471947

1948-
func_body_items[ActBody *]: alias_or_inst_list lang_chp
1948+
func_body_items[ActBody *]: alias_or_inst_list gen_lang_chp
19491949
{{X:
19501950
ActBody *b;
19511951

@@ -1960,6 +1960,55 @@ func_body_items[ActBody *]: alias_or_inst_list lang_chp
19601960
}}
19611961
;
19621962

1963+
1964+
gen_lang_chp[ActBody *]: lang_chp
1965+
{{X:
1966+
return $1;
1967+
}}
1968+
| "*["
1969+
{{X: $0->in_cond++; }}
1970+
{ gc_1_v2 "[]" }* "]" [";"]
1971+
{{X:
1972+
return apply_X_loop_opt1 ($0, $2, $4);
1973+
}}
1974+
| "["
1975+
{{X: $0->in_cond++; }}
1976+
guarded_cmds_v2 "]" [";"]
1977+
{{X:
1978+
$0->in_cond--;
1979+
OPT_FREE ($4);
1980+
return $2;
1981+
}}
1982+
| assertion
1983+
{{X: return $1; }}
1984+
| debug_output
1985+
{{X: return $1; }}
1986+
;
1987+
1988+
gc_1_v2[ActBody_Select_gc *]: wbool_expr "->" func_body_items
1989+
{{X:
1990+
return apply_X_gc_1_opt0 ($0, $1, $3);
1991+
}}
1992+
| "(" "[]" ID
1993+
{{X:
1994+
lapply_X_gc_1_1_2 ($0, $3);
1995+
}}
1996+
":" !noreal wpint_expr [ ".." wpint_expr ] ":" wbool_expr "->" func_body_items ")"
1997+
{{X:
1998+
return apply_X_gc_1_opt1 ($0, $3, $5, $6, $8, $10);
1999+
}}
2000+
| "else" "->" func_body_items
2001+
{{X:
2002+
return apply_X_gc_1_opt2 ($0, $3);
2003+
}}
2004+
;
2005+
2006+
guarded_cmds_v2[ActBody *]: { gc_1_v2 "[]" }*
2007+
{{X:
2008+
return apply_X_guarded_cmds_opt0 ($0, $1);
2009+
}}
2010+
;
2011+
19632012
alias_or_inst_list[ActBody *]: al_item alias_or_inst_list
19642013
{{X:
19652014
$1->Append ($2);

0 commit comments

Comments
 (0)