KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > joram > shared > selectors > Filter


1 /*
2  * JORAM: Java(TM) Open Reliable Asynchronous Messaging
3  * Copyright (C) 2001 - 2004 ScalAgent Distributed Technologies
4  * Copyright (C) 2004 - Bull SA
5  * Copyright (C) 1996 - 2000 Dyade
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20  * USA.
21  *
22  * Initial developer(s): Frederic Maistre (INRIA)
23  * Contributor(s): Nicolas Tachker (Bull SA)
24  * ScalAgent Distributed Technologies
25  */

26
27 //----------------------------------------------------
28
// The following code was generated by CUP v0.10j
29
// Fri Jun 18 16:25:44 CEST 2004
30
//----------------------------------------------------
31

32 package org.objectweb.joram.shared.selectors;
33
34 import java_cup.runtime.*;
35 import org.objectweb.joram.shared.messages.Message;
36
37 /** CUP v0.10j generated parser.
38   * @version Fri Jun 18 16:25:44 CEST 2004
39   */

40 public class Filter extends java_cup.runtime.lr_parser {
41
42   /** Default constructor. */
43   public Filter() {super();}
44
45   /** Constructor which sets the default scanner. */
46   public Filter(java_cup.runtime.Scanner s) {super(s);}
47
48   /** Production table. */
49   protected static final short _production_table[][] =
50     unpackFromStrings(new String JavaDoc[] {
51     "\000\053\000\002\003\005\000\002\002\004\000\002\003" +
52     "\005\000\002\003\004\000\002\003\003\000\002\004\005" +
53     "\000\002\004\005\000\002\004\005\000\002\004\005\000" +
54     "\002\004\005\000\002\004\005\000\002\004\005\000\002" +
55     "\004\007\000\002\004\007\000\002\004\007\000\002\004" +
56     "\010\000\002\004\005\000\002\004\006\000\002\004\007" +
57     "\000\002\004\010\000\002\004\005\000\002\004\006\000" +
58     "\002\004\003\000\002\005\005\000\002\005\003\000\002" +
59     "\006\005\000\002\006\005\000\002\006\005\000\002\006" +
60     "\005\000\002\006\004\000\002\006\004\000\002\006\004" +
61     "\000\002\006\003\000\002\007\005\000\002\007\003\000" +
62     "\002\007\003\000\002\007\003\000\002\007\003\000\002" +
63     "\007\003\000\002\007\003\000\002\007\003\000\002\007" +
64     "\003\000\002\007\003" });
65
66   /** Access to production table. */
67   public short[][] production_table() {return _production_table;}
68
69   /** Parse-action table. */
70   protected static final short[][] _action_table =
71     unpackFromStrings(new String JavaDoc[] {
72     "\000\126\000\034\004\010\005\004\011\021\024\017\034" +
73     "\013\035\022\036\006\037\011\040\005\041\024\042\007" +
74     "\043\014\044\012\001\002\000\032\004\010\005\004\011" +
75     "\046\034\013\035\022\036\006\037\011\040\005\041\024" +
76     "\042\007\043\044\044\012\001\002\000\042\002\uffda\004" +
77     "\uffda\005\uffda\007\uffda\010\uffda\012\uffda\014\uffda\015\uffda" +
78     "\016\uffda\017\uffda\020\uffda\021\uffda\022\uffda\023\uffda\026" +
79     "\uffda\027\uffda\001\002\000\042\002\uffdc\004\uffdc\005\uffdc" +
80     "\007\uffdc\010\uffdc\012\uffdc\014\uffdc\015\uffdc\016\uffdc\017" +
81     "\uffdc\020\uffdc\021\uffdc\022\uffdc\023\uffdc\026\uffdc\027\uffdc" +
82     "\001\002\000\042\002\uffd7\004\uffd7\005\uffd7\007\uffd7\010" +
83     "\uffd7\012\uffd7\014\uffd7\015\uffd7\016\uffd7\017\uffd7\020\uffd7" +
84     "\021\uffd7\022\uffd7\023\uffd7\026\uffd7\027\uffd7\001\002\000" +
85     "\032\004\010\005\004\011\046\034\013\035\022\036\006" +
86     "\037\011\040\005\041\024\042\007\043\044\044\012\001" +
87     "\002\000\066\002\uffdb\004\010\005\004\007\uffdb\010\uffdb" +
88     "\011\046\012\uffdb\014\uffdb\015\uffdb\016\uffdb\017\uffdb\020" +
89     "\uffdb\021\uffdb\022\uffdb\023\uffdb\026\uffdb\027\uffdb\034\013" +
90     "\035\022\036\006\037\011\040\005\041\024\042\007\043" +
91     "\044\044\012\001\002\000\042\002\uffd8\004\uffd8\005\uffd8" +
92     "\007\uffd8\010\uffd8\012\uffd8\014\uffd8\015\uffd8\016\uffd8\017" +
93     "\uffd8\020\uffd8\021\uffd8\022\uffd8\023\uffd8\026\uffd8\027\uffd8" +
94     "\001\002\000\042\002\uffde\004\uffde\005\uffde\007\uffde\010" +
95     "\uffde\012\uffde\014\uffde\015\uffde\016\uffde\017\uffde\020\uffde" +
96     "\021\uffde\022\uffde\023\uffde\026\uffde\027\uffde\001\002\000" +
97     "\052\002\uffdf\004\uffdf\005\uffdf\007\uffdf\010\uffdf\012\uffdf" +
98     "\014\uffdf\015\uffdf\016\uffdf\017\uffdf\020\uffdf\021\uffdf\022" +
99     "\uffdf\023\uffdf\024\100\025\076\026\uffdf\027\uffdf\030\077" +
100     "\032\101\001\002\000\042\002\uffe1\004\uffe1\005\uffe1\007" +
101     "\uffe1\010\uffe1\012\uffe1\014\uffe1\015\uffe1\016\uffe1\017\uffe1" +
102     "\020\uffe1\021\uffe1\022\uffe1\023\uffe1\026\uffe1\027\uffe1\001" +
103     "\002\000\010\002\075\022\070\023\071\001\002\000\034" +
104     "\004\010\005\004\011\021\024\017\034\013\035\022\036" +
105     "\006\037\011\040\005\041\024\042\007\043\014\044\012" +
106     "\001\002\000\042\002\uffeb\004\033\005\027\007\042\010" +
107     "\030\012\uffeb\014\040\015\031\016\043\017\035\020\034" +
108     "\021\032\022\uffeb\023\uffeb\026\036\027\037\001\002\000" +
109     "\034\004\010\005\004\011\021\024\017\034\013\035\022" +
110     "\036\006\037\011\040\005\041\024\042\007\043\014\044" +
111     "\012\001\002\000\042\002\uffdd\004\uffdd\005\uffdd\007\uffdd" +
112     "\010\uffdd\012\uffdd\014\uffdd\015\uffdd\016\uffdd\017\uffdd\020" +
113     "\uffdd\021\uffdd\022\uffdd\023\uffdd\026\uffdd\027\uffdd\001\002" +
114     "\000\012\002\ufffd\012\ufffd\022\ufffd\023\ufffd\001\002\000" +
115     "\042\002\uffd9\004\uffd9\005\uffd9\007\uffd9\010\uffd9\012\uffd9" +
116     "\014\uffd9\015\uffd9\016\uffd9\017\uffd9\020\uffd9\021\uffd9\022" +
117     "\uffd9\023\uffd9\026\uffd9\027\uffd9\001\002\000\010\012\067" +
118     "\022\070\023\071\001\002\000\040\004\033\005\027\007" +
119     "\042\010\030\012\041\014\040\015\031\016\043\017\035" +
120     "\020\034\021\032\022\uffeb\023\uffeb\026\036\027\037\001" +
121     "\002\000\032\004\010\005\004\011\046\034\013\035\022" +
122     "\036\006\037\011\040\005\041\024\042\007\043\044\044" +
123     "\012\001\002\000\032\004\010\005\004\011\046\034\013" +
124     "\035\022\036\006\037\011\040\005\041\024\042\007\043" +
125     "\044\044\012\001\002\000\032\004\010\005\004\011\046" +
126     "\034\013\035\022\036\006\037\011\040\005\041\024\042" +
127     "\007\043\044\044\012\001\002\000\032\004\010\005\004" +
128     "\011\046\034\013\035\022\036\006\037\011\040\005\041" +
129     "\024\042\007\043\044\044\012\001\002\000\032\004\010" +
130     "\005\004\011\046\034\013\035\022\036\006\037\011\040" +
131     "\005\041\024\042\007\043\044\044\012\001\002\000\032" +
132     "\004\010\005\004\011\046\034\013\035\022\036\006\037" +
133     "\011\040\005\041\024\042\007\043\044\044\012\001\002" +
134     "\000\032\004\010\005\004\011\046\034\013\035\022\036" +
135     "\006\037\011\040\005\041\024\042\007\043\044\044\012" +
136     "\001\002\000\032\004\010\005\004\011\046\034\013\035" +
137     "\022\036\006\037\011\040\005\041\024\042\007\043\044" +
138     "\044\012\001\002\000\032\004\010\005\004\011\046\034" +
139     "\013\035\022\036\006\037\011\040\005\041\024\042\007" +
140     "\043\044\044\012\001\002\000\032\004\010\005\004\011" +
141     "\046\034\013\035\022\036\006\037\011\040\005\041\024" +
142     "\042\007\043\044\044\012\001\002\000\042\002\uffe0\004" +
143     "\uffe0\005\uffe0\007\uffe0\010\uffe0\012\uffe0\014\uffe0\015\uffe0" +
144     "\016\uffe0\017\uffe0\020\uffe0\021\uffe0\022\uffe0\023\uffe0\026" +
145     "\uffe0\027\uffe0\001\002\000\032\004\010\005\004\011\046" +
146     "\034\013\035\022\036\006\037\011\040\005\041\024\042" +
147     "\007\043\044\044\012\001\002\000\032\004\010\005\004" +
148     "\011\046\034\013\035\022\036\006\037\011\040\005\041" +
149     "\024\042\007\043\044\044\012\001\002\000\042\002\uffdf" +
150     "\004\uffdf\005\uffdf\007\uffdf\010\uffdf\012\uffdf\014\uffdf\015" +
151     "\uffdf\016\uffdf\017\uffdf\020\uffdf\021\uffdf\022\uffdf\023\uffdf" +
152     "\026\uffdf\027\uffdf\001\002\000\022\002\ufff9\004\033\005" +
153     "\027\007\042\010\030\012\ufff9\022\ufff9\023\ufff9\001\002" +
154     "\000\032\004\010\005\004\011\046\034\013\035\022\036" +
155     "\006\037\011\040\005\041\024\042\007\043\044\044\012" +
156     "\001\002\000\014\004\033\005\027\007\042\010\030\012" +
157     "\041\001\002\000\042\002\uffe6\004\uffe6\005\uffe6\007\uffe6" +
158     "\010\uffe6\012\uffe6\014\uffe6\015\uffe6\016\uffe6\017\uffe6\020" +
159     "\uffe6\021\uffe6\022\uffe6\023\uffe6\026\uffe6\027\uffe6\001\002" +
160     "\000\022\002\ufffb\004\033\005\027\007\042\010\030\012" +
161     "\ufffb\022\ufffb\023\ufffb\001\002\000\014\004\033\005\027" +
162     "\007\042\010\030\022\053\001\002\000\032\004\010\005" +
163     "\004\011\046\034\013\035\022\036\006\037\011\040\005" +
164     "\041\024\042\007\043\044\044\012\001\002\000\022\002" +
165     "\ufff4\004\033\005\027\007\042\010\030\012\ufff4\022\ufff4" +
166     "\023\ufff4\001\002\000\014\004\033\005\027\007\042\010" +
167     "\030\022\056\001\002\000\032\004\010\005\004\011\046" +
168     "\034\013\035\022\036\006\037\011\040\005\041\024\042" +
169     "\007\043\044\044\012\001\002\000\022\002\ufff5\004\033" +
170     "\005\027\007\042\010\030\012\ufff5\022\ufff5\023\ufff5\001" +
171     "\002\000\022\002\ufff8\004\033\005\027\007\042\010\030" +
172     "\012\ufff8\022\ufff8\023\ufff8\001\002\000\022\002\ufff7\004" +
173     "\033\005\027\007\042\010\030\012\ufff7\022\ufff7\023\ufff7" +
174     "\001\002\000\042\002\uffe8\004\uffe8\005\uffe8\007\042\010" +
175     "\030\012\uffe8\014\uffe8\015\uffe8\016\uffe8\017\uffe8\020\uffe8" +
176     "\021\uffe8\022\uffe8\023\uffe8\026\uffe8\027\uffe8\001\002\000" +
177     "\022\002\ufff6\004\033\005\027\007\042\010\030\012\ufff6" +
178     "\022\ufff6\023\ufff6\001\002\000\022\002\ufffa\004\033\005" +
179     "\027\007\042\010\030\012\ufffa\022\ufffa\023\ufffa\001\002" +
180     "\000\042\002\uffe5\004\uffe5\005\uffe5\007\uffe5\010\uffe5\012" +
181     "\uffe5\014\uffe5\015\uffe5\016\uffe5\017\uffe5\020\uffe5\021\uffe5" +
182     "\022\uffe5\023\uffe5\026\uffe5\027\uffe5\001\002\000\042\002" +
183     "\uffe7\004\uffe7\005\uffe7\007\042\010\030\012\uffe7\014\uffe7" +
184     "\015\uffe7\016\uffe7\017\uffe7\020\uffe7\021\uffe7\022\uffe7\023" +
185     "\uffe7\026\uffe7\027\uffe7\001\002\000\012\002\ufffc\012\ufffc" +
186     "\022\ufffc\023\ufffc\001\002\000\034\004\010\005\004\011" +
187     "\021\024\017\034\013\035\022\036\006\037\011\040\005" +
188     "\041\024\042\007\043\014\044\012\001\002\000\034\004" +
189     "\010\005\004\011\021\024\017\034\013\035\022\036\006" +
190     "\037\011\040\005\041\024\042\007\043\014\044\012\001" +
191     "\002\000\012\002\001\012\001\022\070\023\001\001\002" +
192     "\000\012\002\uffff\012\uffff\022\uffff\023\uffff\001\002\000" +
193     "\012\002\ufffe\012\ufffe\022\ufffe\023\ufffe\001\002\000\004" +
194     "\002\000\001\002\000\004\044\123\001\002\000\004\011" +
195     "\120\001\002\000\006\025\105\030\106\001\002\000\006" +
196     "\024\102\033\103\001\002\000\004\033\104\001\002\000" +
197     "\012\002\uffed\012\uffed\022\uffed\023\uffed\001\002\000\012" +
198     "\002\uffec\012\uffec\022\uffec\023\uffec\001\002\000\004\044" +
199     "\115\001\002\000\004\011\107\001\002\000\004\044\111" +
200     "\001\002\000\006\012\113\013\112\001\002\000\006\012" +
201     "\uffe9\013\uffe9\001\002\000\004\044\114\001\002\000\012" +
202     "\002\ufff2\012\ufff2\022\ufff2\023\ufff2\001\002\000\006\012" +
203     "\uffea\013\uffea\001\002\000\014\002\ufff0\012\ufff0\022\ufff0" +
204     "\023\ufff0\031\116\001\002\000\004\044\117\001\002\000" +
205     "\012\002\uffee\012\uffee\022\uffee\023\uffee\001\002\000\004" +
206     "\044\111\001\002\000\006\012\122\013\112\001\002\000" +
207     "\012\002\ufff3\012\ufff3\022\ufff3\023\ufff3\001\002\000\014" +
208     "\002\ufff1\012\ufff1\022\ufff1\023\ufff1\031\124\001\002\000" +
209     "\004\044\125\001\002\000\012\002\uffef\012\uffef\022\uffef" +
210     "\023\uffef\001\002\000\042\002\uffe2\004\033\005\027\007" +
211     "\042\010\030\012\uffe2\014\uffe2\015\uffe2\016\uffe2\017\uffe2" +
212     "\020\uffe2\021\uffe2\022\uffe2\023\uffe2\026\uffe2\027\uffe2\001" +
213     "\002\000\042\002\uffe4\004\uffe4\005\uffe4\007\042\010\030" +
214     "\012\uffe4\014\uffe4\015\uffe4\016\uffe4\017\uffe4\020\uffe4\021" +
215     "\uffe4\022\uffe4\023\uffe4\026\uffe4\027\uffe4\001\002\000\042" +
216     "\002\uffe3\004\uffe3\005\uffe3\007\uffe3\010\uffe3\012\uffe3\014" +
217     "\uffe3\015\uffe3\016\uffe3\017\uffe3\020\uffe3\021\uffe3\022\uffe3" +
218     "\023\uffe3\026\uffe3\027\uffe3\001\002" });
219
220   /** Access to parse-action table. */
221   public short[][] action_table() {return _action_table;}
222
223   /** <code>reduce_goto</code> table. */
224   protected static final short[][] _reduce_table =
225     unpackFromStrings(new String JavaDoc[] {
226     "\000\126\000\012\003\015\004\022\006\017\007\014\001" +
227     "\001\000\006\006\127\007\014\001\001\000\002\001\001" +
228     "\000\002\001\001\000\002\001\001\000\006\006\126\007" +
229     "\014\001\001\000\006\006\125\007\014\001\001\000\002" +
230     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
231     "\001\000\002\001\001\000\012\003\073\004\022\006\017" +
232     "\007\014\001\001\000\002\001\001\000\012\003\024\004" +
233     "\022\006\025\007\014\001\001\000\002\001\001\000\002" +
234     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
235     "\001\000\006\006\065\007\014\001\001\000\006\006\064" +
236     "\007\014\001\001\000\006\006\063\007\014\001\001\000" +
237     "\006\006\062\007\014\001\001\000\006\006\061\007\014" +
238     "\001\001\000\006\006\060\007\014\001\001\000\006\006" +
239     "\057\007\014\001\001\000\006\006\054\007\014\001\001" +
240     "\000\006\006\051\007\014\001\001\000\006\006\050\007" +
241     "\014\001\001\000\002\001\001\000\006\006\047\007\014" +
242     "\001\001\000\006\006\044\007\014\001\001\000\002\001" +
243     "\001\000\002\001\001\000\006\006\046\007\014\001\001" +
244     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
245     "\002\001\001\000\006\006\053\007\014\001\001\000\002" +
246     "\001\001\000\002\001\001\000\006\006\056\007\014\001" +
247     "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
248     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
249     "\002\001\001\000\002\001\001\000\002\001\001\000\012" +
250     "\003\072\004\022\006\017\007\014\001\001\000\012\003" +
251     "\071\004\022\006\017\007\014\001\001\000\002\001\001" +
252     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
253     "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
254     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
255     "\001\000\002\001\001\000\002\001\001\000\004\005\107" +
256     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
257     "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
258     "\000\002\001\001\000\002\001\001\000\004\005\120\001" +
259     "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
260     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
261     "\002\001\001\000\002\001\001" });
262
263   /** Access to <code>reduce_goto</code> table. */
264   public short[][] reduce_table() {return _reduce_table;}
265
266   /** Instance of action encapsulation class. */
267   protected CUP$Filter$actions action_obj;
268
269   /** Action encapsulation object initializer. */
270   protected void init_actions()
271     {
272       action_obj = new CUP$Filter$actions(this, message, syntaxType);
273     }
274
275   /** Invoke a user supplied parse action. */
276   public java_cup.runtime.Symbol do_action(
277     int act_num,
278     java_cup.runtime.lr_parser parser,
279     java.util.Stack JavaDoc stack,
280     int top)
281     throws java.lang.Exception JavaDoc
282   {
283     /* call code in generated class */
284     return action_obj.CUP$Filter$do_action(act_num, parser, stack, top);
285   }
286
287   /** Indicates start state. */
288   public int start_state() {return 0;}
289   /** Indicates start production. */
290   public int start_production() {return 1;}
291
292   /** <code>EOF</code> Symbol index. */
293   public int EOF_sym() {return 0;}
294
295   /** <code>error</code> Symbol index. */
296   public int error_sym() {return 1;}
297
298
299
300  
301   private Message message;
302   private String JavaDoc syntaxType;
303
304   /** Constructor which sets the default scanner. */
305   public Filter(Scanner s,
306                 Message message,
307                 String JavaDoc syntaxType) {
308     super(s);
309     this.message = message;
310     this.syntaxType = syntaxType;
311   }
312
313   /* Change the method report_error so it will display the line and
314      column of where the error occurred in the input as well as the
315      reason for the error which is passed into the method in the
316      String 'message'. */

317   public void report_error(String JavaDoc message, Object JavaDoc info) {
318  
319     /* Create a StringBuffer called 'm' with the string 'Error' in it. */
320     StringBuffer JavaDoc m = new StringBuffer JavaDoc("Error");
321  
322     /* Check if the information passed to the method is the same
323        type as the type Symbol. */

324     if (info instanceof Symbol) {
325       /* Declare a Symbol object 's' with the
326          information in the object info that is being typecasted
327          as a Symbol object. */

328       Symbol s = ((Symbol) info);
329    
330       /* Check if the line number in the input is greater or
331          equal to zero. */

332       if (s.left >= 0) {
333         /* Add to the end of the StringBuffer error message
334            the line number of the error in the input. */

335         m.append(" in line "+(s.left+1));
336         /* Check if the column number in the input is greater
337            or equal to zero. */

338         if (s.right >= 0)
339           /* Add to the end of the StringBuffer error message
340              the column number of the error in the input. */

341           m.append(", column "+(s.right+1));
342       }
343     }
344    
345     /* Add to the end of the StringBuffer error message created in
346        this method the message that was passed into this method. */

347     m.append(" : "+message);
348    
349     /* Print the contents of the StringBuffer 'm', which contains
350        an error message, out on a line. */

351     //System.err.println(m);
352
throw new Error JavaDoc(m.toString());
353   }
354    
355   /* Change the method report_fatal_error so when it reports a fatal
356      error it will display the line and column number of where the
357      fatal error occurred in the input as well as the reason for the
358      fatal error which is passed into the method in the object
359      'message' and then exit.*/

360   public void report_fatal_error(String JavaDoc message, Object JavaDoc info) {
361     report_error(message, info);
362     //System.exit(1);
363
}
364
365 }
366
367 /** Cup generated class to encapsulate user supplied action code.*/
368 class CUP$Filter$actions {
369
370
371   private Message message;
372   private String JavaDoc syntaxType;
373
374   /** Constructor */
375   CUP$Filter$actions(Filter parser, Message message, String JavaDoc syntaxType) {
376     this.parser = parser;
377     this.message = message;
378     this.syntaxType = syntaxType;
379   }
380
381
382   private final Filter parser;
383
384   /** Constructor */
385   CUP$Filter$actions(Filter parser) {
386     this.parser = parser;
387   }
388
389   /** Method with the actual generated action code. */
390   public final java_cup.runtime.Symbol CUP$Filter$do_action(
391     int CUP$Filter$act_num,
392     java_cup.runtime.lr_parser CUP$Filter$parser,
393     java.util.Stack JavaDoc CUP$Filter$stack,
394     int CUP$Filter$top)
395     throws java.lang.Exception JavaDoc
396     {
397       /* Symbol object for return from actions */
398       java_cup.runtime.Symbol CUP$Filter$result;
399
400       /* select the action based on the action number */
401       switch (CUP$Filter$act_num)
402         {
403           /*. . . . . . . . . . . . . . . . . . . .*/
404           case 42: // lit_expr ::= BOOLEAN
405
{
406               Object JavaDoc RESULT = null;
407         int boolleft = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left;
408         int boolright = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right;
409         Boolean JavaDoc bool = (Boolean JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-0)).value;
410         
411                   RESULT = bool;
412                 
413               CUP$Filter$result = new java_cup.runtime.Symbol(5/*lit_expr*/, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right, RESULT);
414             }
415           return CUP$Filter$result;
416
417           /*. . . . . . . . . . . . . . . . . . . .*/
418           case 41: // lit_expr ::= STRING
419
{
420               Object JavaDoc RESULT = null;
421         int stleft = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left;
422         int stright = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right;
423         String JavaDoc st = (String JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-0)).value;
424         
425                   RESULT = st.substring(1, st.length() - 1);
426                 
427               CUP$Filter$result = new java_cup.runtime.Symbol(5/*lit_expr*/, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right, RESULT);
428             }
429           return CUP$Filter$result;
430
431           /*. . . . . . . . . . . . . . . . . . . .*/
432           case 40: // lit_expr ::= SHORT
433
{
434               Object JavaDoc RESULT = null;
435         int numleft = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left;
436         int numright = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right;
437         Short JavaDoc num = (Short JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-0)).value;
438         
439                   RESULT = num;
440                 
441               CUP$Filter$result = new java_cup.runtime.Symbol(5/*lit_expr*/, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right, RESULT);
442             }
443           return CUP$Filter$result;
444
445           /*. . . . . . . . . . . . . . . . . . . .*/
446           case 39: // lit_expr ::= INT
447
{
448               Object JavaDoc RESULT = null;
449         int numleft = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left;
450         int numright = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right;
451         Integer JavaDoc num = (Integer JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-0)).value;
452         
453                   RESULT = num;
454                 
455               CUP$Filter$result = new java_cup.runtime.Symbol(5/*lit_expr*/, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right, RESULT);
456             }
457           return CUP$Filter$result;
458
459           /*. . . . . . . . . . . . . . . . . . . .*/
460           case 38: // lit_expr ::= MIN_LONG
461
{
462               Object JavaDoc RESULT = null;
463         int numleft = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left;
464         int numright = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right;
465         Long JavaDoc num = (Long JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-0)).value;
466         
467                   RESULT = num;
468                 
469               CUP$Filter$result = new java_cup.runtime.Symbol(5/*lit_expr*/, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right, RESULT);
470             }
471           return CUP$Filter$result;
472
473           /*. . . . . . . . . . . . . . . . . . . .*/
474           case 37: // lit_expr ::= LONG
475
{
476               Object JavaDoc RESULT = null;
477         int numleft = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left;
478         int numright = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right;
479         Long JavaDoc num = (Long JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-0)).value;
480         
481                   RESULT = num;
482                 
483               CUP$Filter$result = new java_cup.runtime.Symbol(5/*lit_expr*/, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right, RESULT);
484             }
485           return CUP$Filter$result;
486
487           /*. . . . . . . . . . . . . . . . . . . .*/
488           case 36: // lit_expr ::= FLOAT
489
{
490               Object JavaDoc RESULT = null;
491         int numleft = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left;
492         int numright = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right;
493         Float JavaDoc num = (Float JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-0)).value;
494         
495                   RESULT = num;
496                 
497               CUP$Filter$result = new java_cup.runtime.Symbol(5/*lit_expr*/, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right, RESULT);
498             }
499           return CUP$Filter$result;
500
501           /*. . . . . . . . . . . . . . . . . . . .*/
502           case 35: // lit_expr ::= DOUBLE
503
{
504               Object JavaDoc RESULT = null;
505         int numleft = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left;
506         int numright = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right;
507         Double JavaDoc num = (Double JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-0)).value;
508         
509                   RESULT = num;
510                 
511               CUP$Filter$result = new java_cup.runtime.Symbol(5/*lit_expr*/, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right, RESULT);
512             }
513           return CUP$Filter$result;
514
515           /*. . . . . . . . . . . . . . . . . . . .*/
516           case 34: // lit_expr ::= ID
517
{
518               Object JavaDoc RESULT = null;
519         int idleft = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left;
520         int idright = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right;
521         String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-0)).value;
522         
523                   RESULT = Interpreter.interpret(id, message, syntaxType);
524                 
525               CUP$Filter$result = new java_cup.runtime.Symbol(5/*lit_expr*/, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right, RESULT);
526             }
527           return CUP$Filter$result;
528
529           /*. . . . . . . . . . . . . . . . . . . .*/
530           case 33: // lit_expr ::= LPAREN expr RPAREN
531
{
532               Object JavaDoc RESULT = null;
533         int eleft = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-1)).left;
534         int eright = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-1)).right;
535         Object JavaDoc e = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-1)).value;
536         
537                   RESULT = e;
538                 
539               CUP$Filter$result = new java_cup.runtime.Symbol(5/*lit_expr*/, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-2)).left, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right, RESULT);
540             }
541           return CUP$Filter$result;
542
543           /*. . . . . . . . . . . . . . . . . . . .*/
544           case 32: // expr ::= lit_expr
545
{
546               Object JavaDoc RESULT = null;
547         int litleft = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left;
548         int litright = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right;
549         Object JavaDoc lit = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-0)).value;
550         
551                   RESULT = lit;
552                 
553               CUP$Filter$result = new java_cup.runtime.Symbol(4/*expr*/, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right, RESULT);
554             }
555           return CUP$Filter$result;
556
557           /*. . . . . . . . . . . . . . . . . . . .*/
558           case 31: // expr ::= MIN_LONG expr
559
{
560               Object JavaDoc RESULT = null;
561         int eleft = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left;
562         int eright = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right;
563         Object JavaDoc e = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-0)).value;
564          
565                   RESULT = e;
566                 
567               CUP$Filter$result = new java_cup.runtime.Symbol(4/*expr*/, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-1)).left, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right, RESULT);
568             }
569           return CUP$Filter$result;
570
571           /*. . . . . . . . . . . . . . . . . . . .*/
572           case 30: // expr ::= MINUS expr
573
{
574               Object JavaDoc RESULT = null;
575         int eleft = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left;
576         int eright = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right;
577         Object JavaDoc e = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-0)).value;
578         
579                   if (e instanceof Double JavaDoc)
580                     RESULT = new Double JavaDoc(-((Double JavaDoc) e).doubleValue());
581                   else if (e instanceof Float JavaDoc)
582                     RESULT = new Float JavaDoc(-((Float JavaDoc) e).floatValue());
583                   else if (e instanceof Long JavaDoc)
584                     RESULT = new Long JavaDoc(-((Long JavaDoc) e).longValue());
585                   else if (e instanceof Integer JavaDoc)
586                     RESULT = new Integer JavaDoc(-((Integer JavaDoc) e).intValue());
587                  // else if (e instanceof Short)
588
// RESULT = new Short(-((Short) e).shortValue());
589
else
590                     RESULT = null;
591                 
592               CUP$Filter$result = new java_cup.runtime.Symbol(4/*expr*/, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-1)).left, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right, RESULT);
593             }
594           return CUP$Filter$result;
595
596           /*. . . . . . . . . . . . . . . . . . . .*/
597           case 29: // expr ::= PLUS expr
598
{
599               Object JavaDoc RESULT = null;
600         int eleft = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left;
601         int eright = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right;
602         Object JavaDoc e = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-0)).value;
603         
604                   if (e instanceof Double JavaDoc)
605                     RESULT = (Double JavaDoc) e;
606                   else if (e instanceof Float JavaDoc)
607                     RESULT = (Float JavaDoc) e;
608                   else if (e instanceof Long JavaDoc)
609                     RESULT = (Long JavaDoc) e;
610                   else if (e instanceof Integer JavaDoc)
611                     RESULT = (Integer JavaDoc) e;
612                   else if (e instanceof Short JavaDoc)
613                     RESULT = (Short JavaDoc) e;
614                   else
615                     RESULT = null;
616                 
617               CUP$Filter$result = new java_cup.runtime.Symbol(4/*expr*/, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-1)).left, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right, RESULT);
618             }
619           return CUP$Filter$result;
620
621           /*. . . . . . . . . . . . . . . . . . . .*/
622           case 28: // expr ::= expr DIVIDE expr
623
{
624               Object JavaDoc RESULT = null;
625         int e1left = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-2)).left;
626         int e1right = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-2)).right;
627         Object JavaDoc e1 = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-2)).value;
628         int e2left = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left;
629         int e2right = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right;
630         Object JavaDoc e2 = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-0)).value;
631         
632                   if (e1 instanceof Number JavaDoc && e2 instanceof Number JavaDoc)
633                     RESULT = new Double JavaDoc(((Number JavaDoc) e1).doubleValue()
634                                         / ((Number JavaDoc) e2).doubleValue());
635                   else
636                     RESULT = null;
637                 
638               CUP$Filter$result = new java_cup.runtime.Symbol(4/*expr*/, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-2)).left, ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right, RESULT);
639             }
640           return CUP$Filter$result;
641
642           /*. . . . . . . . . . . . . . . . . . . .*/
643           case 27: // expr ::= expr TIMES expr
644
{
645               Object JavaDoc RESULT = null;
646         int e1left = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-2)).left;
647         int e1right = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-2)).right;
648         Object JavaDoc e1 = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-2)).value;
649         int e2left = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).left;
650         int e2right = ((java_cup.runtime.Symbol)CUP$Filter$stack.elementAt(CUP$Filter$top-0)).right;
651         Object JavaDoc e2 = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$Filter$stack.elementAt(CUP$Filter$top-0)).value;
652         
653                   if (e1 instanceof Number JavaDoc && e2 instanceof Number JavaDoc)
654                     RESULT = new Double JavaDoc(((Number JavaDoc) e1).doubleValue()
655                                         * ((<