~ubuntu-branches/ubuntu/oneiric/weka/oneiric

« back to all changes in this revision

Viewing changes to .pc/java_cup.patch/src/main/java/weka/core/mathematicalexpression/Parser.java

  • Committer: Bazaar Package Importer
  • Author(s): Soeren Sonnenburg
  • Date: 2010-04-23 22:33:11 UTC
  • Revision ID: james.westby@ubuntu.com-20100423223311-ctmj7n1pqeppqy2a
Tags: 3.6.0-3
* Bump Standards-Version to 3.8.4 (no changes required).
* Switch to dpkg-source 3.0 (quilt) format.
* Track only stable releases in watch file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
//----------------------------------------------------
 
3
// The following code was generated by CUP v0.11a beta 20060608
 
4
// Thu May 15 13:13:25 NZST 2008
 
5
//----------------------------------------------------
 
6
 
 
7
/*
 
8
 * STANDARD ML OF NEW JERSEY COPYRIGHT NOTICE, LICENSE AND DISCLAIMER.
 
9
 * 
 
10
 * Copyright (c) 1989-1998 by Lucent Technologies
 
11
 * 
 
12
 * Permission to use, copy, modify, and distribute this software and its
 
13
 * documentation for any purpose and without fee is hereby granted, provided
 
14
 * that the above copyright notice appear in all copies and that both the
 
15
 * copyright notice and this permission notice and warranty disclaimer appear
 
16
 * in supporting documentation, and that the name of Lucent Technologies, Bell
 
17
 * Labs or any Lucent entity not be used in advertising or publicity pertaining
 
18
 * to distribution of the software without specific, written prior permission.
 
19
 *
 
20
 * Lucent disclaims all warranties with regard to this software, including all
 
21
 * implied warranties of merchantability and fitness. In no event shall Lucent
 
22
 * be liable for any special, indirect or consequential damages or any damages
 
23
 * whatsoever resulting from loss of use, data or profits, whether in an action
 
24
 * of contract, negligence or other tortious action, arising out of or in
 
25
 * connection with the use or performance of this software. 
 
26
 *
 
27
 * Taken from this URL:
 
28
 * http://www.smlnj.org/license.html
 
29
 * 
 
30
 * This license is compatible with the GNU GPL (see section "Standard ML of New
 
31
 * Jersey Copyright License"):
 
32
 * http://www.gnu.org/licenses/license-list.html#StandardMLofNJ
 
33
 */
 
34
 
 
35
/*
 
36
 * Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian
 
37
 */
 
38
 
 
39
package weka.core.mathematicalexpression;
 
40
 
 
41
import weka.core.parser.java_cup.runtime.*;
 
42
import java.io.*;
 
43
import java.util.*;
 
44
 
 
45
/** CUP v0.11a beta 20060608 generated parser.
 
46
  * @version Thu May 15 13:13:25 NZST 2008
 
47
  */
 
48
public class Parser extends weka.core.parser.java_cup.runtime.lr_parser {
 
49
 
 
50
  /** Default constructor. */
 
51
  public Parser() {super();}
 
52
 
 
53
  /** Constructor which sets the default scanner. */
 
54
  public Parser(weka.core.parser.java_cup.runtime.Scanner s) {super(s);}
 
55
 
 
56
  /** Constructor which sets the default scanner. */
 
57
  public Parser(weka.core.parser.java_cup.runtime.Scanner s, weka.core.parser.java_cup.runtime.SymbolFactory sf) {super(s,sf);}
 
58
 
 
59
  /** Production table. */
 
60
  protected static final short _production_table[][] = 
 
61
    unpackFromStrings(new String[] {
 
62
    "\000\046\000\002\002\004\000\002\002\004\000\002\002" +
 
63
    "\003\000\002\003\003\000\002\004\003\000\002\004\005" +
 
64
    "\000\002\004\003\000\002\004\003\000\002\004\003\000" +
 
65
    "\002\005\005\000\002\005\005\000\002\005\005\000\002" +
 
66
    "\005\005\000\002\006\003\000\002\007\006\000\002\007" +
 
67
    "\006\000\002\007\006\000\002\007\006\000\002\007\006" +
 
68
    "\000\002\007\006\000\002\007\006\000\002\007\006\000" +
 
69
    "\002\007\006\000\002\007\010\000\002\007\006\000\002" +
 
70
    "\007\012\000\002\010\003\000\002\010\003\000\002\010" +
 
71
    "\003\000\002\010\005\000\002\010\005\000\002\010\005" +
 
72
    "\000\002\010\005\000\002\010\005\000\002\010\005\000" +
 
73
    "\002\010\004\000\002\010\005\000\002\010\005" });
 
74
 
 
75
  /** Access to production table. */
 
76
  public short[][] production_table() {return _production_table;}
 
77
 
 
78
  /** Parse-action table. */
 
79
  protected static final short[][] _action_table = 
 
80
    unpackFromStrings(new String[] {
 
81
    "\000\144\000\040\005\016\013\025\014\011\015\021\016" +
 
82
    "\020\017\005\020\010\021\030\022\015\023\014\024\012" +
 
83
    "\025\017\026\004\041\023\043\013\001\002\000\004\005" +
 
84
    "\110\001\002\000\004\005\105\001\002\000\052\002\ufffe" +
 
85
    "\005\ufffe\007\036\010\034\011\037\012\035\013\ufffe\014" +
 
86
    "\ufffe\015\ufffe\016\ufffe\017\ufffe\020\ufffe\021\ufffe\022\ufffe" +
 
87
    "\023\ufffe\024\ufffe\025\ufffe\026\ufffe\041\ufffe\043\ufffe\001" +
 
88
    "\002\000\074\002\ufffa\004\ufffa\005\ufffa\006\ufffa\007\ufffa" +
 
89
    "\010\ufffa\011\ufffa\012\ufffa\013\ufffa\014\ufffa\015\ufffa\016" +
 
90
    "\ufffa\017\ufffa\020\ufffa\021\ufffa\022\ufffa\023\ufffa\024\ufffa" +
 
91
    "\025\ufffa\026\ufffa\031\ufffa\032\ufffa\033\ufffa\034\ufffa\035" +
 
92
    "\ufffa\037\ufffa\040\ufffa\041\ufffa\043\ufffa\001\002\000\004" +
 
93
    "\005\102\001\002\000\004\005\077\001\002\000\004\005" +
 
94
    "\072\001\002\000\074\002\ufff4\004\ufff4\005\ufff4\006\ufff4" +
 
95
    "\007\ufff4\010\ufff4\011\ufff4\012\ufff4\013\ufff4\014\ufff4\015" +
 
96
    "\ufff4\016\ufff4\017\ufff4\020\ufff4\021\ufff4\022\ufff4\023\ufff4" +
 
97
    "\024\ufff4\025\ufff4\026\ufff4\031\ufff4\032\ufff4\033\ufff4\034" +
 
98
    "\ufff4\035\ufff4\037\ufff4\040\ufff4\041\ufff4\043\ufff4\001\002" +
 
99
    "\000\004\005\067\001\002\000\004\005\064\001\002\000" +
 
100
    "\040\005\016\013\025\014\011\015\021\016\020\017\005" +
 
101
    "\020\010\021\030\022\015\023\014\024\012\025\017\026" +
 
102
    "\004\041\023\043\013\001\002\000\004\005\057\001\002" +
 
103
    "\000\004\005\054\001\002\000\004\005\051\001\002\000" +
 
104
    "\042\002\uffff\005\uffff\013\uffff\014\uffff\015\uffff\016\uffff" +
 
105
    "\017\uffff\020\uffff\021\uffff\022\uffff\023\uffff\024\uffff\025" +
 
106
    "\uffff\026\uffff\041\uffff\043\uffff\001\002\000\074\002\ufffd" +
 
107
    "\004\ufffd\005\ufffd\006\ufffd\007\ufffd\010\ufffd\011\ufffd\012" +
 
108
    "\ufffd\013\ufffd\014\ufffd\015\ufffd\016\ufffd\017\ufffd\020\ufffd" +
 
109
    "\021\ufffd\022\ufffd\023\ufffd\024\ufffd\025\ufffd\026\ufffd\031" +
 
110
    "\ufffd\032\ufffd\033\ufffd\034\ufffd\035\ufffd\037\ufffd\040\ufffd" +
 
111
    "\041\ufffd\043\ufffd\001\002\000\074\002\ufff9\004\ufff9\005" +
 
112
    "\ufff9\006\ufff9\007\ufff9\010\ufff9\011\ufff9\012\ufff9\013\ufff9" +
 
113
    "\014\ufff9\015\ufff9\016\ufff9\017\ufff9\020\ufff9\021\ufff9\022" +
 
114
    "\ufff9\023\ufff9\024\ufff9\025\ufff9\026\ufff9\031\ufff9\032\ufff9" +
 
115
    "\033\ufff9\034\ufff9\035\ufff9\037\ufff9\040\ufff9\041\ufff9\043" +
 
116
    "\ufff9\001\002\000\004\005\046\001\002\000\042\002\045" +
 
117
    "\005\016\013\025\014\011\015\021\016\020\017\005\020" +
 
118
    "\010\021\030\022\015\023\014\024\012\025\017\026\004" +
 
119
    "\041\023\043\013\001\002\000\074\002\ufffb\004\ufffb\005" +
 
120
    "\ufffb\006\ufffb\007\ufffb\010\ufffb\011\ufffb\012\ufffb\013\ufffb" +
 
121
    "\014\ufffb\015\ufffb\016\ufffb\017\ufffb\020\ufffb\021\ufffb\022" +
 
122
    "\ufffb\023\ufffb\024\ufffb\025\ufffb\026\ufffb\031\ufffb\032\ufffb" +
 
123
    "\033\ufffb\034\ufffb\035\ufffb\037\ufffb\040\ufffb\041\ufffb\043" +
 
124
    "\ufffb\001\002\000\004\005\031\001\002\000\040\005\016" +
 
125
    "\013\025\014\011\015\021\016\020\017\005\020\010\021" +
 
126
    "\030\022\015\023\014\024\012\025\017\026\004\041\023" +
 
127
    "\043\013\001\002\000\014\006\033\007\036\010\034\011" +
 
128
    "\037\012\035\001\002\000\074\002\uffed\004\uffed\005\uffed" +
 
129
    "\006\uffed\007\uffed\010\uffed\011\uffed\012\uffed\013\uffed\014" +
 
130
    "\uffed\015\uffed\016\uffed\017\uffed\020\uffed\021\uffed\022\uffed" +
 
131
    "\023\uffed\024\uffed\025\uffed\026\uffed\031\uffed\032\uffed\033" +
 
132
    "\uffed\034\uffed\035\uffed\037\uffed\040\uffed\041\uffed\043\uffed" +
 
133
    "\001\002\000\040\005\016\013\025\014\011\015\021\016" +
 
134
    "\020\017\005\020\010\021\030\022\015\023\014\024\012" +
 
135
    "\025\017\026\004\041\023\043\013\001\002\000\040\005" +
 
136
    "\016\013\025\014\011\015\021\016\020\017\005\020\010" +
 
137
    "\021\030\022\015\023\014\024\012\025\017\026\004\041" +
 
138
    "\023\043\013\001\002\000\040\005\016\013\025\014\011" +
 
139
    "\015\021\016\020\017\005\020\010\021\030\022\015\023" +
 
140
    "\014\024\012\025\017\026\004\041\023\043\013\001\002" +
 
141
    "\000\040\005\016\013\025\014\011\015\021\016\020\017" +
 
142
    "\005\020\010\021\030\022\015\023\014\024\012\025\017" +
 
143
    "\026\004\041\023\043\013\001\002\000\074\002\ufff6\004" +
 
144
    "\ufff6\005\ufff6\006\ufff6\007\ufff6\010\ufff6\011\ufff6\012\ufff6" +
 
145
    "\013\ufff6\014\ufff6\015\ufff6\016\ufff6\017\ufff6\020\ufff6\021" +
 
146
    "\ufff6\022\ufff6\023\ufff6\024\ufff6\025\ufff6\026\ufff6\031\ufff6" +
 
147
    "\032\ufff6\033\ufff6\034\ufff6\035\ufff6\037\ufff6\040\ufff6\041" +
 
148
    "\ufff6\043\ufff6\001\002\000\074\002\ufff7\004\ufff7\005\ufff7" +
 
149
    "\006\ufff7\007\ufff7\010\ufff7\011\037\012\035\013\ufff7\014" +
 
150
    "\ufff7\015\ufff7\016\ufff7\017\ufff7\020\ufff7\021\ufff7\022\ufff7" +
 
151
    "\023\ufff7\024\ufff7\025\ufff7\026\ufff7\031\ufff7\032\ufff7\033" +
 
152
    "\ufff7\034\ufff7\035\ufff7\037\ufff7\040\ufff7\041\ufff7\043\ufff7" +
 
153
    "\001\002\000\074\002\ufff5\004\ufff5\005\ufff5\006\ufff5\007" +
 
154
    "\ufff5\010\ufff5\011\ufff5\012\ufff5\013\ufff5\014\ufff5\015\ufff5" +
 
155
    "\016\ufff5\017\ufff5\020\ufff5\021\ufff5\022\ufff5\023\ufff5\024" +
 
156
    "\ufff5\025\ufff5\026\ufff5\031\ufff5\032\ufff5\033\ufff5\034\ufff5" +
 
157
    "\035\ufff5\037\ufff5\040\ufff5\041\ufff5\043\ufff5\001\002\000" +
 
158
    "\074\002\ufff8\004\ufff8\005\ufff8\006\ufff8\007\ufff8\010\ufff8" +
 
159
    "\011\037\012\035\013\ufff8\014\ufff8\015\ufff8\016\ufff8\017" +
 
160
    "\ufff8\020\ufff8\021\ufff8\022\ufff8\023\ufff8\024\ufff8\025\ufff8" +
 
161
    "\026\ufff8\031\ufff8\032\ufff8\033\ufff8\034\ufff8\035\ufff8\037" +
 
162
    "\ufff8\040\ufff8\041\ufff8\043\ufff8\001\002\000\042\002\001" +
 
163
    "\005\001\013\001\014\001\015\001\016\001\017\001\020" +
 
164
    "\001\021\001\022\001\023\001\024\001\025\001\026\001" +
 
165
    "\041\001\043\001\001\002\000\004\002\000\001\002\000" +
 
166
    "\040\005\016\013\025\014\011\015\021\016\020\017\005" +
 
167
    "\020\010\021\030\022\015\023\014\024\012\025\017\026" +
 
168
    "\004\041\023\043\013\001\002\000\014\006\050\007\036" +
 
169
    "\010\034\011\037\012\035\001\002\000\074\002\ufff3\004" +
 
170
    "\ufff3\005\ufff3\006\ufff3\007\ufff3\010\ufff3\011\ufff3\012\ufff3" +
 
171
    "\013\ufff3\014\ufff3\015\ufff3\016\ufff3\017\ufff3\020\ufff3\021" +
 
172
    "\ufff3\022\ufff3\023\ufff3\024\ufff3\025\ufff3\026\ufff3\031\ufff3" +
 
173
    "\032\ufff3\033\ufff3\034\ufff3\035\ufff3\037\ufff3\040\ufff3\041" +
 
174
    "\ufff3\043\ufff3\001\002\000\040\005\016\013\025\014\011" +
 
175
    "\015\021\016\020\017\005\020\010\021\030\022\015\023" +
 
176
    "\014\024\012\025\017\026\004\041\023\043\013\001\002" +
 
177
    "\000\014\006\053\007\036\010\034\011\037\012\035\001" +
 
178
    "\002\000\074\002\ufff1\004\ufff1\005\ufff1\006\ufff1\007\ufff1" +
 
179
    "\010\ufff1\011\ufff1\012\ufff1\013\ufff1\014\ufff1\015\ufff1\016" +
 
180
    "\ufff1\017\ufff1\020\ufff1\021\ufff1\022\ufff1\023\ufff1\024\ufff1" +
 
181
    "\025\ufff1\026\ufff1\031\ufff1\032\ufff1\033\ufff1\034\ufff1\035" +
 
182
    "\ufff1\037\ufff1\040\ufff1\041\ufff1\043\ufff1\001\002\000\040" +
 
183
    "\005\016\013\025\014\011\015\021\016\020\017\005\020" +
 
184
    "\010\021\030\022\015\023\014\024\012\025\017\026\004" +
 
185
    "\041\023\043\013\001\002\000\014\006\056\007\036\010" +
 
186
    "\034\011\037\012\035\001\002\000\074\002\ufff0\004\ufff0" +
 
187
    "\005\ufff0\006\ufff0\007\ufff0\010\ufff0\011\ufff0\012\ufff0\013" +
 
188
    "\ufff0\014\ufff0\015\ufff0\016\ufff0\017\ufff0\020\ufff0\021\ufff0" +
 
189
    "\022\ufff0\023\ufff0\024\ufff0\025\ufff0\026\ufff0\031\ufff0\032" +
 
190
    "\ufff0\033\ufff0\034\ufff0\035\ufff0\037\ufff0\040\ufff0\041\ufff0" +
 
191
    "\043\ufff0\001\002\000\040\005\016\013\025\014\011\015" +
 
192
    "\021\016\020\017\005\020\010\021\030\022\015\023\014" +
 
193
    "\024\012\025\017\026\004\041\023\043\013\001\002\000" +
 
194
    "\014\006\061\007\036\010\034\011\037\012\035\001\002" +
 
195
    "\000\074\002\uffe9\004\uffe9\005\uffe9\006\uffe9\007\uffe9\010" +
 
196
    "\uffe9\011\uffe9\012\uffe9\013\uffe9\014\uffe9\015\uffe9\016\uffe9" +
 
197
    "\017\uffe9\020\uffe9\021\uffe9\022\uffe9\023\uffe9\024\uffe9\025" +
 
198
    "\uffe9\026\uffe9\031\uffe9\032\uffe9\033\uffe9\034\uffe9\035\uffe9" +
 
199
    "\037\uffe9\040\uffe9\041\uffe9\043\uffe9\001\002\000\014\006" +
 
200
    "\063\007\036\010\034\011\037\012\035\001\002\000\074" +
 
201
    "\002\ufffc\004\ufffc\005\ufffc\006\ufffc\007\ufffc\010\ufffc\011" +
 
202
    "\ufffc\012\ufffc\013\ufffc\014\ufffc\015\ufffc\016\ufffc\017\ufffc" +
 
203
    "\020\ufffc\021\ufffc\022\ufffc\023\ufffc\024\ufffc\025\ufffc\026" +
 
204
    "\ufffc\031\ufffc\032\ufffc\033\ufffc\034\ufffc\035\ufffc\037\ufffc" +
 
205
    "\040\ufffc\041\ufffc\043\ufffc\001\002\000\040\005\016\013" +
 
206
    "\025\014\011\015\021\016\020\017\005\020\010\021\030" +
 
207
    "\022\015\023\014\024\012\025\017\026\004\041\023\043" +
 
208
    "\013\001\002\000\014\006\066\007\036\010\034\011\037" +
 
209
    "\012\035\001\002\000\074\002\uffec\004\uffec\005\uffec\006" +
 
210
    "\uffec\007\uffec\010\uffec\011\uffec\012\uffec\013\uffec\014\uffec" +
 
211
    "\015\uffec\016\uffec\017\uffec\020\uffec\021\uffec\022\uffec\023" +
 
212
    "\uffec\024\uffec\025\uffec\026\uffec\031\uffec\032\uffec\033\uffec" +
 
213
    "\034\uffec\035\uffec\037\uffec\040\uffec\041\uffec\043\uffec\001" +
 
214
    "\002\000\040\005\016\013\025\014\011\015\021\016\020" +
 
215
    "\017\005\020\010\021\030\022\015\023\014\024\012\025" +
 
216
    "\017\026\004\041\023\043\013\001\002\000\014\006\071" +
 
217
    "\007\036\010\034\011\037\012\035\001\002\000\074\002" +
 
218
    "\uffeb\004\uffeb\005\uffeb\006\uffeb\007\uffeb\010\uffeb\011\uffeb" +
 
219
    "\012\uffeb\013\uffeb\014\uffeb\015\uffeb\016\uffeb\017\uffeb\020" +
 
220
    "\uffeb\021\uffeb\022\uffeb\023\uffeb\024\uffeb\025\uffeb\026\uffeb" +
 
221
    "\031\uffeb\032\uffeb\033\uffeb\034\uffeb\035\uffeb\037\uffeb\040" +
 
222
    "\uffeb\041\uffeb\043\uffeb\001\002\000\040\005\016\013\025" +
 
223
    "\014\011\015\021\016\020\017\005\020\010\021\030\022" +
 
224
    "\015\023\014\024\012\025\017\026\004\041\023\043\013" +
 
225
    "\001\002\000\014\004\074\007\036\010\034\011\037\012" +
 
226
    "\035\001\002\000\040\005\016\013\025\014\011\015\021" +
 
227
    "\016\020\017\005\020\010\021\030\022\015\023\014\024" +
 
228
    "\012\025\017\026\004\041\023\043\013\001\002\000\014" +
 
229
    "\006\076\007\036\010\034\011\037\012\035\001\002\000" +
 
230
    "\074\002\uffea\004\uffea\005\uffea\006\uffea\007\uffea\010\uffea" +
 
231
    "\011\uffea\012\uffea\013\uffea\014\uffea\015\uffea\016\uffea\017" +
 
232
    "\uffea\020\uffea\021\uffea\022\uffea\023\uffea\024\uffea\025\uffea" +
 
233
    "\026\uffea\031\uffea\032\uffea\033\uffea\034\uffea\035\uffea\037" +
 
234
    "\uffea\040\uffea\041\uffea\043\uffea\001\002\000\040\005\016" +
 
235
    "\013\025\014\011\015\021\016\020\017\005\020\010\021" +
 
236
    "\030\022\015\023\014\024\012\025\017\026\004\041\023" +
 
237
    "\043\013\001\002\000\014\006\101\007\036\010\034\011" +
 
238
    "\037\012\035\001\002\000\074\002\ufff2\004\ufff2\005\ufff2" +
 
239
    "\006\ufff2\007\ufff2\010\ufff2\011\ufff2\012\ufff2\013\ufff2\014" +
 
240
    "\ufff2\015\ufff2\016\ufff2\017\ufff2\020\ufff2\021\ufff2\022\ufff2" +
 
241
    "\023\ufff2\024\ufff2\025\ufff2\026\ufff2\031\ufff2\032\ufff2\033" +
 
242
    "\ufff2\034\ufff2\035\ufff2\037\ufff2\040\ufff2\041\ufff2\043\ufff2" +
 
243
    "\001\002\000\040\005\016\013\025\014\011\015\021\016" +
 
244
    "\020\017\005\020\010\021\030\022\015\023\014\024\012" +
 
245
    "\025\017\026\004\041\023\043\013\001\002\000\014\006" +
 
246
    "\104\007\036\010\034\011\037\012\035\001\002\000\074" +
 
247
    "\002\uffee\004\uffee\005\uffee\006\uffee\007\uffee\010\uffee\011" +
 
248
    "\uffee\012\uffee\013\uffee\014\uffee\015\uffee\016\uffee\017\uffee" +
 
249
    "\020\uffee\021\uffee\022\uffee\023\uffee\024\uffee\025\uffee\026" +
 
250
    "\uffee\031\uffee\032\uffee\033\uffee\034\uffee\035\uffee\037\uffee" +
 
251
    "\040\uffee\041\uffee\043\uffee\001\002\000\040\005\016\013" +
 
252
    "\025\014\011\015\021\016\020\017\005\020\010\021\030" +
 
253
    "\022\015\023\014\024\012\025\017\026\004\041\023\043" +
 
254
    "\013\001\002\000\014\006\107\007\036\010\034\011\037" +
 
255
    "\012\035\001\002\000\074\002\uffef\004\uffef\005\uffef\006" +
 
256
    "\uffef\007\uffef\010\uffef\011\uffef\012\uffef\013\uffef\014\uffef" +
 
257
    "\015\uffef\016\uffef\017\uffef\020\uffef\021\uffef\022\uffef\023" +
 
258
    "\uffef\024\uffef\025\uffef\026\uffef\031\uffef\032\uffef\033\uffef" +
 
259
    "\034\uffef\035\uffef\037\uffef\040\uffef\041\uffef\043\uffef\001" +
 
260
    "\002\000\050\005\114\013\025\014\011\015\021\016\020" +
 
261
    "\017\005\020\010\021\030\022\015\023\014\024\012\025" +
 
262
    "\017\026\004\027\113\030\117\036\112\041\023\042\115" +
 
263
    "\043\013\001\002\000\024\007\036\010\034\011\037\012" +
 
264
    "\035\031\140\032\136\033\137\034\134\035\135\001\002" +
 
265
    "\000\050\005\114\013\025\014\011\015\021\016\020\017" +
 
266
    "\005\020\010\021\030\022\015\023\014\024\012\025\017" +
 
267
    "\026\004\027\113\030\117\036\112\041\023\042\115\043" +
 
268
    "\013\001\002\000\012\004\uffe6\006\uffe6\037\uffe6\040\uffe6" +
 
269
    "\001\002\000\050\005\114\013\025\014\011\015\021\016" +
 
270
    "\020\017\005\020\010\021\030\022\015\023\014\024\012" +
 
271
    "\025\017\026\004\027\113\030\117\036\112\041\023\042" +
 
272
    "\115\043\013\001\002\000\012\004\uffe7\006\uffe7\037\uffe7" +
 
273
    "\040\uffe7\001\002\000\010\004\120\037\121\040\122\001" +
 
274
    "\002\000\012\004\uffe5\006\uffe5\037\uffe5\040\uffe5\001\002" +
 
275
    "\000\040\005\016\013\025\014\011\015\021\016\020\017" +
 
276
    "\005\020\010\021\030\022\015\023\014\024\012\025\017" +
 
277
    "\026\004\041\023\043\013\001\002\000\050\005\114\013" +
 
278
    "\025\014\011\015\021\016\020\017\005\020\010\021\030" +
 
279
    "\022\015\023\014\024\012\025\017\026\004\027\113\030" +
 
280
    "\117\036\112\041\023\042\115\043\013\001\002\000\050" +
 
281
    "\005\114\013\025\014\011\015\021\016\020\017\005\020" +
 
282
    "\010\021\030\022\015\023\014\024\012\025\017\026\004" +
 
283
    "\027\113\030\117\036\112\041\023\042\115\043\013\001" +
 
284
    "\002\000\012\004\uffdc\006\uffdc\037\uffdc\040\uffdc\001\002" +
 
285
    "\000\012\004\uffdd\006\uffdd\037\uffdd\040\uffdd\001\002\000" +
 
286
    "\014\004\126\007\036\010\034\011\037\012\035\001\002" +
 
287
    "\000\040\005\016\013\025\014\011\015\021\016\020\017" +
 
288
    "\005\020\010\021\030\022\015\023\014\024\012\025\017" +
 
289
    "\026\004\041\023\043\013\001\002\000\014\006\130\007" +
 
290
    "\036\010\034\011\037\012\035\001\002\000\074\002\uffe8" +
 
291
    "\004\uffe8\005\uffe8\006\uffe8\007\uffe8\010\uffe8\011\uffe8\012" +
 
292
    "\uffe8\013\uffe8\014\uffe8\015\uffe8\016\uffe8\017\uffe8\020\uffe8" +
 
293
    "\021\uffe8\022\uffe8\023\uffe8\024\uffe8\025\uffe8\026\uffe8\031" +
 
294
    "\uffe8\032\uffe8\033\uffe8\034\uffe8\035\uffe8\037\uffe8\040\uffe8" +
 
295
    "\041\uffe8\043\uffe8\001\002\000\026\006\063\007\036\010" +
 
296
    "\034\011\037\012\035\031\140\032\136\033\137\034\134" +
 
297
    "\035\135\001\002\000\010\006\133\037\121\040\122\001" +
 
298
    "\002\000\012\004\uffdf\006\uffdf\037\uffdf\040\uffdf\001\002" +
 
299
    "\000\040\005\016\013\025\014\011\015\021\016\020\017" +
 
300
    "\005\020\010\021\030\022\015\023\014\024\012\025\017" +
 
301
    "\026\004\041\023\043\013\001\002\000\040\005\016\013" +
 
302
    "\025\014\011\015\021\016\020\017\005\020\010\021\030" +
 
303
    "\022\015\023\014\024\012\025\017\026\004\041\023\043" +
 
304
    "\013\001\002\000\040\005\016\013\025\014\011\015\021" +
 
305
    "\016\020\017\005\020\010\021\030\022\015\023\014\024" +
 
306
    "\012\025\017\026\004\041\023\043\013\001\002\000\040" +
 
307
    "\005\016\013\025\014\011\015\021\016\020\017\005\020" +
 
308
    "\010\021\030\022\015\023\014\024\012\025\017\026\004" +
 
309
    "\041\023\043\013\001\002\000\040\005\016\013\025\014" +
 
310
    "\011\015\021\016\020\017\005\020\010\021\030\022\015" +
 
311
    "\023\014\024\012\025\017\026\004\041\023\043\013\001" +
 
312
    "\002\000\022\004\uffe4\006\uffe4\007\036\010\034\011\037" +
 
313
    "\012\035\037\uffe4\040\uffe4\001\002\000\022\004\uffe2\006" +
 
314
    "\uffe2\007\036\010\034\011\037\012\035\037\uffe2\040\uffe2" +
 
315
    "\001\002\000\022\004\uffe3\006\uffe3\007\036\010\034\011" +
 
316
    "\037\012\035\037\uffe3\040\uffe3\001\002\000\022\004\uffe0" +
 
317
    "\006\uffe0\007\036\010\034\011\037\012\035\037\uffe0\040" +
 
318
    "\uffe0\001\002\000\022\004\uffe1\006\uffe1\007\036\010\034" +
 
319
    "\011\037\012\035\037\uffe1\040\uffe1\001\002\000\012\004" +
 
320
    "\uffde\006\uffde\037\uffde\040\uffde\001\002" });
 
321
 
 
322
  /** Access to parse-action table. */
 
323
  public short[][] action_table() {return _action_table;}
 
324
 
 
325
  /** <code>reduce_goto</code> table. */
 
326
  protected static final short[][] _reduce_table = 
 
327
    unpackFromStrings(new String[] {
 
328
    "\000\144\000\016\002\025\003\021\004\005\005\026\006" +
 
329
    "\006\007\023\001\001\000\002\001\001\000\002\001\001" +
 
330
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 
331
    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
 
332
    "\001\001\000\002\001\001\000\012\004\061\005\026\006" +
 
333
    "\006\007\023\001\001\000\002\001\001\000\002\001\001" +
 
334
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 
335
    "\002\001\001\000\002\001\001\000\014\003\043\004\005" +
 
336
    "\005\026\006\006\007\023\001\001\000\002\001\001\000" +
 
337
    "\002\001\001\000\012\004\031\005\026\006\006\007\023" +
 
338
    "\001\001\000\002\001\001\000\002\001\001\000\012\004" +
 
339
    "\042\005\026\006\006\007\023\001\001\000\012\004\041" +
 
340
    "\005\026\006\006\007\023\001\001\000\012\004\040\005" +
 
341
    "\026\006\006\007\023\001\001\000\012\004\037\005\026" +
 
342
    "\006\006\007\023\001\001\000\002\001\001\000\002\001" +
 
343
    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
 
344
    "\000\002\001\001\000\012\004\046\005\026\006\006\007" +
 
345
    "\023\001\001\000\002\001\001\000\002\001\001\000\012" +
 
346
    "\004\051\005\026\006\006\007\023\001\001\000\002\001" +
 
347
    "\001\000\002\001\001\000\012\004\054\005\026\006\006" +
 
348
    "\007\023\001\001\000\002\001\001\000\002\001\001\000" +
 
349
    "\012\004\057\005\026\006\006\007\023\001\001\000\002" +
 
350
    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
 
351
    "\001\000\012\004\064\005\026\006\006\007\023\001\001" +
 
352
    "\000\002\001\001\000\002\001\001\000\012\004\067\005" +
 
353
    "\026\006\006\007\023\001\001\000\002\001\001\000\002" +
 
354
    "\001\001\000\012\004\072\005\026\006\006\007\023\001" +
 
355
    "\001\000\002\001\001\000\012\004\074\005\026\006\006" +
 
356
    "\007\023\001\001\000\002\001\001\000\002\001\001\000" +
 
357
    "\012\004\077\005\026\006\006\007\023\001\001\000\002" +
 
358
    "\001\001\000\002\001\001\000\012\004\102\005\026\006" +
 
359
    "\006\007\023\001\001\000\002\001\001\000\002\001\001" +
 
360
    "\000\012\004\105\005\026\006\006\007\023\001\001\000" +
 
361
    "\002\001\001\000\002\001\001\000\014\004\110\005\026" +
 
362
    "\006\006\007\023\010\115\001\001\000\002\001\001\000" +
 
363
    "\014\004\110\005\026\006\006\007\023\010\145\001\001" +
 
364
    "\000\002\001\001\000\014\004\130\005\026\006\006\007" +
 
365
    "\023\010\131\001\001\000\002\001\001\000\002\001\001" +
 
366
    "\000\002\001\001\000\012\004\124\005\026\006\006\007" +
 
367
    "\023\001\001\000\014\004\110\005\026\006\006\007\023" +
 
368
    "\010\123\001\001\000\014\004\110\005\026\006\006\007" +
 
369
    "\023\010\122\001\001\000\002\001\001\000\002\001\001" +
 
370
    "\000\002\001\001\000\012\004\126\005\026\006\006\007" +
 
371
    "\023\001\001\000\002\001\001\000\002\001\001\000\002" +
 
372
    "\001\001\000\002\001\001\000\002\001\001\000\012\004" +
 
373
    "\144\005\026\006\006\007\023\001\001\000\012\004\143" +
 
374
    "\005\026\006\006\007\023\001\001\000\012\004\142\005" +
 
375
    "\026\006\006\007\023\001\001\000\012\004\141\005\026" +
 
376
    "\006\006\007\023\001\001\000\012\004\140\005\026\006" +
 
377
    "\006\007\023\001\001\000\002\001\001\000\002\001\001" +
 
378
    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
 
379
    "\002\001\001" });
 
380
 
 
381
  /** Access to <code>reduce_goto</code> table. */
 
382
  public short[][] reduce_table() {return _reduce_table;}
 
383
 
 
384
  /** Instance of action encapsulation class. */
 
385
  protected CUP$Parser$actions action_obj;
 
386
 
 
387
  /** Action encapsulation object initializer. */
 
388
  protected void init_actions()
 
389
    {
 
390
      action_obj = new CUP$Parser$actions(this);
 
391
    }
 
392
 
 
393
  /** Invoke a user supplied parse action. */
 
394
  public weka.core.parser.java_cup.runtime.Symbol do_action(
 
395
    int                        act_num,
 
396
    weka.core.parser.java_cup.runtime.lr_parser parser,
 
397
    java.util.Stack            stack,
 
398
    int                        top)
 
399
    throws java.lang.Exception
 
400
  {
 
401
    /* call code in generated class */
 
402
    return action_obj.CUP$Parser$do_action(act_num, parser, stack, top);
 
403
  }
 
404
 
 
405
  /** Indicates start state. */
 
406
  public int start_state() {return 0;}
 
407
  /** Indicates start production. */
 
408
  public int start_production() {return 1;}
 
409
 
 
410
  /** <code>EOF</code> Symbol index. */
 
411
  public int EOF_sym() {return 0;}
 
412
 
 
413
  /** <code>error</code> Symbol index. */
 
414
  public int error_sym() {return 1;}
 
415
 
 
416
 
 
417
 
 
418
  /** variable - value relation. */
 
419
  protected HashMap m_Symbols = new HashMap();
 
420
 
 
421
  /** for storing the result of the expresion. */
 
422
  protected Double m_Result = null;
 
423
 
 
424
  /**
 
425
   * Sets the variable - value relation to use.
 
426
   * 
 
427
   * @param value the variable-value relation
 
428
   */
 
429
  public void setSymbols(HashMap value) {
 
430
    m_Symbols = value;
 
431
  }
 
432
 
 
433
  /**
 
434
   * Returns the current variable - value relation in use.
 
435
   * 
 
436
   * @return the variable-value relation
 
437
   */
 
438
  public HashMap getSymbols() {
 
439
    return m_Symbols;
 
440
  }
 
441
 
 
442
  /**
 
443
   * Sets the result of the evaluation.
 
444
   * 
 
445
   * @param value the result
 
446
   */
 
447
  public void setResult(Double value) {
 
448
    m_Result = value;
 
449
  }
 
450
 
 
451
  /**
 
452
   * Returns the result of the evaluation.
 
453
   * 
 
454
   * @return the result
 
455
   */
 
456
  public Double getResult() {
 
457
    return m_Result;
 
458
  }
 
459
 
 
460
  /**
 
461
   * Runs the parser from commandline. Either reads lines from System.in
 
462
   * or from a provided file (line by line). With 
 
463
   * <code>-symbols <semi-colon separated list of variable/value pairs></code>
 
464
   * as first parameter one can provide predefined variable values. E.g.:
 
465
   * <code>-symbols "Y=10;X=3" "X+Y"</code>
 
466
   * 
 
467
   * @param args the commandline arguments
 
468
   * @throws Exception if something goes wrong
 
469
   */
 
470
  public static void main(String args[]) throws Exception {
 
471
    // read symbols, if present
 
472
    HashMap symbols = new HashMap();
 
473
    if (args.length > 0) {
 
474
      if (args[0].equals("-symbols")) {
 
475
        // parse symbols
 
476
        String[] pairs = args[1].replaceAll(" ", "").split(";");
 
477
        for (int i = 0; i < pairs.length; i++) {
 
478
          String[] parts = pairs[i].split("=");
 
479
          symbols.put(parts[0], new Double(parts[1]));
 
480
        }
 
481
        // print symbols
 
482
        System.out.println("\nSymbols provided:");
 
483
        Iterator iter = symbols.keySet().iterator();
 
484
        while (iter.hasNext()) {
 
485
          String key = (String) iter.next();
 
486
          System.out.println(key + "=" + symbols.get(key));
 
487
        }
 
488
        // remove symbols from commandline
 
489
        String[] argsNew = new String[args.length - 2];
 
490
        System.arraycopy(args, 2, argsNew, 0, argsNew.length);
 
491
        args = argsNew;
 
492
      }
 
493
    }
 
494
 
 
495
    // setup input stream
 
496
    int index = -1;
 
497
    if (args.length == 1)
 
498
      index = 0;
 
499
    BufferedReader input = null;
 
500
    if (index == -1) {
 
501
      System.out.println("\nPlease type in expressions (and press <Enter>), exit with <Ctrl+D>:");
 
502
      input = new BufferedReader(new InputStreamReader(System.in));
 
503
    }
 
504
    else {
 
505
      System.out.println("\nReading expressions from file '" + args[index] + "':");
 
506
      input = new BufferedReader(new FileReader(args[index]));
 
507
    }
 
508
 
 
509
    // process stream
 
510
    SymbolFactory sf = new DefaultSymbolFactory();
 
511
    String line;
 
512
    while ((line = input.readLine()) != null) {
 
513
      ByteArrayInputStream parserInput = new ByteArrayInputStream(line.getBytes());
 
514
      Parser parser = new Parser(new Scanner(parserInput,sf), sf);
 
515
      parser.setSymbols(symbols);
 
516
      parser.parse();
 
517
      System.out.println(line + " = " + parser.getResult());
 
518
    }
 
519
  }
 
520
 
 
521
}
 
522
 
 
523
/** Cup generated class to encapsulate user supplied action code.*/
 
524
class CUP$Parser$actions {
 
525
  private final Parser parser;
 
526
 
 
527
  /** Constructor */
 
528
  CUP$Parser$actions(Parser parser) {
 
529
    this.parser = parser;
 
530
  }
 
531
 
 
532
  /** Method with the actual generated action code. */
 
533
  public final weka.core.parser.java_cup.runtime.Symbol CUP$Parser$do_action(
 
534
    int                        CUP$Parser$act_num,
 
535
    weka.core.parser.java_cup.runtime.lr_parser CUP$Parser$parser,
 
536
    java.util.Stack            CUP$Parser$stack,
 
537
    int                        CUP$Parser$top)
 
538
    throws java.lang.Exception
 
539
    {
 
540
      /* Symbol object for return from actions */
 
541
      weka.core.parser.java_cup.runtime.Symbol CUP$Parser$result;
 
542
 
 
543
      /* select the action based on the action number */
 
544
      switch (CUP$Parser$act_num)
 
545
        {
 
546
          /*. . . . . . . . . . . . . . . . . . . .*/
 
547
          case 37: // boolexpr ::= boolexpr OR boolexpr 
 
548
            {
 
549
              Boolean RESULT =null;
 
550
                int lleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
 
551
                int lright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
 
552
                Boolean l = (Boolean)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
 
553
                int rleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
554
                int rright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
555
                Boolean r = (Boolean)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
556
                 RESULT = l || r; 
 
557
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",6, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
558
            }
 
559
          return CUP$Parser$result;
 
560
 
 
561
          /*. . . . . . . . . . . . . . . . . . . .*/
 
562
          case 36: // boolexpr ::= boolexpr AND boolexpr 
 
563
            {
 
564
              Boolean RESULT =null;
 
565
                int lleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
 
566
                int lright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
 
567
                Boolean l = (Boolean)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
 
568
                int rleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
569
                int rright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
570
                Boolean r = (Boolean)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
571
                 RESULT = l && r; 
 
572
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",6, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
573
            }
 
574
          return CUP$Parser$result;
 
575
 
 
576
          /*. . . . . . . . . . . . . . . . . . . .*/
 
577
          case 35: // boolexpr ::= NOT boolexpr 
 
578
            {
 
579
              Boolean RESULT =null;
 
580
                int bleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
581
                int bright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
582
                Boolean b = (Boolean)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
583
                 RESULT = !b; 
 
584
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",6, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
585
            }
 
586
          return CUP$Parser$result;
 
587
 
 
588
          /*. . . . . . . . . . . . . . . . . . . .*/
 
589
          case 34: // boolexpr ::= LPAREN boolexpr RPAREN 
 
590
            {
 
591
              Boolean RESULT =null;
 
592
                int bleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
 
593
                int bright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
 
594
                Boolean b = (Boolean)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
 
595
                 RESULT = b; 
 
596
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",6, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
597
            }
 
598
          return CUP$Parser$result;
 
599
 
 
600
          /*. . . . . . . . . . . . . . . . . . . .*/
 
601
          case 33: // boolexpr ::= expr EQ expr 
 
602
            {
 
603
              Boolean RESULT =null;
 
604
                int lleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
 
605
                int lright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
 
606
                Double l = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
 
607
                int rleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
608
                int rright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
609
                Double r = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
610
                 RESULT = new Boolean(l.doubleValue() == r.doubleValue()); 
 
611
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",6, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
612
            }
 
613
          return CUP$Parser$result;
 
614
 
 
615
          /*. . . . . . . . . . . . . . . . . . . .*/
 
616
          case 32: // boolexpr ::= expr GE expr 
 
617
            {
 
618
              Boolean RESULT =null;
 
619
                int lleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
 
620
                int lright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
 
621
                Double l = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
 
622
                int rleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
623
                int rright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
624
                Double r = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
625
                 RESULT = new Boolean(l.doubleValue() >= r.doubleValue()); 
 
626
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",6, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
627
            }
 
628
          return CUP$Parser$result;
 
629
 
 
630
          /*. . . . . . . . . . . . . . . . . . . .*/
 
631
          case 31: // boolexpr ::= expr GT expr 
 
632
            {
 
633
              Boolean RESULT =null;
 
634
                int lleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
 
635
                int lright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
 
636
                Double l = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
 
637
                int rleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
638
                int rright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
639
                Double r = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
640
                 RESULT = new Boolean(l.doubleValue() > r.doubleValue()); 
 
641
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",6, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
642
            }
 
643
          return CUP$Parser$result;
 
644
 
 
645
          /*. . . . . . . . . . . . . . . . . . . .*/
 
646
          case 30: // boolexpr ::= expr LE expr 
 
647
            {
 
648
              Boolean RESULT =null;
 
649
                int lleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
 
650
                int lright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
 
651
                Double l = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
 
652
                int rleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
653
                int rright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
654
                Double r = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
655
                 RESULT = new Boolean(l.doubleValue() <= r.doubleValue()); 
 
656
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",6, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
657
            }
 
658
          return CUP$Parser$result;
 
659
 
 
660
          /*. . . . . . . . . . . . . . . . . . . .*/
 
661
          case 29: // boolexpr ::= expr LT expr 
 
662
            {
 
663
              Boolean RESULT =null;
 
664
                int lleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
 
665
                int lright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
 
666
                Double l = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
 
667
                int rleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
668
                int rright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
669
                Double r = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
670
                 RESULT = new Boolean(l.doubleValue() < r.doubleValue()); 
 
671
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",6, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
672
            }
 
673
          return CUP$Parser$result;
 
674
 
 
675
          /*. . . . . . . . . . . . . . . . . . . .*/
 
676
          case 28: // boolexpr ::= FALSE 
 
677
            {
 
678
              Boolean RESULT =null;
 
679
                 RESULT = new Boolean(false); 
 
680
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",6, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
681
            }
 
682
          return CUP$Parser$result;
 
683
 
 
684
          /*. . . . . . . . . . . . . . . . . . . .*/
 
685
          case 27: // boolexpr ::= TRUE 
 
686
            {
 
687
              Boolean RESULT =null;
 
688
                 RESULT = new Boolean(true); 
 
689
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",6, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
690
            }
 
691
          return CUP$Parser$result;
 
692
 
 
693
          /*. . . . . . . . . . . . . . . . . . . .*/
 
694
          case 26: // boolexpr ::= BOOLEAN 
 
695
            {
 
696
              Boolean RESULT =null;
 
697
                int bleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
698
                int bright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
699
                Boolean b = (Boolean)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
700
                 RESULT = b; 
 
701
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolexpr",6, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
702
            }
 
703
          return CUP$Parser$result;
 
704
 
 
705
          /*. . . . . . . . . . . . . . . . . . . .*/
 
706
          case 25: // funcexpr ::= IFELSE LPAREN boolexpr COMMA expr COMMA expr RPAREN 
 
707
            {
 
708
              Double RESULT =null;
 
709
                int bleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left;
 
710
                int bright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).right;
 
711
                Boolean b = (Boolean)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-5)).value;
 
712
                int e_trueleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
 
713
                int e_trueright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
 
714
                Double e_true = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
 
715
                int e_falseleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
 
716
                int e_falseright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
 
717
                Double e_false = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
 
718
                 if (b) 
 
719
                     RESULT = e_true; 
 
720
                   else
 
721
                     RESULT = e_false; 
 
722
                
 
723
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",5, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-7)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
724
            }
 
725
          return CUP$Parser$result;
 
726
 
 
727
          /*. . . . . . . . . . . . . . . . . . . .*/
 
728
          case 24: // funcexpr ::= CEIL LPAREN expr RPAREN 
 
729
            {
 
730
              Double RESULT =null;
 
731
                int eleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
 
732
                int eright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
 
733
                Double e = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
 
734
                 RESULT = new Double(Math.ceil(e)); 
 
735
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",5, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
736
            }
 
737
          return CUP$Parser$result;
 
738
 
 
739
          /*. . . . . . . . . . . . . . . . . . . .*/
 
740
          case 23: // funcexpr ::= POW LPAREN expr COMMA expr RPAREN 
 
741
            {
 
742
              Double RESULT =null;
 
743
                int baseleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
 
744
                int baseright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right;
 
745
                Double base = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value;
 
746
                int exponentleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
 
747
                int exponentright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
 
748
                Double exponent = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
 
749
                 RESULT = new Double(Math.pow(base, exponent)); 
 
750
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",5, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
751
            }
 
752
          return CUP$Parser$result;
 
753
 
 
754
          /*. . . . . . . . . . . . . . . . . . . .*/
 
755
          case 22: // funcexpr ::= FLOOR LPAREN expr RPAREN 
 
756
            {
 
757
              Double RESULT =null;
 
758
                int eleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
 
759
                int eright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
 
760
                Double e = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
 
761
                 RESULT = new Double(Math.floor(e)); 
 
762
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",5, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
763
            }
 
764
          return CUP$Parser$result;
 
765
 
 
766
          /*. . . . . . . . . . . . . . . . . . . .*/
 
767
          case 21: // funcexpr ::= RINT LPAREN expr RPAREN 
 
768
            {
 
769
              Double RESULT =null;
 
770
                int eleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
 
771
                int eright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
 
772
                Double e = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
 
773
                 RESULT = new Double(Math.rint(e)); 
 
774
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",5, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
775
            }
 
776
          return CUP$Parser$result;
 
777
 
 
778
          /*. . . . . . . . . . . . . . . . . . . .*/
 
779
          case 20: // funcexpr ::= TAN LPAREN expr RPAREN 
 
780
            {
 
781
              Double RESULT =null;
 
782
                int eleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
 
783
                int eright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
 
784
                Double e = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
 
785
                 RESULT = new Double(Math.tan(e)); 
 
786
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",5, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
787
            }
 
788
          return CUP$Parser$result;
 
789
 
 
790
          /*. . . . . . . . . . . . . . . . . . . .*/
 
791
          case 19: // funcexpr ::= COS LPAREN expr RPAREN 
 
792
            {
 
793
              Double RESULT =null;
 
794
                int eleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
 
795
                int eright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
 
796
                Double e = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
 
797
                 RESULT = new Double(Math.cos(e)); 
 
798
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",5, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
799
            }
 
800
          return CUP$Parser$result;
 
801
 
 
802
          /*. . . . . . . . . . . . . . . . . . . .*/
 
803
          case 18: // funcexpr ::= SIN LPAREN expr RPAREN 
 
804
            {
 
805
              Double RESULT =null;
 
806
                int eleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
 
807
                int eright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
 
808
                Double e = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
 
809
                 RESULT = new Double(Math.sin(e)); 
 
810
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",5, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
811
            }
 
812
          return CUP$Parser$result;
 
813
 
 
814
          /*. . . . . . . . . . . . . . . . . . . .*/
 
815
          case 17: // funcexpr ::= EXP LPAREN expr RPAREN 
 
816
            {
 
817
              Double RESULT =null;
 
818
                int eleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
 
819
                int eright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
 
820
                Double e = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
 
821
                 RESULT = new Double(Math.exp(e)); 
 
822
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",5, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
823
            }
 
824
          return CUP$Parser$result;
 
825
 
 
826
          /*. . . . . . . . . . . . . . . . . . . .*/
 
827
          case 16: // funcexpr ::= LOG LPAREN expr RPAREN 
 
828
            {
 
829
              Double RESULT =null;
 
830
                int eleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
 
831
                int eright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
 
832
                Double e = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
 
833
                 RESULT = new Double(Math.log(e)); 
 
834
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",5, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
835
            }
 
836
          return CUP$Parser$result;
 
837
 
 
838
          /*. . . . . . . . . . . . . . . . . . . .*/
 
839
          case 15: // funcexpr ::= SQRT LPAREN expr RPAREN 
 
840
            {
 
841
              Double RESULT =null;
 
842
                int eleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
 
843
                int eright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
 
844
                Double e = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
 
845
                 RESULT = new Double(Math.sqrt(e)); 
 
846
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",5, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
847
            }
 
848
          return CUP$Parser$result;
 
849
 
 
850
          /*. . . . . . . . . . . . . . . . . . . .*/
 
851
          case 14: // funcexpr ::= ABS LPAREN expr RPAREN 
 
852
            {
 
853
              Double RESULT =null;
 
854
                int eleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
 
855
                int eright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
 
856
                Double e = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
 
857
                 RESULT = new Double(Math.abs(e)); 
 
858
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("funcexpr",5, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
859
            }
 
860
          return CUP$Parser$result;
 
861
 
 
862
          /*. . . . . . . . . . . . . . . . . . . .*/
 
863
          case 13: // varexpr ::= VARIABLE 
 
864
            {
 
865
              Double RESULT =null;
 
866
                int vleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
867
                int vright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
868
                String v = (String)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
869
                 if (parser.getSymbols().containsKey(v)) 
 
870
                     RESULT = (Double) parser.getSymbols().get(v); 
 
871
                   else 
 
872
                     throw new IllegalStateException("Unknown symbol '" + v + "'!"); 
 
873
                
 
874
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("varexpr",4, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
875
            }
 
876
          return CUP$Parser$result;
 
877
 
 
878
          /*. . . . . . . . . . . . . . . . . . . .*/
 
879
          case 12: // opexpr ::= expr DIVISION expr 
 
880
            {
 
881
              Double RESULT =null;
 
882
                int lleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
 
883
                int lright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
 
884
                Double l = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
 
885
                int rleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
886
                int rright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
887
                Double r = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
888
                 RESULT = new Double(l.doubleValue() / r.doubleValue()); 
 
889
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("opexpr",3, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
890
            }
 
891
          return CUP$Parser$result;
 
892
 
 
893
          /*. . . . . . . . . . . . . . . . . . . .*/
 
894
          case 11: // opexpr ::= expr TIMES expr 
 
895
            {
 
896
              Double RESULT =null;
 
897
                int lleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
 
898
                int lright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
 
899
                Double l = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
 
900
                int rleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
901
                int rright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
902
                Double r = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
903
                 RESULT = new Double(l.doubleValue() * r.doubleValue()); 
 
904
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("opexpr",3, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
905
            }
 
906
          return CUP$Parser$result;
 
907
 
 
908
          /*. . . . . . . . . . . . . . . . . . . .*/
 
909
          case 10: // opexpr ::= expr MINUS expr 
 
910
            {
 
911
              Double RESULT =null;
 
912
                int lleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
 
913
                int lright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
 
914
                Double l = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
 
915
                int rleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
916
                int rright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
917
                Double r = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
918
                 RESULT = new Double(l.doubleValue() - r.doubleValue()); 
 
919
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("opexpr",3, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
920
            }
 
921
          return CUP$Parser$result;
 
922
 
 
923
          /*. . . . . . . . . . . . . . . . . . . .*/
 
924
          case 9: // opexpr ::= expr PLUS expr 
 
925
            {
 
926
              Double RESULT =null;
 
927
                int lleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
 
928
                int lright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
 
929
                Double l = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
 
930
                int rleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
931
                int rright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
932
                Double r = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
933
                 RESULT = new Double(l.doubleValue() + r.doubleValue()); 
 
934
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("opexpr",3, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
935
            }
 
936
          return CUP$Parser$result;
 
937
 
 
938
          /*. . . . . . . . . . . . . . . . . . . .*/
 
939
          case 8: // expr ::= funcexpr 
 
940
            {
 
941
              Double RESULT =null;
 
942
                int fleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
943
                int fright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
944
                Double f = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
945
                 RESULT = f; 
 
946
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("expr",2, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
947
            }
 
948
          return CUP$Parser$result;
 
949
 
 
950
          /*. . . . . . . . . . . . . . . . . . . .*/
 
951
          case 7: // expr ::= varexpr 
 
952
            {
 
953
              Double RESULT =null;
 
954
                int vleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
955
                int vright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
956
                Double v = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
957
                 RESULT = v; 
 
958
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("expr",2, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
959
            }
 
960
          return CUP$Parser$result;
 
961
 
 
962
          /*. . . . . . . . . . . . . . . . . . . .*/
 
963
          case 6: // expr ::= opexpr 
 
964
            {
 
965
              Double RESULT =null;
 
966
                int oleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
967
                int oright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
968
                Double o = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
969
                 RESULT = o; 
 
970
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("expr",2, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
971
            }
 
972
          return CUP$Parser$result;
 
973
 
 
974
          /*. . . . . . . . . . . . . . . . . . . .*/
 
975
          case 5: // expr ::= LPAREN expr RPAREN 
 
976
            {
 
977
              Double RESULT =null;
 
978
                int eleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
 
979
                int eright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
 
980
                Double e = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
 
981
                 RESULT = e; 
 
982
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("expr",2, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
983
            }
 
984
          return CUP$Parser$result;
 
985
 
 
986
          /*. . . . . . . . . . . . . . . . . . . .*/
 
987
          case 4: // expr ::= NUMBER 
 
988
            {
 
989
              Double RESULT =null;
 
990
                int nleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
991
                int nright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
992
                Double n = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
993
                 RESULT = n; 
 
994
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("expr",2, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
995
            }
 
996
          return CUP$Parser$result;
 
997
 
 
998
          /*. . . . . . . . . . . . . . . . . . . .*/
 
999
          case 3: // expr_part ::= expr 
 
1000
            {
 
1001
              Object RESULT =null;
 
1002
                int eleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
 
1003
                int eright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
 
1004
                Double e = (Double)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
 
1005
                 parser.setResult(e); 
 
1006
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("expr_part",1, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
1007
            }
 
1008
          return CUP$Parser$result;
 
1009
 
 
1010
          /*. . . . . . . . . . . . . . . . . . . .*/
 
1011
          case 2: // expr_list ::= expr_part 
 
1012
            {
 
1013
              Object RESULT =null;
 
1014
 
 
1015
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("expr_list",0, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
1016
            }
 
1017
          return CUP$Parser$result;
 
1018
 
 
1019
          /*. . . . . . . . . . . . . . . . . . . .*/
 
1020
          case 1: // $START ::= expr_list EOF 
 
1021
            {
 
1022
              Object RESULT =null;
 
1023
                int start_valleft = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
 
1024
                int start_valright = ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
 
1025
                Object start_val = (Object)((weka.core.parser.java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
 
1026
                RESULT = start_val;
 
1027
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("$START",0, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
1028
            }
 
1029
          /* ACCEPT */
 
1030
          CUP$Parser$parser.done_parsing();
 
1031
          return CUP$Parser$result;
 
1032
 
 
1033
          /*. . . . . . . . . . . . . . . . . . . .*/
 
1034
          case 0: // expr_list ::= expr_list expr_part 
 
1035
            {
 
1036
              Object RESULT =null;
 
1037
 
 
1038
              CUP$Parser$result = parser.getSymbolFactory().newSymbol("expr_list",0, ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((weka.core.parser.java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
 
1039
            }
 
1040
          return CUP$Parser$result;
 
1041
 
 
1042
          /* . . . . . .*/
 
1043
          default:
 
1044
            throw new Exception(
 
1045
               "Invalid action number found in internal parse table");
 
1046
 
 
1047
        }
 
1048
    }
 
1049
}
 
1050