source: branches/MetisMQI/src/main/java/weka/filters/unsupervised/instance/subsetbyexpression/Parser.java

Last change on this file was 29, checked in by gnappo, 15 years ago

Taggata versione per la demo e aggiunto branch.

File size: 60.0 KB
Line 
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
7package weka.filters.unsupervised.instance.subsetbyexpression;
8
9import weka.core.*;
10import java_cup.runtime.*;
11import java.io.*;
12import java.util.*;
13
14/** CUP v0.11a beta 20060608 generated parser.
15  * @version Sun Jan 11 11:14:12 NZDT 2009
16  */
17public 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.*/
592class 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
Note: See TracBrowser for help on using the repository browser.