1 | |
---|
2 | //---------------------------------------------------- |
---|
3 | // The following code was generated by CUP v0.11a beta 20060608 |
---|
4 | // Sun Jan 11 11:14:12 NZDT 2009 |
---|
5 | //---------------------------------------------------- |
---|
6 | |
---|
7 | package weka.filters.unsupervised.instance.subsetbyexpression; |
---|
8 | |
---|
9 | import weka.core.*; |
---|
10 | import java_cup.runtime.*; |
---|
11 | import java.io.*; |
---|
12 | import java.util.*; |
---|
13 | |
---|
14 | /** CUP v0.11a beta 20060608 generated parser. |
---|
15 | * @version Sun Jan 11 11:14:12 NZDT 2009 |
---|
16 | */ |
---|
17 | public class Parser extends java_cup.runtime.lr_parser { |
---|
18 | |
---|
19 | /** Default constructor. */ |
---|
20 | public Parser() {super();} |
---|
21 | |
---|
22 | /** Constructor which sets the default scanner. */ |
---|
23 | public Parser(java_cup.runtime.Scanner s) {super(s);} |
---|
24 | |
---|
25 | /** Constructor which sets the default scanner. */ |
---|
26 | public Parser(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);} |
---|
27 | |
---|
28 | /** Production table. */ |
---|
29 | protected static final short _production_table[][] = |
---|
30 | unpackFromStrings(new String[] { |
---|
31 | "\000\046\000\002\002\004\000\002\002\004\000\002\002" + |
---|
32 | "\003\000\002\003\003\000\002\007\003\000\002\007\003" + |
---|
33 | "\000\002\007\003\000\002\007\005\000\002\007\005\000" + |
---|
34 | "\002\007\005\000\002\007\005\000\002\007\005\000\002" + |
---|
35 | "\007\005\000\002\007\004\000\002\007\005\000\002\007" + |
---|
36 | "\005\000\002\007\005\000\002\007\006\000\002\004\003" + |
---|
37 | "\000\002\004\003\000\002\004\005\000\002\004\003\000" + |
---|
38 | "\002\004\003\000\002\005\005\000\002\005\005\000\002" + |
---|
39 | "\005\005\000\002\005\005\000\002\006\006\000\002\006" + |
---|
40 | "\006\000\002\006\006\000\002\006\006\000\002\006\006" + |
---|
41 | "\000\002\006\006\000\002\006\006\000\002\006\006\000" + |
---|
42 | "\002\006\006\000\002\006\010\000\002\006\006" }); |
---|
43 | |
---|
44 | /** Access to production table. */ |
---|
45 | public short[][] production_table() {return _production_table;} |
---|
46 | |
---|
47 | /** Parse-action table. */ |
---|
48 | protected static final short[][] _action_table = |
---|
49 | unpackFromStrings(new String[] { |
---|
50 | "\000\142\000\050\005\016\007\033\014\026\015\012\016" + |
---|
51 | "\020\017\021\020\004\021\006\022\034\023\014\024\015" + |
---|
52 | "\025\011\026\017\027\013\030\031\036\010\042\024\043" + |
---|
53 | "\022\044\007\001\002\000\004\005\142\001\002\000\024" + |
---|
54 | "\010\045\011\043\012\046\013\044\031\110\032\106\033" + |
---|
55 | "\107\034\104\035\105\001\002\000\004\005\137\001\002" + |
---|
56 | "\000\030\006\uffee\010\uffee\011\uffee\012\uffee\013\uffee\031" + |
---|
57 | "\uffee\032\uffee\033\uffee\034\uffee\035\uffee\041\135\001\002" + |
---|
58 | "\000\050\005\016\007\033\014\026\015\012\016\020\017" + |
---|
59 | "\021\020\004\021\006\022\034\023\014\024\015\025\011" + |
---|
60 | "\026\017\027\013\030\031\036\010\042\024\043\022\044" + |
---|
61 | "\007\001\002\000\004\005\127\001\002\000\004\005\124" + |
---|
62 | "\001\002\000\060\002\ufffc\005\ufffc\006\ufffc\007\ufffc\014" + |
---|
63 | "\ufffc\015\ufffc\016\ufffc\017\ufffc\020\ufffc\021\ufffc\022\ufffc" + |
---|
64 | "\023\ufffc\024\ufffc\025\ufffc\026\ufffc\027\ufffc\030\ufffc\036" + |
---|
65 | "\ufffc\037\ufffc\040\ufffc\042\ufffc\043\ufffc\044\ufffc\001\002" + |
---|
66 | "\000\004\005\121\001\002\000\004\005\116\001\002\000" + |
---|
67 | "\050\005\016\007\033\014\026\015\012\016\020\017\021" + |
---|
68 | "\020\004\021\006\022\034\023\014\024\015\025\011\026" + |
---|
69 | "\017\027\013\030\031\036\010\042\024\043\022\044\007" + |
---|
70 | "\001\002\000\004\005\076\001\002\000\004\005\073\001" + |
---|
71 | "\002\000\004\005\070\001\002\000\060\002\ufffd\005\ufffd" + |
---|
72 | "\006\ufffd\007\ufffd\014\ufffd\015\ufffd\016\ufffd\017\ufffd\020" + |
---|
73 | "\ufffd\021\ufffd\022\ufffd\023\ufffd\024\ufffd\025\ufffd\026\ufffd" + |
---|
74 | "\027\ufffd\030\ufffd\036\ufffd\037\ufffd\040\ufffd\042\ufffd\043" + |
---|
75 | "\ufffd\044\ufffd\001\002\000\052\002\uffff\005\uffff\007\uffff" + |
---|
76 | "\014\uffff\015\uffff\016\uffff\017\uffff\020\uffff\021\uffff\022" + |
---|
77 | "\uffff\023\uffff\024\uffff\025\uffff\026\uffff\027\uffff\030\uffff" + |
---|
78 | "\036\uffff\042\uffff\043\uffff\044\uffff\001\002\000\104\002" + |
---|
79 | "\uffef\004\uffef\005\uffef\006\uffef\007\uffef\010\uffef\011\uffef" + |
---|
80 | "\012\uffef\013\uffef\014\uffef\015\uffef\016\uffef\017\uffef\020" + |
---|
81 | "\uffef\021\uffef\022\uffef\023\uffef\024\uffef\025\uffef\026\uffef" + |
---|
82 | "\027\uffef\030\uffef\031\uffef\032\uffef\033\uffef\034\uffef\035" + |
---|
83 | "\uffef\036\uffef\037\uffef\040\uffef\042\uffef\043\uffef\044\uffef" + |
---|
84 | "\001\002\000\104\002\uffeb\004\uffeb\005\uffeb\006\uffeb\007" + |
---|
85 | "\uffeb\010\uffeb\011\uffeb\012\uffeb\013\uffeb\014\uffeb\015\uffeb" + |
---|
86 | "\016\uffeb\017\uffeb\020\uffeb\021\uffeb\022\uffeb\023\uffeb\024" + |
---|
87 | "\uffeb\025\uffeb\026\uffeb\027\uffeb\030\uffeb\031\uffeb\032\uffeb" + |
---|
88 | "\033\uffeb\034\uffeb\035\uffeb\036\uffeb\037\uffeb\040\uffeb\042" + |
---|
89 | "\uffeb\043\uffeb\044\uffeb\001\002\000\004\005\065\001\002" + |
---|
90 | "\000\052\002\064\005\016\007\033\014\026\015\012\016" + |
---|
91 | "\020\017\021\020\004\021\006\022\034\023\014\024\015" + |
---|
92 | "\025\011\026\017\027\013\030\031\036\010\042\024\043" + |
---|
93 | "\022\044\007\001\002\000\056\002\ufffe\005\ufffe\007\ufffe" + |
---|
94 | "\014\ufffe\015\ufffe\016\ufffe\017\ufffe\020\ufffe\021\ufffe\022" + |
---|
95 | "\ufffe\023\ufffe\024\ufffe\025\ufffe\026\ufffe\027\ufffe\030\ufffe" + |
---|
96 | "\036\ufffe\037\057\040\060\042\ufffe\043\ufffe\044\ufffe\001" + |
---|
97 | "\002\000\060\002\ufffb\005\ufffb\006\ufffb\007\ufffb\014\ufffb" + |
---|
98 | "\015\ufffb\016\ufffb\017\ufffb\020\ufffb\021\ufffb\022\ufffb\023" + |
---|
99 | "\ufffb\024\ufffb\025\ufffb\026\ufffb\027\ufffb\030\ufffb\036\ufffb" + |
---|
100 | "\037\ufffb\040\ufffb\042\ufffb\043\ufffb\044\ufffb\001\002\000" + |
---|
101 | "\104\002\uffec\004\uffec\005\uffec\006\uffec\007\uffec\010\uffec" + |
---|
102 | "\011\uffec\012\uffec\013\uffec\014\uffec\015\uffec\016\uffec\017" + |
---|
103 | "\uffec\020\uffec\021\uffec\022\uffec\023\uffec\024\uffec\025\uffec" + |
---|
104 | "\026\uffec\027\uffec\030\uffec\031\uffec\032\uffec\033\uffec\034" + |
---|
105 | "\uffec\035\uffec\036\uffec\037\uffec\040\uffec\042\uffec\043\uffec" + |
---|
106 | "\044\uffec\001\002\000\004\005\054\001\002\000\004\005" + |
---|
107 | "\035\001\002\000\036\005\040\014\026\015\012\016\020" + |
---|
108 | "\017\021\020\004\021\006\022\034\023\014\024\015\025" + |
---|
109 | "\011\026\017\042\024\044\036\001\002\000\104\002\uffee" + |
---|
110 | "\004\uffee\005\uffee\006\uffee\007\uffee\010\uffee\011\uffee\012" + |
---|
111 | "\uffee\013\uffee\014\uffee\015\uffee\016\uffee\017\uffee\020\uffee" + |
---|
112 | "\021\uffee\022\uffee\023\uffee\024\uffee\025\uffee\026\uffee\027" + |
---|
113 | "\uffee\030\uffee\031\uffee\032\uffee\033\uffee\034\uffee\035\uffee" + |
---|
114 | "\036\uffee\037\uffee\040\uffee\042\uffee\043\uffee\044\uffee\001" + |
---|
115 | "\002\000\014\006\053\010\045\011\043\012\046\013\044" + |
---|
116 | "\001\002\000\036\005\040\014\026\015\012\016\020\017" + |
---|
117 | "\021\020\004\021\006\022\034\023\014\024\015\025\011" + |
---|
118 | "\026\017\042\024\044\036\001\002\000\014\006\042\010" + |
---|
119 | "\045\011\043\012\046\013\044\001\002\000\104\002\uffed" + |
---|
120 | "\004\uffed\005\uffed\006\uffed\007\uffed\010\uffed\011\uffed\012" + |
---|
121 | "\uffed\013\uffed\014\uffed\015\uffed\016\uffed\017\uffed\020\uffed" + |
---|
122 | "\021\uffed\022\uffed\023\uffed\024\uffed\025\uffed\026\uffed\027" + |
---|
123 | "\uffed\030\uffed\031\uffed\032\uffed\033\uffed\034\uffed\035\uffed" + |
---|
124 | "\036\uffed\037\uffed\040\uffed\042\uffed\043\uffed\044\uffed\001" + |
---|
125 | "\002\000\036\005\040\014\026\015\012\016\020\017\021" + |
---|
126 | "\020\004\021\006\022\034\023\014\024\015\025\011\026" + |
---|
127 | "\017\042\024\044\036\001\002\000\036\005\040\014\026" + |
---|
128 | "\015\012\016\020\017\021\020\004\021\006\022\034\023" + |
---|
129 | "\014\024\015\025\011\026\017\042\024\044\036\001\002" + |
---|
130 | "\000\036\005\040\014\026\015\012\016\020\017\021\020" + |
---|
131 | "\004\021\006\022\034\023\014\024\015\025\011\026\017" + |
---|
132 | "\042\024\044\036\001\002\000\036\005\040\014\026\015" + |
---|
133 | "\012\016\020\017\021\020\004\021\006\022\034\023\014" + |
---|
134 | "\024\015\025\011\026\017\042\024\044\036\001\002\000" + |
---|
135 | "\104\002\uffe8\004\uffe8\005\uffe8\006\uffe8\007\uffe8\010\uffe8" + |
---|
136 | "\011\uffe8\012\uffe8\013\uffe8\014\uffe8\015\uffe8\016\uffe8\017" + |
---|
137 | "\uffe8\020\uffe8\021\uffe8\022\uffe8\023\uffe8\024\uffe8\025\uffe8" + |
---|
138 | "\026\uffe8\027\uffe8\030\uffe8\031\uffe8\032\uffe8\033\uffe8\034" + |
---|
139 | "\uffe8\035\uffe8\036\uffe8\037\uffe8\040\uffe8\042\uffe8\043\uffe8" + |
---|
140 | "\044\uffe8\001\002\000\104\002\uffe9\004\uffe9\005\uffe9\006" + |
---|
141 | "\uffe9\007\uffe9\010\uffe9\011\uffe9\012\046\013\044\014\uffe9" + |
---|
142 | "\015\uffe9\016\uffe9\017\uffe9\020\uffe9\021\uffe9\022\uffe9\023" + |
---|
143 | "\uffe9\024\uffe9\025\uffe9\026\uffe9\027\uffe9\030\uffe9\031\uffe9" + |
---|
144 | "\032\uffe9\033\uffe9\034\uffe9\035\uffe9\036\uffe9\037\uffe9\040" + |
---|
145 | "\uffe9\042\uffe9\043\uffe9\044\uffe9\001\002\000\104\002\uffe7" + |
---|
146 | "\004\uffe7\005\uffe7\006\uffe7\007\uffe7\010\uffe7\011\uffe7\012" + |
---|
147 | "\uffe7\013\uffe7\014\uffe7\015\uffe7\016\uffe7\017\uffe7\020\uffe7" + |
---|
148 | "\021\uffe7\022\uffe7\023\uffe7\024\uffe7\025\uffe7\026\uffe7\027" + |
---|
149 | "\uffe7\030\uffe7\031\uffe7\032\uffe7\033\uffe7\034\uffe7\035\uffe7" + |
---|
150 | "\036\uffe7\037\uffe7\040\uffe7\042\uffe7\043\uffe7\044\uffe7\001" + |
---|
151 | "\002\000\104\002\uffea\004\uffea\005\uffea\006\uffea\007\uffea" + |
---|
152 | "\010\uffea\011\uffea\012\046\013\044\014\uffea\015\uffea\016" + |
---|
153 | "\uffea\017\uffea\020\uffea\021\uffea\022\uffea\023\uffea\024\uffea" + |
---|
154 | "\025\uffea\026\uffea\027\uffea\030\uffea\031\uffea\032\uffea\033" + |
---|
155 | "\uffea\034\uffea\035\uffea\036\uffea\037\uffea\040\uffea\042\uffea" + |
---|
156 | "\043\uffea\044\uffea\001\002\000\104\002\uffe0\004\uffe0\005" + |
---|
157 | "\uffe0\006\uffe0\007\uffe0\010\uffe0\011\uffe0\012\uffe0\013\uffe0" + |
---|
158 | "\014\uffe0\015\uffe0\016\uffe0\017\uffe0\020\uffe0\021\uffe0\022" + |
---|
159 | "\uffe0\023\uffe0\024\uffe0\025\uffe0\026\uffe0\027\uffe0\030\uffe0" + |
---|
160 | "\031\uffe0\032\uffe0\033\uffe0\034\uffe0\035\uffe0\036\uffe0\037" + |
---|
161 | "\uffe0\040\uffe0\042\uffe0\043\uffe0\044\uffe0\001\002\000\004" + |
---|
162 | "\044\055\001\002\000\004\006\056\001\002\000\060\002" + |
---|
163 | "\ufff0\005\ufff0\006\ufff0\007\ufff0\014\ufff0\015\ufff0\016\ufff0" + |
---|
164 | "\017\ufff0\020\ufff0\021\ufff0\022\ufff0\023\ufff0\024\ufff0\025" + |
---|
165 | "\ufff0\026\ufff0\027\ufff0\030\ufff0\036\ufff0\037\ufff0\040\ufff0" + |
---|
166 | "\042\ufff0\043\ufff0\044\ufff0\001\002\000\050\005\016\007" + |
---|
167 | "\033\014\026\015\012\016\020\017\021\020\004\021\006" + |
---|
168 | "\022\034\023\014\024\015\025\011\026\017\027\013\030" + |
---|
169 | "\031\036\010\042\024\043\022\044\007\001\002\000\050" + |
---|
170 | "\005\016\007\033\014\026\015\012\016\020\017\021\020" + |
---|
171 | "\004\021\006\022\034\023\014\024\015\025\011\026\017" + |
---|
172 | "\027\013\030\031\036\010\042\024\043\022\044\007\001" + |
---|
173 | "\002\000\060\002\ufff2\005\ufff2\006\ufff2\007\ufff2\014\ufff2" + |
---|
174 | "\015\ufff2\016\ufff2\017\ufff2\020\ufff2\021\ufff2\022\ufff2\023" + |
---|
175 | "\ufff2\024\ufff2\025\ufff2\026\ufff2\027\ufff2\030\ufff2\036\ufff2" + |
---|
176 | "\037\ufff2\040\ufff2\042\ufff2\043\ufff2\044\ufff2\001\002\000" + |
---|
177 | "\060\002\ufff3\005\ufff3\006\ufff3\007\ufff3\014\ufff3\015\ufff3" + |
---|
178 | "\016\ufff3\017\ufff3\020\ufff3\021\ufff3\022\ufff3\023\ufff3\024" + |
---|
179 | "\ufff3\025\ufff3\026\ufff3\027\ufff3\030\ufff3\036\ufff3\037\ufff3" + |
---|
180 | "\040\ufff3\042\ufff3\043\ufff3\044\ufff3\001\002\000\052\002" + |
---|
181 | "\001\005\001\007\001\014\001\015\001\016\001\017\001" + |
---|
182 | "\020\001\021\001\022\001\023\001\024\001\025\001\026" + |
---|
183 | "\001\027\001\030\001\036\001\042\001\043\001\044\001" + |
---|
184 | "\001\002\000\004\002\000\001\002\000\036\005\040\014" + |
---|
185 | "\026\015\012\016\020\017\021\020\004\021\006\022\034" + |
---|
186 | "\023\014\024\015\025\011\026\017\042\024\044\036\001" + |
---|
187 | "\002\000\014\006\067\010\045\011\043\012\046\013\044" + |
---|
188 | "\001\002\000\104\002\uffe6\004\uffe6\005\uffe6\006\uffe6\007" + |
---|
189 | "\uffe6\010\uffe6\011\uffe6\012\uffe6\013\uffe6\014\uffe6\015\uffe6" + |
---|
190 | "\016\uffe6\017\uffe6\020\uffe6\021\uffe6\022\uffe6\023\uffe6\024" + |
---|
191 | "\uffe6\025\uffe6\026\uffe6\027\uffe6\030\uffe6\031\uffe6\032\uffe6" + |
---|
192 | "\033\uffe6\034\uffe6\035\uffe6\036\uffe6\037\uffe6\040\uffe6\042" + |
---|
193 | "\uffe6\043\uffe6\044\uffe6\001\002\000\036\005\040\014\026" + |
---|
194 | "\015\012\016\020\017\021\020\004\021\006\022\034\023" + |
---|
195 | "\014\024\015\025\011\026\017\042\024\044\036\001\002" + |
---|
196 | "\000\014\006\072\010\045\011\043\012\046\013\044\001" + |
---|
197 | "\002\000\104\002\uffe3\004\uffe3\005\uffe3\006\uffe3\007\uffe3" + |
---|
198 | "\010\uffe3\011\uffe3\012\uffe3\013\uffe3\014\uffe3\015\uffe3\016" + |
---|
199 | "\uffe3\017\uffe3\020\uffe3\021\uffe3\022\uffe3\023\uffe3\024\uffe3" + |
---|
200 | "\025\uffe3\026\uffe3\027\uffe3\030\uffe3\031\uffe3\032\uffe3\033" + |
---|
201 | "\uffe3\034\uffe3\035\uffe3\036\uffe3\037\uffe3\040\uffe3\042\uffe3" + |
---|
202 | "\043\uffe3\044\uffe3\001\002\000\036\005\040\014\026\015" + |
---|
203 | "\012\016\020\017\021\020\004\021\006\022\034\023\014" + |
---|
204 | "\024\015\025\011\026\017\042\024\044\036\001\002\000" + |
---|
205 | "\014\006\075\010\045\011\043\012\046\013\044\001\002" + |
---|
206 | "\000\104\002\uffe4\004\uffe4\005\uffe4\006\uffe4\007\uffe4\010" + |
---|
207 | "\uffe4\011\uffe4\012\uffe4\013\uffe4\014\uffe4\015\uffe4\016\uffe4" + |
---|
208 | "\017\uffe4\020\uffe4\021\uffe4\022\uffe4\023\uffe4\024\uffe4\025" + |
---|
209 | "\uffe4\026\uffe4\027\uffe4\030\uffe4\031\uffe4\032\uffe4\033\uffe4" + |
---|
210 | "\034\uffe4\035\uffe4\036\uffe4\037\uffe4\040\uffe4\042\uffe4\043" + |
---|
211 | "\uffe4\044\uffe4\001\002\000\036\005\040\014\026\015\012" + |
---|
212 | "\016\020\017\021\020\004\021\006\022\034\023\014\024" + |
---|
213 | "\015\025\011\026\017\042\024\044\036\001\002\000\014" + |
---|
214 | "\006\100\010\045\011\043\012\046\013\044\001\002\000" + |
---|
215 | "\104\002\uffdc\004\uffdc\005\uffdc\006\uffdc\007\uffdc\010\uffdc" + |
---|
216 | "\011\uffdc\012\uffdc\013\uffdc\014\uffdc\015\uffdc\016\uffdc\017" + |
---|
217 | "\uffdc\020\uffdc\021\uffdc\022\uffdc\023\uffdc\024\uffdc\025\uffdc" + |
---|
218 | "\026\uffdc\027\uffdc\030\uffdc\031\uffdc\032\uffdc\033\uffdc\034" + |
---|
219 | "\uffdc\035\uffdc\036\uffdc\037\uffdc\040\uffdc\042\uffdc\043\uffdc" + |
---|
220 | "\044\uffdc\001\002\000\026\006\042\010\045\011\043\012" + |
---|
221 | "\046\013\044\031\110\032\106\033\107\034\104\035\105" + |
---|
222 | "\001\002\000\010\006\103\037\057\040\060\001\002\000" + |
---|
223 | "\060\002\ufff5\005\ufff5\006\ufff5\007\ufff5\014\ufff5\015\ufff5" + |
---|
224 | "\016\ufff5\017\ufff5\020\ufff5\021\ufff5\022\ufff5\023\ufff5\024" + |
---|
225 | "\ufff5\025\ufff5\026\ufff5\027\ufff5\030\ufff5\036\ufff5\037\ufff5" + |
---|
226 | "\040\ufff5\042\ufff5\043\ufff5\044\ufff5\001\002\000\036\005" + |
---|
227 | "\040\014\026\015\012\016\020\017\021\020\004\021\006" + |
---|
228 | "\022\034\023\014\024\015\025\011\026\017\042\024\044" + |
---|
229 | "\036\001\002\000\036\005\040\014\026\015\012\016\020" + |
---|
230 | "\017\021\020\004\021\006\022\034\023\014\024\015\025" + |
---|
231 | "\011\026\017\042\024\044\036\001\002\000\036\005\040" + |
---|
232 | "\014\026\015\012\016\020\017\021\020\004\021\006\022" + |
---|
233 | "\034\023\014\024\015\025\011\026\017\042\024\044\036" + |
---|
234 | "\001\002\000\036\005\040\014\026\015\012\016\020\017" + |
---|
235 | "\021\020\004\021\006\022\034\023\014\024\015\025\011" + |
---|
236 | "\026\017\042\024\044\036\001\002\000\036\005\040\014" + |
---|
237 | "\026\015\012\016\020\017\021\020\004\021\006\022\034" + |
---|
238 | "\023\014\024\015\025\011\026\017\042\024\044\036\001" + |
---|
239 | "\002\000\070\002\ufffa\005\ufffa\006\ufffa\007\ufffa\010\045" + |
---|
240 | "\011\043\012\046\013\044\014\ufffa\015\ufffa\016\ufffa\017" + |
---|
241 | "\ufffa\020\ufffa\021\ufffa\022\ufffa\023\ufffa\024\ufffa\025\ufffa" + |
---|
242 | "\026\ufffa\027\ufffa\030\ufffa\036\ufffa\037\ufffa\040\ufffa\042" + |
---|
243 | "\ufffa\043\ufffa\044\ufffa\001\002\000\070\002\ufff8\005\ufff8" + |
---|
244 | "\006\ufff8\007\ufff8\010\045\011\043\012\046\013\044\014" + |
---|
245 | "\ufff8\015\ufff8\016\ufff8\017\ufff8\020\ufff8\021\ufff8\022\ufff8" + |
---|
246 | "\023\ufff8\024\ufff8\025\ufff8\026\ufff8\027\ufff8\030\ufff8\036" + |
---|
247 | "\ufff8\037\ufff8\040\ufff8\042\ufff8\043\ufff8\044\ufff8\001\002" + |
---|
248 | "\000\070\002\ufff9\005\ufff9\006\ufff9\007\ufff9\010\045\011" + |
---|
249 | "\043\012\046\013\044\014\ufff9\015\ufff9\016\ufff9\017\ufff9" + |
---|
250 | "\020\ufff9\021\ufff9\022\ufff9\023\ufff9\024\ufff9\025\ufff9\026" + |
---|
251 | "\ufff9\027\ufff9\030\ufff9\036\ufff9\037\ufff9\040\ufff9\042\ufff9" + |
---|
252 | "\043\ufff9\044\ufff9\001\002\000\070\002\ufff6\005\ufff6\006" + |
---|
253 | "\ufff6\007\ufff6\010\045\011\043\012\046\013\044\014\ufff6" + |
---|
254 | "\015\ufff6\016\ufff6\017\ufff6\020\ufff6\021\ufff6\022\ufff6\023" + |
---|
255 | "\ufff6\024\ufff6\025\ufff6\026\ufff6\027\ufff6\030\ufff6\036\ufff6" + |
---|
256 | "\037\ufff6\040\ufff6\042\ufff6\043\ufff6\044\ufff6\001\002\000" + |
---|
257 | "\070\002\ufff7\005\ufff7\006\ufff7\007\ufff7\010\045\011\043" + |
---|
258 | "\012\046\013\044\014\ufff7\015\ufff7\016\ufff7\017\ufff7\020" + |
---|
259 | "\ufff7\021\ufff7\022\ufff7\023\ufff7\024\ufff7\025\ufff7\026\ufff7" + |
---|
260 | "\027\ufff7\030\ufff7\036\ufff7\037\ufff7\040\ufff7\042\ufff7\043" + |
---|
261 | "\ufff7\044\ufff7\001\002\000\036\005\040\014\026\015\012" + |
---|
262 | "\016\020\017\021\020\004\021\006\022\034\023\014\024" + |
---|
263 | "\015\025\011\026\017\042\024\044\036\001\002\000\014" + |
---|
264 | "\006\120\010\045\011\043\012\046\013\044\001\002\000" + |
---|
265 | "\104\002\uffde\004\uffde\005\uffde\006\uffde\007\uffde\010\uffde" + |
---|
266 | "\011\uffde\012\uffde\013\uffde\014\uffde\015\uffde\016\uffde\017" + |
---|
267 | "\uffde\020\uffde\021\uffde\022\uffde\023\uffde\024\uffde\025\uffde" + |
---|
268 | "\026\uffde\027\uffde\030\uffde\031\uffde\032\uffde\033\uffde\034" + |
---|
269 | "\uffde\035\uffde\036\uffde\037\uffde\040\uffde\042\uffde\043\uffde" + |
---|
270 | "\044\uffde\001\002\000\036\005\040\014\026\015\012\016" + |
---|
271 | "\020\017\021\020\004\021\006\022\034\023\014\024\015" + |
---|
272 | "\025\011\026\017\042\024\044\036\001\002\000\014\006" + |
---|
273 | "\123\010\045\011\043\012\046\013\044\001\002\000\104" + |
---|
274 | "\002\uffdf\004\uffdf\005\uffdf\006\uffdf\007\uffdf\010\uffdf\011" + |
---|
275 | "\uffdf\012\uffdf\013\uffdf\014\uffdf\015\uffdf\016\uffdf\017\uffdf" + |
---|
276 | "\020\uffdf\021\uffdf\022\uffdf\023\uffdf\024\uffdf\025\uffdf\026" + |
---|
277 | "\uffdf\027\uffdf\030\uffdf\031\uffdf\032\uffdf\033\uffdf\034\uffdf" + |
---|
278 | "\035\uffdf\036\uffdf\037\uffdf\040\uffdf\042\uffdf\043\uffdf\044" + |
---|
279 | "\uffdf\001\002\000\036\005\040\014\026\015\012\016\020" + |
---|
280 | "\017\021\020\004\021\006\022\034\023\014\024\015\025" + |
---|
281 | "\011\026\017\042\024\044\036\001\002\000\014\006\126" + |
---|
282 | "\010\045\011\043\012\046\013\044\001\002\000\104\002" + |
---|
283 | "\uffe5\004\uffe5\005\uffe5\006\uffe5\007\uffe5\010\uffe5\011\uffe5" + |
---|
284 | "\012\uffe5\013\uffe5\014\uffe5\015\uffe5\016\uffe5\017\uffe5\020" + |
---|
285 | "\uffe5\021\uffe5\022\uffe5\023\uffe5\024\uffe5\025\uffe5\026\uffe5" + |
---|
286 | "\027\uffe5\030\uffe5\031\uffe5\032\uffe5\033\uffe5\034\uffe5\035" + |
---|
287 | "\uffe5\036\uffe5\037\uffe5\040\uffe5\042\uffe5\043\uffe5\044\uffe5" + |
---|
288 | "\001\002\000\036\005\040\014\026\015\012\016\020\017" + |
---|
289 | "\021\020\004\021\006\022\034\023\014\024\015\025\011" + |
---|
290 | "\026\017\042\024\044\036\001\002\000\014\004\131\010" + |
---|
291 | "\045\011\043\012\046\013\044\001\002\000\036\005\040" + |
---|
292 | "\014\026\015\012\016\020\017\021\020\004\021\006\022" + |
---|
293 | "\034\023\014\024\015\025\011\026\017\042\024\044\036" + |
---|
294 | "\001\002\000\014\006\133\010\045\011\043\012\046\013" + |
---|
295 | "\044\001\002\000\104\002\uffdd\004\uffdd\005\uffdd\006\uffdd" + |
---|
296 | "\007\uffdd\010\uffdd\011\uffdd\012\uffdd\013\uffdd\014\uffdd\015" + |
---|
297 | "\uffdd\016\uffdd\017\uffdd\020\uffdd\021\uffdd\022\uffdd\023\uffdd" + |
---|
298 | "\024\uffdd\025\uffdd\026\uffdd\027\uffdd\030\uffdd\031\uffdd\032" + |
---|
299 | "\uffdd\033\uffdd\034\uffdd\035\uffdd\036\uffdd\037\uffdd\040\uffdd" + |
---|
300 | "\042\uffdd\043\uffdd\044\uffdd\001\002\000\060\002\ufff4\005" + |
---|
301 | "\ufff4\006\ufff4\007\ufff4\014\ufff4\015\ufff4\016\ufff4\017\ufff4" + |
---|
302 | "\020\ufff4\021\ufff4\022\ufff4\023\ufff4\024\ufff4\025\ufff4\026" + |
---|
303 | "\ufff4\027\ufff4\030\ufff4\036\ufff4\037\ufff4\040\ufff4\042\ufff4" + |
---|
304 | "\043\ufff4\044\ufff4\001\002\000\004\045\136\001\002\000" + |
---|
305 | "\060\002\ufff1\005\ufff1\006\ufff1\007\ufff1\014\ufff1\015\ufff1" + |
---|
306 | "\016\ufff1\017\ufff1\020\ufff1\021\ufff1\022\ufff1\023\ufff1\024" + |
---|
307 | "\ufff1\025\ufff1\026\ufff1\027\ufff1\030\ufff1\036\ufff1\037\ufff1" + |
---|
308 | "\040\ufff1\042\ufff1\043\ufff1\044\ufff1\001\002\000\036\005" + |
---|
309 | "\040\014\026\015\012\016\020\017\021\020\004\021\006" + |
---|
310 | "\022\034\023\014\024\015\025\011\026\017\042\024\044" + |
---|
311 | "\036\001\002\000\014\006\141\010\045\011\043\012\046" + |
---|
312 | "\013\044\001\002\000\104\002\uffe1\004\uffe1\005\uffe1\006" + |
---|
313 | "\uffe1\007\uffe1\010\uffe1\011\uffe1\012\uffe1\013\uffe1\014\uffe1" + |
---|
314 | "\015\uffe1\016\uffe1\017\uffe1\020\uffe1\021\uffe1\022\uffe1\023" + |
---|
315 | "\uffe1\024\uffe1\025\uffe1\026\uffe1\027\uffe1\030\uffe1\031\uffe1" + |
---|
316 | "\032\uffe1\033\uffe1\034\uffe1\035\uffe1\036\uffe1\037\uffe1\040" + |
---|
317 | "\uffe1\042\uffe1\043\uffe1\044\uffe1\001\002\000\036\005\040" + |
---|
318 | "\014\026\015\012\016\020\017\021\020\004\021\006\022" + |
---|
319 | "\034\023\014\024\015\025\011\026\017\042\024\044\036" + |
---|
320 | "\001\002\000\014\006\144\010\045\011\043\012\046\013" + |
---|
321 | "\044\001\002\000\104\002\uffe2\004\uffe2\005\uffe2\006\uffe2" + |
---|
322 | "\007\uffe2\010\uffe2\011\uffe2\012\uffe2\013\uffe2\014\uffe2\015" + |
---|
323 | "\uffe2\016\uffe2\017\uffe2\020\uffe2\021\uffe2\022\uffe2\023\uffe2" + |
---|
324 | "\024\uffe2\025\uffe2\026\uffe2\027\uffe2\030\uffe2\031\uffe2\032" + |
---|
325 | "\uffe2\033\uffe2\034\uffe2\035\uffe2\036\uffe2\037\uffe2\040\uffe2" + |
---|
326 | "\042\uffe2\043\uffe2\044\uffe2\001\002" }); |
---|
327 | |
---|
328 | /** Access to parse-action table. */ |
---|
329 | public short[][] action_table() {return _action_table;} |
---|
330 | |
---|
331 | /** <code>reduce_goto</code> table. */ |
---|
332 | protected static final short[][] _reduce_table = |
---|
333 | unpackFromStrings(new String[] { |
---|
334 | "\000\142\000\016\002\026\003\022\004\004\005\031\006" + |
---|
335 | "\024\007\027\001\001\000\002\001\001\000\002\001\001" + |
---|
336 | "\000\002\001\001\000\002\001\001\000\012\004\004\005" + |
---|
337 | "\031\006\024\007\133\001\001\000\002\001\001\000\002" + |
---|
338 | "\001\001\000\002\001\001\000\002\001\001\000\002\001" + |
---|
339 | "\001\000\012\004\100\005\031\006\024\007\101\001\001" + |
---|
340 | "\000\002\001\001\000\002\001\001\000\002\001\001\000" + |
---|
341 | "\002\001\001\000\002\001\001\000\002\001\001\000\002" + |
---|
342 | "\001\001\000\002\001\001\000\014\003\062\004\004\005" + |
---|
343 | "\031\006\024\007\027\001\001\000\002\001\001\000\002" + |
---|
344 | "\001\001\000\002\001\001\000\002\001\001\000\002\001" + |
---|
345 | "\001\000\010\004\036\005\031\006\024\001\001\000\002" + |
---|
346 | "\001\001\000\002\001\001\000\010\004\040\005\031\006" + |
---|
347 | "\024\001\001\000\002\001\001\000\002\001\001\000\010" + |
---|
348 | "\004\051\005\031\006\024\001\001\000\010\004\050\005" + |
---|
349 | "\031\006\024\001\001\000\010\004\047\005\031\006\024" + |
---|
350 | "\001\001\000\010\004\046\005\031\006\024\001\001\000" + |
---|
351 | "\002\001\001\000\002\001\001\000\002\001\001\000\002" + |
---|
352 | "\001\001\000\002\001\001\000\002\001\001\000\002\001" + |
---|
353 | "\001\000\002\001\001\000\012\004\004\005\031\006\024" + |
---|
354 | "\007\061\001\001\000\012\004\004\005\031\006\024\007" + |
---|
355 | "\060\001\001\000\002\001\001\000\002\001\001\000\002" + |
---|
356 | "\001\001\000\002\001\001\000\010\004\065\005\031\006" + |
---|
357 | "\024\001\001\000\002\001\001\000\002\001\001\000\010" + |
---|
358 | "\004\070\005\031\006\024\001\001\000\002\001\001\000" + |
---|
359 | "\002\001\001\000\010\004\073\005\031\006\024\001\001" + |
---|
360 | "\000\002\001\001\000\002\001\001\000\010\004\076\005" + |
---|
361 | "\031\006\024\001\001\000\002\001\001\000\002\001\001" + |
---|
362 | "\000\002\001\001\000\002\001\001\000\002\001\001\000" + |
---|
363 | "\010\004\114\005\031\006\024\001\001\000\010\004\113" + |
---|
364 | "\005\031\006\024\001\001\000\010\004\112\005\031\006" + |
---|
365 | "\024\001\001\000\010\004\111\005\031\006\024\001\001" + |
---|
366 | "\000\010\004\110\005\031\006\024\001\001\000\002\001" + |
---|
367 | "\001\000\002\001\001\000\002\001\001\000\002\001\001" + |
---|
368 | "\000\002\001\001\000\010\004\116\005\031\006\024\001" + |
---|
369 | "\001\000\002\001\001\000\002\001\001\000\010\004\121" + |
---|
370 | "\005\031\006\024\001\001\000\002\001\001\000\002\001" + |
---|
371 | "\001\000\010\004\124\005\031\006\024\001\001\000\002" + |
---|
372 | "\001\001\000\002\001\001\000\010\004\127\005\031\006" + |
---|
373 | "\024\001\001\000\002\001\001\000\010\004\131\005\031" + |
---|
374 | "\006\024\001\001\000\002\001\001\000\002\001\001\000" + |
---|
375 | "\002\001\001\000\002\001\001\000\002\001\001\000\010" + |
---|
376 | "\004\137\005\031\006\024\001\001\000\002\001\001\000" + |
---|
377 | "\002\001\001\000\010\004\142\005\031\006\024\001\001" + |
---|
378 | "\000\002\001\001\000\002\001\001" }); |
---|
379 | |
---|
380 | /** Access to <code>reduce_goto</code> table. */ |
---|
381 | public short[][] reduce_table() {return _reduce_table;} |
---|
382 | |
---|
383 | /** Instance of action encapsulation class. */ |
---|
384 | protected CUP$Parser$actions action_obj; |
---|
385 | |
---|
386 | /** Action encapsulation object initializer. */ |
---|
387 | protected void init_actions() |
---|
388 | { |
---|
389 | action_obj = new CUP$Parser$actions(this); |
---|
390 | } |
---|
391 | |
---|
392 | /** Invoke a user supplied parse action. */ |
---|
393 | public java_cup.runtime.Symbol do_action( |
---|
394 | int act_num, |
---|
395 | java_cup.runtime.lr_parser parser, |
---|
396 | java.util.Stack stack, |
---|
397 | int top) |
---|
398 | throws java.lang.Exception |
---|
399 | { |
---|
400 | /* call code in generated class */ |
---|
401 | return action_obj.CUP$Parser$do_action(act_num, parser, stack, top); |
---|
402 | } |
---|
403 | |
---|
404 | /** Indicates start state. */ |
---|
405 | public int start_state() {return 0;} |
---|
406 | /** Indicates start production. */ |
---|
407 | public int start_production() {return 1;} |
---|
408 | |
---|
409 | /** <code>EOF</code> Symbol index. */ |
---|
410 | public int EOF_sym() {return 0;} |
---|
411 | |
---|
412 | /** <code>error</code> Symbol index. */ |
---|
413 | public int error_sym() {return 1;} |
---|
414 | |
---|
415 | |
---|
416 | |
---|
417 | /** variable - value relation. */ |
---|
418 | protected HashMap m_Symbols = new HashMap(); |
---|
419 | |
---|
420 | /** attribute - attribute-type (constants from weka.core.Attribute) relation. */ |
---|
421 | protected Hashtable<String,Integer> m_AttributeTypes = new Hashtable<String,Integer>(); |
---|
422 | |
---|
423 | /** for storing the result of the expression. */ |
---|
424 | protected Boolean m_Result = null; |
---|
425 | |
---|
426 | /** |
---|
427 | * Sets the variable - value relation to use. |
---|
428 | * |
---|
429 | * @param value the variable-value relation |
---|
430 | */ |
---|
431 | public void setSymbols(HashMap value) { |
---|
432 | m_Symbols = value; |
---|
433 | } |
---|
434 | |
---|
435 | /** |
---|
436 | * Returns the current variable - value relation in use. |
---|
437 | * |
---|
438 | * @return the variable-value relation |
---|
439 | */ |
---|
440 | public HashMap getSymbols() { |
---|
441 | return m_Symbols; |
---|
442 | } |
---|
443 | |
---|
444 | /** |
---|
445 | * Sets the attribute - attribute-type relation to use. |
---|
446 | * |
---|
447 | * @param value the att - att-type relation |
---|
448 | */ |
---|
449 | public void setAttributeTypes(Hashtable value) { |
---|
450 | m_AttributeTypes = value; |
---|
451 | } |
---|
452 | |
---|
453 | /** |
---|
454 | * Returns the current attribute - attribute-type relation in use. |
---|
455 | * |
---|
456 | * @return the att - att-type relation |
---|
457 | */ |
---|
458 | public Hashtable getAttributeTypes() { |
---|
459 | return m_AttributeTypes; |
---|
460 | } |
---|
461 | |
---|
462 | /** |
---|
463 | * Sets the result of the evaluation. |
---|
464 | * |
---|
465 | * @param value the result |
---|
466 | */ |
---|
467 | public void setResult(Boolean value) { |
---|
468 | m_Result = value; |
---|
469 | } |
---|
470 | |
---|
471 | /** |
---|
472 | * Returns the result of the evaluation. |
---|
473 | * |
---|
474 | * @return the result |
---|
475 | */ |
---|
476 | public Boolean getResult() { |
---|
477 | return m_Result; |
---|
478 | } |
---|
479 | |
---|
480 | /** |
---|
481 | * Returns either a String object for nominal attributes or a Double for numeric |
---|
482 | * ones. For all other attribute types this method throws an Exception. |
---|
483 | * It also returns a Double object in case of a missing value (for all |
---|
484 | * attribute types!). |
---|
485 | * |
---|
486 | * @param instance the instance to work on |
---|
487 | * @param index the index of the attribute to return |
---|
488 | * @return the converted value |
---|
489 | */ |
---|
490 | public static Object getValue(Instance instance, int index) { |
---|
491 | if (instance.isMissing(index)) |
---|
492 | return new Double(Utils.missingValue()); |
---|
493 | else if (instance.attribute(index).isNominal()) |
---|
494 | return new String(instance.stringValue(index)); |
---|
495 | else if (instance.attribute(index).isNumeric()) |
---|
496 | return new Double(instance.value(index)); |
---|
497 | else |
---|
498 | throw new IllegalArgumentException( |
---|
499 | "Unhandled attribute type '" + instance.attribute(index).type() + "'!"); |
---|
500 | } |
---|
501 | |
---|
502 | /** |
---|
503 | * Filters the input dataset against the provided expression. |
---|
504 | * |
---|
505 | * @param expression the expression used for filtering |
---|
506 | * @param input the input data |
---|
507 | * @return the filtered data |
---|
508 | * @throws Exception if parsing fails |
---|
509 | */ |
---|
510 | public static Instances filter(String expression, Instances input) throws Exception { |
---|
511 | // setup output |
---|
512 | Instances output = new Instances(input, 0); |
---|
513 | |
---|
514 | // setup attribute - attribute-type relation |
---|
515 | Hashtable<String,Integer> attTypes = new Hashtable<String,Integer>(); |
---|
516 | for (int i = 0; i < input.numAttributes(); i++) |
---|
517 | attTypes.put("ATT" + (i+1), input.attribute(i).type()); |
---|
518 | if (input.classIndex() > -1) |
---|
519 | attTypes.put("CLASS", input.classAttribute().type()); |
---|
520 | |
---|
521 | // filter dataset |
---|
522 | SymbolFactory sf = new DefaultSymbolFactory(); |
---|
523 | HashMap symbols = new HashMap(); |
---|
524 | ByteArrayInputStream parserInput = new ByteArrayInputStream(expression.getBytes()); |
---|
525 | for (int i = 0; i < input.numInstances(); i++) { |
---|
526 | Instance instance = input.instance(i); |
---|
527 | |
---|
528 | // setup symbols |
---|
529 | for (int n = 0; n < instance.numAttributes(); n++) { |
---|
530 | if (n == instance.classIndex()) |
---|
531 | symbols.put("CLASS", getValue(instance, n)); |
---|
532 | symbols.put("ATT" + (n+1), getValue(instance, n)); |
---|
533 | } |
---|
534 | |
---|
535 | // evaluate expression |
---|
536 | parserInput.reset(); |
---|
537 | Parser parser = new Parser(new Scanner(parserInput,sf), sf); |
---|
538 | parser.setSymbols(symbols); |
---|
539 | parser.parse(); |
---|
540 | if (parser.getResult()) |
---|
541 | output.add((Instance) instance.copy()); |
---|
542 | } |
---|
543 | |
---|
544 | return output; |
---|
545 | } |
---|
546 | |
---|
547 | /** |
---|
548 | * Runs the parser from commandline. Takes the following arguments: |
---|
549 | * <ol> |
---|
550 | * <li>expression</li> |
---|
551 | * <li>input file</li> |
---|
552 | * <li>class index (first|last|num), use 0 to ignore</li> |
---|
553 | * <li>output file</li> |
---|
554 | * </ol> |
---|
555 | * |
---|
556 | * @param args the commandline arguments |
---|
557 | * @throws Exception if something goes wrong |
---|
558 | */ |
---|
559 | public static void main(String args[]) throws Exception { |
---|
560 | // get expression |
---|
561 | String expression = args[0]; |
---|
562 | |
---|
563 | // read input data |
---|
564 | BufferedReader reader = new BufferedReader(new FileReader(args[1])); |
---|
565 | Instances input = new Instances(reader); |
---|
566 | reader.close(); |
---|
567 | if (args[2].equals("first")) |
---|
568 | input.setClassIndex(0); |
---|
569 | else if (args[2].equals("last")) |
---|
570 | input.setClassIndex(input.numAttributes() - 1); |
---|
571 | else |
---|
572 | input.setClassIndex(Integer.parseInt(args[2]) - 1); |
---|
573 | |
---|
574 | // process dataset |
---|
575 | Instances output = filter(expression, input); |
---|
576 | |
---|
577 | // save output file |
---|
578 | BufferedWriter writer = new BufferedWriter(new FileWriter(args[3])); |
---|
579 | writer.write(new Instances(output, 0).toString()); |
---|
580 | writer.newLine(); |
---|
581 | for (int i = 0; i < output.numInstances(); i++) { |
---|
582 | writer.write(output.instance(i).toString()); |
---|
583 | writer.newLine(); |
---|
584 | } |
---|
585 | writer.flush(); |
---|
586 | writer.close(); |
---|
587 | } |
---|
588 | |
---|
589 | } |
---|
590 | |
---|
591 | /** Cup generated class to encapsulate user supplied action code.*/ |
---|
592 | class CUP$Parser$actions { |
---|
593 | private final Parser parser; |
---|
594 | |
---|
595 | /** Constructor */ |
---|
596 | CUP$Parser$actions(Parser parser) { |
---|
597 | this.parser = parser; |
---|
598 | } |
---|
599 | |
---|
600 | /** Method with the actual generated action code. */ |
---|
601 | public final java_cup.runtime.Symbol CUP$Parser$do_action( |
---|
602 | int CUP$Parser$act_num, |
---|
603 | java_cup.runtime.lr_parser CUP$Parser$parser, |
---|
604 | java.util.Stack CUP$Parser$stack, |
---|
605 | int CUP$Parser$top) |
---|
606 | throws java.lang.Exception |
---|
607 | { |
---|
608 | /* Symbol object for return from actions */ |
---|
609 | java_cup.runtime.Symbol CUP$Parser$result; |
---|
610 | |
---|
611 | /* select the action based on the action number */ |
---|
612 | switch (CUP$Parser$act_num) |
---|
613 | { |
---|
614 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
615 | case 37: // funcexpr ::= CEIL LPAREN expr RPAREN |
---|
616 | { |
---|
617 | Double RESULT =null; |
---|
618 | int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; |
---|
619 | int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; |
---|
620 | Double e = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; |
---|
621 | RESULT = new Double(Math.ceil(e)); |
---|
622 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
623 | } |
---|
624 | return CUP$Parser$result; |
---|
625 | |
---|
626 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
627 | case 36: // funcexpr ::= POW LPAREN expr COMMA expr RPAREN |
---|
628 | { |
---|
629 | Double RESULT =null; |
---|
630 | int baseleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left; |
---|
631 | int baseright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right; |
---|
632 | Double base = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value; |
---|
633 | int exponentleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; |
---|
634 | int exponentright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; |
---|
635 | Double exponent = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; |
---|
636 | RESULT = new Double(Math.pow(base, exponent)); |
---|
637 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
638 | } |
---|
639 | return CUP$Parser$result; |
---|
640 | |
---|
641 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
642 | case 35: // funcexpr ::= FLOOR LPAREN expr RPAREN |
---|
643 | { |
---|
644 | Double RESULT =null; |
---|
645 | int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; |
---|
646 | int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; |
---|
647 | Double e = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; |
---|
648 | RESULT = new Double(Math.floor(e)); |
---|
649 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
650 | } |
---|
651 | return CUP$Parser$result; |
---|
652 | |
---|
653 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
654 | case 34: // funcexpr ::= RINT LPAREN expr RPAREN |
---|
655 | { |
---|
656 | Double RESULT =null; |
---|
657 | int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; |
---|
658 | int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; |
---|
659 | Double e = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; |
---|
660 | RESULT = new Double(Math.rint(e)); |
---|
661 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
662 | } |
---|
663 | return CUP$Parser$result; |
---|
664 | |
---|
665 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
666 | case 33: // funcexpr ::= TAN LPAREN expr RPAREN |
---|
667 | { |
---|
668 | Double RESULT =null; |
---|
669 | int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; |
---|
670 | int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; |
---|
671 | Double e = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; |
---|
672 | RESULT = new Double(Math.tan(e)); |
---|
673 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
674 | } |
---|
675 | return CUP$Parser$result; |
---|
676 | |
---|
677 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
678 | case 32: // funcexpr ::= COS LPAREN expr RPAREN |
---|
679 | { |
---|
680 | Double RESULT =null; |
---|
681 | int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; |
---|
682 | int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; |
---|
683 | Double e = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; |
---|
684 | RESULT = new Double(Math.cos(e)); |
---|
685 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
686 | } |
---|
687 | return CUP$Parser$result; |
---|
688 | |
---|
689 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
690 | case 31: // funcexpr ::= SIN LPAREN expr RPAREN |
---|
691 | { |
---|
692 | Double RESULT =null; |
---|
693 | int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; |
---|
694 | int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; |
---|
695 | Double e = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; |
---|
696 | RESULT = new Double(Math.sin(e)); |
---|
697 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
698 | } |
---|
699 | return CUP$Parser$result; |
---|
700 | |
---|
701 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
702 | case 30: // funcexpr ::= EXP LPAREN expr RPAREN |
---|
703 | { |
---|
704 | Double RESULT =null; |
---|
705 | int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; |
---|
706 | int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; |
---|
707 | Double e = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; |
---|
708 | RESULT = new Double(Math.exp(e)); |
---|
709 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
710 | } |
---|
711 | return CUP$Parser$result; |
---|
712 | |
---|
713 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
714 | case 29: // funcexpr ::= LOG LPAREN expr RPAREN |
---|
715 | { |
---|
716 | Double RESULT =null; |
---|
717 | int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; |
---|
718 | int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; |
---|
719 | Double e = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; |
---|
720 | RESULT = new Double(Math.log(e)); |
---|
721 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
722 | } |
---|
723 | return CUP$Parser$result; |
---|
724 | |
---|
725 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
726 | case 28: // funcexpr ::= SQRT LPAREN expr RPAREN |
---|
727 | { |
---|
728 | Double RESULT =null; |
---|
729 | int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; |
---|
730 | int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; |
---|
731 | Double e = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; |
---|
732 | RESULT = new Double(Math.sqrt(e)); |
---|
733 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
734 | } |
---|
735 | return CUP$Parser$result; |
---|
736 | |
---|
737 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
738 | case 27: // funcexpr ::= ABS LPAREN expr RPAREN |
---|
739 | { |
---|
740 | Double RESULT =null; |
---|
741 | int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; |
---|
742 | int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; |
---|
743 | Double e = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; |
---|
744 | RESULT = new Double(Math.abs(e)); |
---|
745 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
746 | } |
---|
747 | return CUP$Parser$result; |
---|
748 | |
---|
749 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
750 | case 26: // opexpr ::= expr DIVISION expr |
---|
751 | { |
---|
752 | Double RESULT =null; |
---|
753 | int lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; |
---|
754 | int lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; |
---|
755 | Double l = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; |
---|
756 | int rleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
757 | int rright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
758 | Double r = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
759 | RESULT = new Double(l.doubleValue() / r.doubleValue()); |
---|
760 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("opexpr",3, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
761 | } |
---|
762 | return CUP$Parser$result; |
---|
763 | |
---|
764 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
765 | case 25: // opexpr ::= expr TIMES expr |
---|
766 | { |
---|
767 | Double RESULT =null; |
---|
768 | int lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; |
---|
769 | int lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; |
---|
770 | Double l = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; |
---|
771 | int rleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
772 | int rright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
773 | Double r = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
774 | RESULT = new Double(l.doubleValue() * r.doubleValue()); |
---|
775 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("opexpr",3, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
776 | } |
---|
777 | return CUP$Parser$result; |
---|
778 | |
---|
779 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
780 | case 24: // opexpr ::= expr MINUS expr |
---|
781 | { |
---|
782 | Double RESULT =null; |
---|
783 | int lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; |
---|
784 | int lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; |
---|
785 | Double l = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; |
---|
786 | int rleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
787 | int rright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
788 | Double r = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
789 | RESULT = new Double(l.doubleValue() - r.doubleValue()); |
---|
790 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("opexpr",3, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
791 | } |
---|
792 | return CUP$Parser$result; |
---|
793 | |
---|
794 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
795 | case 23: // opexpr ::= expr PLUS expr |
---|
796 | { |
---|
797 | Double RESULT =null; |
---|
798 | int lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; |
---|
799 | int lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; |
---|
800 | Double l = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; |
---|
801 | int rleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
802 | int rright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
803 | Double r = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
804 | RESULT = new Double(l.doubleValue() + r.doubleValue()); |
---|
805 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("opexpr",3, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
806 | } |
---|
807 | return CUP$Parser$result; |
---|
808 | |
---|
809 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
810 | case 22: // expr ::= funcexpr |
---|
811 | { |
---|
812 | Double RESULT =null; |
---|
813 | int fleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
814 | int fright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
815 | Double f = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
816 | RESULT = f; |
---|
817 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("expr",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
818 | } |
---|
819 | return CUP$Parser$result; |
---|
820 | |
---|
821 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
822 | case 21: // expr ::= opexpr |
---|
823 | { |
---|
824 | Double RESULT =null; |
---|
825 | int oleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
826 | int oright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
827 | Double o = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
828 | RESULT = o; |
---|
829 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("expr",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
830 | } |
---|
831 | return CUP$Parser$result; |
---|
832 | |
---|
833 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
834 | case 20: // expr ::= LPAREN expr RPAREN |
---|
835 | { |
---|
836 | Double RESULT =null; |
---|
837 | int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; |
---|
838 | int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; |
---|
839 | Double e = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; |
---|
840 | RESULT = e; |
---|
841 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("expr",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
842 | } |
---|
843 | return CUP$Parser$result; |
---|
844 | |
---|
845 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
846 | case 19: // expr ::= ATTRIBUTE |
---|
847 | { |
---|
848 | Double RESULT =null; |
---|
849 | int aleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
850 | int aright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
851 | String a = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
852 | if (parser.getSymbols().containsKey(a)) |
---|
853 | RESULT = (Double) parser.getSymbols().get(a); |
---|
854 | else |
---|
855 | throw new IllegalStateException("Unknown symbol '" + a + "'!"); |
---|
856 | |
---|
857 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("expr",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
858 | } |
---|
859 | return CUP$Parser$result; |
---|
860 | |
---|
861 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
862 | case 18: // expr ::= NUMBER |
---|
863 | { |
---|
864 | Double RESULT =null; |
---|
865 | int nleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
866 | int nright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
867 | Double n = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
868 | RESULT = n; |
---|
869 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("expr",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
870 | } |
---|
871 | return CUP$Parser$result; |
---|
872 | |
---|
873 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
874 | case 17: // boolexpr ::= ISMISSING LPAREN ATTRIBUTE RPAREN |
---|
875 | { |
---|
876 | Boolean RESULT =null; |
---|
877 | int aleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; |
---|
878 | int aright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; |
---|
879 | String a = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; |
---|
880 | if (parser.getSymbols().containsKey(a)) |
---|
881 | RESULT = (parser.getSymbols().get(a) instanceof Double) && Utils.isMissingValue((Double) parser.getSymbols().get(a)); |
---|
882 | else |
---|
883 | throw new IllegalStateException("Unknown symbol '" + a + "'!"); |
---|
884 | |
---|
885 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
886 | } |
---|
887 | return CUP$Parser$result; |
---|
888 | |
---|
889 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
890 | case 16: // boolexpr ::= ATTRIBUTE IS STRING |
---|
891 | { |
---|
892 | Boolean RESULT =null; |
---|
893 | int aleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; |
---|
894 | int aright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; |
---|
895 | String a = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; |
---|
896 | int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
897 | int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
898 | String s = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
899 | if (parser.getSymbols().containsKey(a)) |
---|
900 | RESULT = (parser.getSymbols().get(a) instanceof String) && ((String) parser.getSymbols().get(a)).equals(s); |
---|
901 | else |
---|
902 | throw new IllegalStateException("Unknown symbol '" + a + "'!"); |
---|
903 | |
---|
904 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
905 | } |
---|
906 | return CUP$Parser$result; |
---|
907 | |
---|
908 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
909 | case 15: // boolexpr ::= boolexpr OR boolexpr |
---|
910 | { |
---|
911 | Boolean RESULT =null; |
---|
912 | int lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; |
---|
913 | int lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; |
---|
914 | Boolean l = (Boolean)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; |
---|
915 | int rleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
916 | int rright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
917 | Boolean r = (Boolean)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
918 | RESULT = l || r; |
---|
919 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
920 | } |
---|
921 | return CUP$Parser$result; |
---|
922 | |
---|
923 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
924 | case 14: // boolexpr ::= boolexpr AND boolexpr |
---|
925 | { |
---|
926 | Boolean RESULT =null; |
---|
927 | int lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; |
---|
928 | int lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; |
---|
929 | Boolean l = (Boolean)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; |
---|
930 | int rleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
931 | int rright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
932 | Boolean r = (Boolean)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
933 | RESULT = l && r; |
---|
934 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
935 | } |
---|
936 | return CUP$Parser$result; |
---|
937 | |
---|
938 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
939 | case 13: // boolexpr ::= NOT boolexpr |
---|
940 | { |
---|
941 | Boolean RESULT =null; |
---|
942 | int bleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
943 | int bright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
944 | Boolean b = (Boolean)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
945 | RESULT = !b; |
---|
946 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
947 | } |
---|
948 | return CUP$Parser$result; |
---|
949 | |
---|
950 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
951 | case 12: // boolexpr ::= LPAREN boolexpr RPAREN |
---|
952 | { |
---|
953 | Boolean RESULT =null; |
---|
954 | int bleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; |
---|
955 | int bright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; |
---|
956 | Boolean b = (Boolean)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; |
---|
957 | RESULT = b; |
---|
958 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
959 | } |
---|
960 | return CUP$Parser$result; |
---|
961 | |
---|
962 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
963 | case 11: // boolexpr ::= expr EQ expr |
---|
964 | { |
---|
965 | Boolean RESULT =null; |
---|
966 | int lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; |
---|
967 | int lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; |
---|
968 | Double l = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; |
---|
969 | int rleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
970 | int rright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
971 | Double r = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
972 | RESULT = new Boolean(l.doubleValue() == r.doubleValue()); |
---|
973 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
974 | } |
---|
975 | return CUP$Parser$result; |
---|
976 | |
---|
977 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
978 | case 10: // boolexpr ::= expr GE expr |
---|
979 | { |
---|
980 | Boolean RESULT =null; |
---|
981 | int lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; |
---|
982 | int lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; |
---|
983 | Double l = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; |
---|
984 | int rleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
985 | int rright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
986 | Double r = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
987 | RESULT = new Boolean(l.doubleValue() >= r.doubleValue()); |
---|
988 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
989 | } |
---|
990 | return CUP$Parser$result; |
---|
991 | |
---|
992 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
993 | case 9: // boolexpr ::= expr GT expr |
---|
994 | { |
---|
995 | Boolean RESULT =null; |
---|
996 | int lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; |
---|
997 | int lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; |
---|
998 | Double l = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; |
---|
999 | int rleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
1000 | int rright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
1001 | Double r = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
1002 | RESULT = new Boolean(l.doubleValue() > r.doubleValue()); |
---|
1003 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
1004 | } |
---|
1005 | return CUP$Parser$result; |
---|
1006 | |
---|
1007 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
1008 | case 8: // boolexpr ::= expr LE expr |
---|
1009 | { |
---|
1010 | Boolean RESULT =null; |
---|
1011 | int lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; |
---|
1012 | int lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; |
---|
1013 | Double l = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; |
---|
1014 | int rleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
1015 | int rright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
1016 | Double r = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
1017 | RESULT = new Boolean(l.doubleValue() <= r.doubleValue()); |
---|
1018 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
1019 | } |
---|
1020 | return CUP$Parser$result; |
---|
1021 | |
---|
1022 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
1023 | case 7: // boolexpr ::= expr LT expr |
---|
1024 | { |
---|
1025 | Boolean RESULT =null; |
---|
1026 | int lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; |
---|
1027 | int lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; |
---|
1028 | Double l = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; |
---|
1029 | int rleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
1030 | int rright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
1031 | Double r = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
1032 | RESULT = new Boolean(l.doubleValue() < r.doubleValue()); |
---|
1033 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
1034 | } |
---|
1035 | return CUP$Parser$result; |
---|
1036 | |
---|
1037 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
1038 | case 6: // boolexpr ::= FALSE |
---|
1039 | { |
---|
1040 | Boolean RESULT =null; |
---|
1041 | RESULT = new Boolean(false); |
---|
1042 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
1043 | } |
---|
1044 | return CUP$Parser$result; |
---|
1045 | |
---|
1046 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
1047 | case 5: // boolexpr ::= TRUE |
---|
1048 | { |
---|
1049 | Boolean RESULT =null; |
---|
1050 | RESULT = new Boolean(true); |
---|
1051 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
1052 | } |
---|
1053 | return CUP$Parser$result; |
---|
1054 | |
---|
1055 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
1056 | case 4: // boolexpr ::= BOOLEAN |
---|
1057 | { |
---|
1058 | Boolean RESULT =null; |
---|
1059 | int bleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
1060 | int bright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
1061 | Boolean b = (Boolean)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
1062 | RESULT = b; |
---|
1063 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
1064 | } |
---|
1065 | return CUP$Parser$result; |
---|
1066 | |
---|
1067 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
1068 | case 3: // boolexpr_part ::= boolexpr |
---|
1069 | { |
---|
1070 | Object RESULT =null; |
---|
1071 | int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; |
---|
1072 | int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; |
---|
1073 | Boolean e = (Boolean)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; |
---|
1074 | parser.setResult(e); |
---|
1075 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr_part",1, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
1076 | } |
---|
1077 | return CUP$Parser$result; |
---|
1078 | |
---|
1079 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
1080 | case 2: // boolexpr_list ::= boolexpr_part |
---|
1081 | { |
---|
1082 | Object RESULT =null; |
---|
1083 | |
---|
1084 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr_list",0, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
1085 | } |
---|
1086 | return CUP$Parser$result; |
---|
1087 | |
---|
1088 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
1089 | case 1: // $START ::= boolexpr_list EOF |
---|
1090 | { |
---|
1091 | Object RESULT =null; |
---|
1092 | int start_valleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; |
---|
1093 | int start_valright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; |
---|
1094 | Object start_val = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; |
---|
1095 | RESULT = start_val; |
---|
1096 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("$START",0, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
1097 | } |
---|
1098 | /* ACCEPT */ |
---|
1099 | CUP$Parser$parser.done_parsing(); |
---|
1100 | return CUP$Parser$result; |
---|
1101 | |
---|
1102 | /*. . . . . . . . . . . . . . . . . . . .*/ |
---|
1103 | case 0: // boolexpr_list ::= boolexpr_list boolexpr_part |
---|
1104 | { |
---|
1105 | Object RESULT =null; |
---|
1106 | |
---|
1107 | CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr_list",0, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); |
---|
1108 | } |
---|
1109 | return CUP$Parser$result; |
---|
1110 | |
---|
1111 | /* . . . . . .*/ |
---|
1112 | default: |
---|
1113 | throw new Exception( |
---|
1114 | "Invalid action number found in internal parse table"); |
---|
1115 | |
---|
1116 | } |
---|
1117 | } |
---|
1118 | } |
---|
1119 | |
---|