1statement(Data,enum(Name1,Body1)) -->
2 {
3 namespace(Data,Data1,Name1,Indent),
4 Name = symbol(Name1),
5 Body = enum_list(Data1,Body1)
6 },
7 enum_(Data,[Name,Body,Indent]).
8
9statement(Data,Type1,function(Name1,Type1,Params1,Body1)) -->
10 {
11 namespace(Data,Data1,Name1,Indent),
12 Name = function_name(Data,Type1,Name1,Params1),
13 Type = type(Data,Type1),
14 Body = statements(Data1,Type1,Body1),
15 (Params1 = [], Params = ""; Params = parameters(Data1,Params1))
16 },
17 18 optional_indent(Data,Indent),
19 function_(Data,[Name,Type,Params,Body,Indent]).
20
22statement(Data,Name1,class(Name1,Body1)) -->
23 {
24 namespace(Data,Data1,Name1,Indent),
25 Name = symbol(Name1),
26 Body=class_statements(Data1,Name1,Body1)
27 },
28 optional_indent(Data,Indent),
29 class_(Data,[Name,Body,Indent]).
30
31statement(Data,C1,class_extends(C1_,C2_,B_)) -->
32 {
33 namespace(Data,Data1,C1_,Indent),
34 C1 = symbol(C1_),
35 C2 = symbol(C2_),
36 B=class_statements(Data1,C1_,B_)
37 },
38 optional_indent(Data,Indent),
39 class_extends_(Data,[C1,C2,B,Indent]).
40
41statement(Data,Return_type,semicolon(A_)) -->
42 {Data = [_,_,_,_,Indent,_],A=statement_with_semicolon(Data,Return_type,A_),offside_rule_langs(Offside_rule_langs)},
43 optional_indent(Data,Indent),
44 semicolon_(Data,[A]).
45
46statement(Data,Return_type,for(Statement1_,Expr_,Statement2_,Body1)) -->
47 {
48 indent_data(Indent,Data,Data1),
49 Body = statements(Data1,Return_type,Body1),
50 Statement1 = statement_with_semicolon(Data,Return_type,Statement1_),
51 Condition = expr(Data,bool,Expr_),
52 Statement2 = statement_with_semicolon(Data,Return_type,Statement2_)
53 },
54 optional_indent(Data,Indent),
55 for_(Data,[Statement1,Condition,Statement2,Body,Indent]).
56
57statement(Data,Return_type,foreach_with_index(Array1,Var1,Index1,Body1,Type1)) -->
58 {
59 indent_data(Indent,Data,Data1),
60 Array = expr(Data,[array,Type1],Array1),
61 Index = expr(Data,int,Index1),
62 Var = var_name_(Data,Type1,Var1),
63 Type = type(Data,Type1),
64 Body = statements(Data1,Return_type,Body1)
65 },
66 optional_indent(Data,Indent),
67 foreach_with_index_(Data,[Array,Var,Index,Type,Body,Indent]).
68
69statement(Data,Return_type,foreach(Array1,Var1,Body1,Type1)) -->
70 {
71 indent_data(Indent,Data,Data1),
72 Array = expr(Data,[array,Type1],Array1),
73 Var = var_name_(Data,Type1,Var1),
74 Type = type(Data,Type1),
75 Body = statements(Data1,Return_type,Body1)
76 },
77 optional_indent(Data,Indent),
78 foreach_(Data,[Array,Var,Type,Body,Indent]).
79
80statement(Data,Return_type,while(Expr1,Body1)) -->
81 {
82 indent_data(Indent,Data,Data1),
83 B = statements(Data1,Return_type,Body1),
84 A = expr(Data,bool,Expr1)
85 },
86 optional_indent(Data,Indent),
87 while_(Data,[A,B,Indent]).
88
89statement(Data,Return_type,do_while(Expr1,Body1)) -->
90 {
91 indent_data(Indent,Data,Data1),
92 B = statements(Data1,Return_type,Body1),
93 A = expr(Data,bool,Expr1)
94 },
95 optional_indent(Data,Indent),
96 do_while_(Data,[A,B,Indent]).
97
98
99statement(Data,Return_type,if(Expr_,Statements_,Elif_or_else_,Else_)) -->
100 {
101 indent_data(Indent,Data,Data1),
102 A = expr(Data,bool,Expr_),
103 B = statements(Data1,Return_type,Statements_),
104 C = elif_or_else(Data,Return_type,Elif_or_else_),
105 D = else(Data,Return_type,Else_)
106 },
107 optional_indent(Data,Indent),
108 if(Data,[A,B,C,D,Indent]).
109statement(Data,Return_type, switch(Expr_,Expr1_,Statements_,Case_or_default_)) -->
110 {
111 indent_data(Indent,Data,Data1),
112 A = parentheses_expr(Data,int,Expr_),
113 B = first_case(Data1,Return_type,Expr_,int,[Expr1_,Statements_,Case_or_default_])
114 },
115 optional_indent(Data,Indent),
116 switch_(Data,[A,B,Indent])