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