KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > JFlex > LexParse


1
2 //----------------------------------------------------
3
// The following code was generated by CUP v0.10k
4
// Sun Nov 07 14:07:52 GMT+10:00 2004
5
//----------------------------------------------------
6

7 package JFlex;
8
9 import java.util.*;
10
11 /** CUP v0.10k generated parser.
12   * @version Sun Nov 07 14:07:52 GMT+10:00 2004
13   */

14 public class LexParse extends java_cup.runtime.lr_parser {
15
16   /** Default constructor. */
17   public LexParse() {super();}
18
19   /** Constructor which sets the default scanner. */
20   public LexParse(java_cup.runtime.Scanner s) {super(s);}
21
22   /** Production table. */
23   protected static final short _production_table[][] =
24     unpackFromStrings(new String JavaDoc[] {
25     "\000\110\000\002\002\004\000\002\006\006\000\002\006" +
26     "\002\000\002\003\002\000\002\003\004\000\002\003\003" +
27     "\000\002\004\003\000\002\004\003\000\002\004\006\000" +
28     "\002\004\004\000\002\022\004\000\002\022\011\000\002" +
29     "\022\010\000\002\022\003\000\002\005\007\000\002\005" +
30     "\005\000\002\005\003\000\002\014\003\000\002\014\004" +
31     "\000\002\014\002\000\002\014\005\000\002\024\004\000" +
32     "\002\024\003\000\002\017\005\000\002\017\002\000\002" +
33     "\016\005\000\002\016\003\000\002\016\004\000\002\023" +
34     "\003\000\002\023\002\000\002\007\005\000\002\007\003" +
35     "\000\002\007\003\000\002\010\004\000\002\010\003\000" +
36     "\002\011\003\000\002\011\004\000\002\011\004\000\002" +
37     "\012\004\000\002\012\004\000\002\012\004\000\002\012" +
38     "\005\000\002\012\006\000\002\012\005\000\002\012\003" +
39     "\000\002\012\003\000\002\012\003\000\002\012\003\000" +
40     "\002\012\003\000\002\012\003\000\002\013\004\000\002" +
41     "\013\005\000\002\013\005\000\002\013\006\000\002\013" +
42     "\006\000\002\013\007\000\002\020\004\000\002\020\003" +
43     "\000\002\020\004\000\002\020\003\000\002\020\004\000" +
44     "\002\020\003\000\002\020\004\000\002\020\003\000\002" +
45     "\015\005\000\002\015\003\000\002\021\003\000\002\021" +
46     "\003\000\002\021\003\000\002\021\003\000\002\021\003" +
47     "\000\002\021\003" });
48
49   /** Access to production table. */
50   public short[][] production_table() {return _production_table;}
51
52   /** Parse-action table. */
53   protected static final short[][] _action_table =
54     unpackFromStrings(new String JavaDoc[] {
55     "\000\152\000\006\002\uffff\040\004\001\002\000\014\003" +
56     "\007\013\ufffe\022\ufffe\023\ufffe\037\ufffe\001\002\000\004" +
57     "\002\006\001\002\000\004\002\001\001\002\000\012\013" +
58     "\ufffc\022\ufffc\023\ufffc\037\ufffc\001\002\000\012\013\011" +
59     "\022\015\023\014\037\013\001\002\000\050\003\113\004" +
60     "\uffe9\006\uffe9\010\uffe9\016\115\025\uffe9\026\uffe9\027\uffe9" +
61     "\030\uffe9\031\uffe9\032\uffe9\033\uffe9\044\uffe9\046\uffe9\047" +
62     "\uffe9\050\uffe9\051\uffe9\052\uffe9\053\uffe9\001\002\000\012" +
63     "\013\ufffd\022\ufffd\023\ufffd\037\ufffd\001\002\000\004\014" +
64     "\016\001\002\000\012\013\ufffa\022\ufffa\023\ufffa\037\ufffa" +
65     "\001\002\000\012\013\ufffb\022\ufffb\023\ufffb\037\ufffb\001" +
66     "\002\000\050\004\033\010\043\013\ufff8\022\ufff8\023\ufff8" +
67     "\025\023\026\030\027\017\030\041\031\034\032\031\037" +
68     "\ufff8\044\040\046\021\047\036\050\022\051\020\052\027" +
69     "\053\024\001\002\000\064\004\uffbd\005\uffbd\007\uffbd\010" +
70     "\uffbd\011\uffbd\024\uffbd\025\uffbd\026\uffbd\027\uffbd\030\uffbd" +
71     "\031\uffbd\032\uffbd\034\uffbd\035\uffbd\041\uffbd\042\uffbd\043" +
72     "\uffbd\044\uffbd\045\uffbd\046\uffbd\047\uffbd\050\uffbd\051\uffbd" +
73     "\052\uffbd\053\uffbd\001\002\000\062\004\uffd0\005\uffd0\007" +
74     "\uffd0\010\uffd0\024\uffd0\025\uffd0\026\uffd0\027\uffd0\030\uffd0" +
75     "\031\uffd0\032\uffd0\034\uffd0\035\uffd0\041\uffd0\042\uffd0\043" +
76     "\uffd0\044\uffd0\045\uffd0\046\uffd0\047\uffd0\050\uffd0\051\uffd0" +
77     "\052\uffd0\053\uffd0\001\002\000\062\004\uffd1\005\uffd1\007" +
78     "\uffd1\010\uffd1\024\uffd1\025\uffd1\026\uffd1\027\uffd1\030\uffd1" +
79     "\031\uffd1\032\uffd1\034\uffd1\035\uffd1\041\uffd1\042\uffd1\043" +
80     "\uffd1\044\uffd1\045\uffd1\046\uffd1\047\uffd1\050\uffd1\051\uffd1" +
81     "\052\uffd1\053\uffd1\001\002\000\036\004\033\010\043\025" +
82     "\023\026\030\027\017\030\041\031\034\032\031\046\021" +
83     "\047\036\050\022\051\020\052\027\053\024\001\002\000" +
84     "\064\004\uffbf\005\uffbf\007\uffbf\010\uffbf\011\uffbf\024\uffbf" +
85     "\025\uffbf\026\uffbf\027\uffbf\030\uffbf\031\uffbf\032\uffbf\034" +
86     "\uffbf\035\uffbf\041\uffbf\042\uffbf\043\uffbf\044\uffbf\045\uffbf" +
87     "\046\uffbf\047\uffbf\050\uffbf\051\uffbf\052\uffbf\053\uffbf\001" +
88     "\002\000\062\004\uffd5\005\uffd5\007\uffd5\010\uffd5\024\uffd5" +
89     "\025\uffd5\026\uffd5\027\uffd5\030\uffd5\031\uffd5\032\uffd5\034" +
90     "\uffd5\035\uffd5\041\uffd5\042\uffd5\043\uffd5\044\uffd5\045\uffd5" +
91     "\046\uffd5\047\uffd5\050\uffd5\051\uffd5\052\uffd5\053\uffd5\001" +
92     "\002\000\006\024\111\044\105\001\002\000\062\004\uffd3" +
93     "\005\uffd3\007\uffd3\010\uffd3\024\uffd3\025\uffd3\026\uffd3\027" +
94     "\uffd3\030\uffd3\031\uffd3\032\uffd3\034\uffd3\035\uffd3\041\uffd3" +
95     "\042\uffd3\043\uffd3\044\uffd3\045\uffd3\046\uffd3\047\uffd3\050" +
96     "\uffd3\051\uffd3\052\uffd3\053\uffd3\001\002\000\062\004\uffd2" +
97     "\005\uffd2\007\uffd2\010\uffd2\024\uffd2\025\uffd2\026\uffd2\027" +
98     "\uffd2\030\uffd2\031\uffd2\032\uffd2\034\uffd2\035\uffd2\041\uffd2" +
99     "\042\uffd2\043\uffd2\044\uffd2\045\uffd2\046\uffd2\047\uffd2\050" +
100     "\uffd2\051\uffd2\052\uffd2\053\uffd2\001\002\000\064\004\uffbe" +
101     "\005\uffbe\007\uffbe\010\uffbe\011\uffbe\024\uffbe\025\uffbe\026" +
102     "\uffbe\027\uffbe\030\uffbe\031\uffbe\032\uffbe\034\uffbe\035\uffbe" +
103     "\041\uffbe\042\uffbe\043\uffbe\044\uffbe\045\uffbe\046\uffbe\047" +
104     "\uffbe\050\uffbe\051\uffbe\052\uffbe\053\uffbe\001\002\000\064" +
105     "\004\uffba\005\uffba\007\uffba\010\uffba\011\uffba\024\uffba\025" +
106     "\uffba\026\uffba\027\uffba\030\uffba\031\uffba\032\uffba\034\uffba" +
107     "\035\uffba\041\uffba\042\uffba\043\uffba\044\uffba\045\uffba\046" +
108     "\uffba\047\uffba\050\uffba\051\uffba\052\uffba\053\uffba\001\002" +
109     "\000\052\004\033\005\uffe2\007\uffe2\010\043\024\uffe2\025" +
110     "\023\026\030\027\017\030\041\031\034\032\031\034\uffe2" +
111     "\035\uffe2\044\uffe2\046\021\047\036\050\022\051\020\052" +
112     "\027\053\024\001\002\000\040\004\033\010\043\025\023" +
113     "\026\030\027\017\030\041\031\034\032\031\044\040\046" +
114     "\021\047\036\050\022\051\020\052\027\053\024\001\002" +
115     "\000\064\004\uffbb\005\uffbb\007\uffbb\010\uffbb\011\uffbb\024" +
116     "\uffbb\025\uffbb\026\uffbb\027\uffbb\030\uffbb\031\uffbb\032\uffbb" +
117     "\034\uffbb\035\uffbb\041\uffbb\042\uffbb\043\uffbb\044\uffbb\045" +
118     "\uffbb\046\uffbb\047\uffbb\050\uffbb\051\uffbb\052\uffbb\053\uffbb" +
119     "\001\002\000\062\004\uffd4\005\uffd4\007\uffd4\010\uffd4\024" +
120     "\uffd4\025\uffd4\026\uffd4\027\uffd4\030\uffd4\031\uffd4\032\uffd4" +
121     "\034\uffd4\035\uffd4\041\uffd4\042\uffd4\043\uffd4\044\uffd4\045" +
122     "\uffd4\046\uffd4\047\uffd4\050\uffd4\051\uffd4\052\uffd4\053\uffd4" +
123     "\001\002\000\036\004\033\010\043\025\023\026\030\027" +
124     "\017\030\041\031\034\032\031\046\021\047\036\050\022" +
125     "\051\020\052\027\053\024\001\002\000\052\004\uffdf\005" +
126     "\uffdf\007\uffdf\010\uffdf\024\uffdf\025\uffdf\026\uffdf\027\uffdf" +
127     "\030\uffdf\031\uffdf\032\uffdf\034\uffdf\035\uffdf\044\uffdf\046" +
128     "\uffdf\047\uffdf\050\uffdf\051\uffdf\052\uffdf\053\uffdf\001\002" +
129     "\000\016\005\uffe1\007\uffe1\024\uffe1\034\uffe1\035\uffe1\044" +
130     "\uffe1\001\002\000\064\004\uffbc\005\uffbc\007\uffbc\010\uffbc" +
131     "\011\uffbc\024\uffbc\025\uffbc\026\uffbc\027\uffbc\030\uffbc\031" +
132     "\uffbc\032\uffbc\034\uffbc\035\uffbc\041\uffbc\042\uffbc\043\uffbc" +
133     "\044\uffbc\045\uffbc\046\uffbc\047\uffbc\050\uffbc\051\uffbc\052" +
134     "\uffbc\053\uffbc\001\002\000\062\004\uffde\005\uffde\007\uffde" +
135     "\010\uffde\024\uffde\025\uffde\026\uffde\027\uffde\030\uffde\031" +
136     "\uffde\032\uffde\034\uffde\035\uffde\041\076\042\074\043\075" +
137     "\044\uffde\045\077\046\uffde\047\uffde\050\uffde\051\uffde\052" +
138     "\uffde\053\uffde\001\002\000\032\006\047\011\050\012\046" +
139     "\025\023\026\030\027\017\030\041\031\034\032\031\051" +
140     "\054\052\051\053\053\001\002\000\026\011\uffc6\025\uffc6" +
141     "\026\uffc6\027\uffc6\030\uffc6\031\uffc6\032\uffc6\051\uffc6\052" +
142     "\uffc6\053\uffc6\001\002\000\026\011\uffc8\025\uffc8\026\uffc8" +
143     "\027\uffc8\030\uffc8\031\uffc8\032\uffc8\051\uffc8\052\uffc8\053" +
144     "\uffc8\001\002\000\024\025\023\026\030\027\017\030\041" +
145     "\031\034\032\031\051\054\052\051\053\053\001\002\000" +
146     "\030\011\065\012\064\025\023\026\030\027\017\030\041" +
147     "\031\034\032\031\051\054\052\051\053\053\001\002\000" +
148     "\062\004\uffcf\005\uffcf\007\uffcf\010\uffcf\024\uffcf\025\uffcf" +
149     "\026\uffcf\027\uffcf\030\uffcf\031\uffcf\032\uffcf\034\uffcf\035" +
150     "\uffcf\041\uffcf\042\uffcf\043\uffcf\044\uffcf\045\uffcf\046\uffcf" +
151     "\047\uffcf\050\uffcf\051\uffcf\052\uffcf\053\uffcf\001\002\000" +
152     "\026\011\uffc4\025\uffc4\026\uffc4\027\uffc4\030\uffc4\031\uffc4" +
153     "\032\uffc4\051\uffc4\052\uffc4\053\uffc4\001\002\000\026\011" +
154     "\061\025\023\026\030\027\017\030\041\031\034\032\031" +
155     "\051\054\052\062\053\063\001\002\000\026\011\uffc2\025" +
156     "\uffc2\026\uffc2\027\uffc2\030\uffc2\031\uffc2\032\uffc2\051\uffc2" +
157     "\052\uffc2\053\uffc2\001\002\000\030\011\uffc0\012\055\025" +
158     "\uffc0\026\uffc0\027\uffc0\030\uffc0\031\uffc0\032\uffc0\051\uffc0" +
159     "\052\uffc0\053\uffc0\001\002\000\004\051\056\001\002\000" +
160     "\026\011\uffc1\025\uffc1\026\uffc1\027\uffc1\030\uffc1\031\uffc1" +
161     "\032\uffc1\051\uffc1\052\uffc1\053\uffc1\001\002\000\026\011" +
162     "\uffc7\025\uffc7\026\uffc7\027\uffc7\030\uffc7\031\uffc7\032\uffc7" +
163     "\051\uffc7\052\uffc7\053\uffc7\001\002\000\026\011\uffc9\025" +
164     "\uffc9\026\uffc9\027\uffc9\030\uffc9\031\uffc9\032\uffc9\051\uffc9" +
165     "\052\uffc9\053\uffc9\001\002\000\062\004\uffce\005\uffce\007" +
166     "\uffce\010\uffce\024\uffce\025\uffce\026\uffce\027\uffce\030\uffce" +
167     "\031\uffce\032\uffce\034\uffce\035\uffce\041\uffce\042\uffce\043" +
168     "\uffce\044\uffce\045\uffce\046\uffce\047\uffce\050\uffce\051\uffce" +
169     "\052\uffce\053\uffce\001\002\000\026\011\uffc5\025\uffc5\026" +
170     "\uffc5\027\uffc5\030\uffc5\031\uffc5\032\uffc5\051\uffc5\052\uffc5" +
171     "\053\uffc5\001\002\000\026\011\uffc3\025\uffc3\026\uffc3\027" +
172     "\uffc3\030\uffc3\031\uffc3\032\uffc3\051\uffc3\052\uffc3\053\uffc3" +
173     "\001\002\000\024\025\023\026\030\027\017\030\041\031" +
174     "\034\032\031\051\054\052\051\053\053\001\002\000\062" +
175     "\004\uffcd\005\uffcd\007\uffcd\010\uffcd\024\uffcd\025\uffcd\026" +
176     "\uffcd\027\uffcd\030\uffcd\031\uffcd\032\uffcd\034\uffcd\035\uffcd" +
177     "\041\uffcd\042\uffcd\043\uffcd\044\uffcd\045\uffcd\046\uffcd\047" +
178     "\uffcd\050\uffcd\051\uffcd\052\uffcd\053\uffcd\001\002\000\026" +
179     "\011\067\025\023\026\030\027\017\030\041\031\034\032" +
180     "\031\051\054\052\062\053\063\001\002\000\062\004\uffcc" +
181     "\005\uffcc\007\uffcc\010\uffcc\024\uffcc\025\uffcc\026\uffcc\027" +
182     "\uffcc\030\uffcc\031\uffcc\032\uffcc\034\uffcc\035\uffcc\041\uffcc" +
183     "\042\uffcc\043\uffcc\044\uffcc\045\uffcc\046\uffcc\047\uffcc\050" +
184     "\uffcc\051\uffcc\052\uffcc\053\uffcc\001\002\000\026\011\071" +
185     "\025\023\026\030\027\017\030\041\031\034\032\031\051" +
186     "\054\052\062\053\063\001\002\000\062\004\uffca\005\uffca" +
187     "\007\uffca\010\uffca\024\uffca\025\uffca\026\uffca\027\uffca\030" +
188     "\uffca\031\uffca\032\uffca\034\uffca\035\uffca\041\uffca\042\uffca" +
189     "\043\uffca\044\uffca\045\uffca\046\uffca\047\uffca\050\uffca\051" +
190     "\uffca\052\uffca\053\uffca\001\002\000\026\011\073\025\023" +
191     "\026\030\027\017\030\041\031\034\032\031\051\054\052" +
192     "\062\053\063\001\002\000\062\004\uffcb\005\uffcb\007\uffcb" +
193     "\010\uffcb\024\uffcb\025\uffcb\026\uffcb\027\uffcb\030\uffcb\031" +
194     "\uffcb\032\uffcb\034\uffcb\035\uffcb\041\uffcb\042\uffcb\043\uffcb" +
195     "\044\uffcb\045\uffcb\046\uffcb\047\uffcb\050\uffcb\051\uffcb\052" +
196     "\uffcb\053\uffcb\001\002\000\062\004\uffdb\005\uffdb\007\uffdb" +
197     "\010\uffdb\024\uffdb\025\uffdb\026\uffdb\027\uffdb\030\uffdb\031" +
198     "\uffdb\032\uffdb\034\uffdb\035\uffdb\041\uffdb\042\uffdb\043\uffdb" +
199     "\044\uffdb\045\uffdb\046\uffdb\047\uffdb\050\uffdb\051\uffdb\052" +
200     "\uffdb\053\uffdb\001\002\000\062\004\uffda\005\uffda\007\uffda" +
201     "\010\uffda\024\uffda\025\uffda\026\uffda\027\uffda\030\uffda\031" +
202     "\uffda\032\uffda\034\uffda\035\uffda\041\uffda\042\uffda\043\uffda" +
203     "\044\uffda\045\uffda\046\uffda\047\uffda\050\uffda\051\uffda\052" +
204     "\uffda\053\uffda\001\002\000\006\021\100\041\101\001\002" +
205     "\000\062\004\uffd9\005\uffd9\007\uffd9\010\uffd9\024\uffd9\025" +
206     "\uffd9\026\uffd9\027\uffd9\030\uffd9\031\uffd9\032\uffd9\034\uffd9" +
207     "\035\uffd9\041\uffd9\042\uffd9\043\uffd9\044\uffd9\045\uffd9\046" +
208     "\uffd9\047\uffd9\050\uffd9\051\uffd9\052\uffd9\053\uffd9\001\002" +
209     "\000\062\004\uffd8\005\uffd8\007\uffd8\010\uffd8\024\uffd8\025" +
210     "\uffd8\026\uffd8\027\uffd8\030\uffd8\031\uffd8\032\uffd8\034\uffd8" +
211     "\035\uffd8\041\uffd8\042\uffd8\043\uffd8\044\uffd8\045\uffd8\046" +
212     "\uffd8\047\uffd8\050\uffd8\051\uffd8\052\uffd8\053\uffd8\001\002" +
213     "\000\004\021\102\001\002\000\062\004\uffd7\005\uffd7\007" +
214     "\uffd7\010\uffd7\024\uffd7\025\uffd7\026\uffd7\027\uffd7\030\uffd7" +
215     "\031\uffd7\032\uffd7\034\uffd7\035\uffd7\041\uffd7\042\uffd7\043" +
216     "\uffd7\044\uffd7\045\uffd7\046\uffd7\047\uffd7\050\uffd7\051\uffd7" +
217     "\052\uffd7\053\uffd7\001\002\000\052\004\uffdd\005\uffdd\007" +
218     "\uffdd\010\uffdd\024\uffdd\025\uffdd\026\uffdd\027\uffdd\030\uffdd" +
219     "\031\uffdd\032\uffdd\034\uffdd\035\uffdd\044\uffdd\046\uffdd\047" +
220     "\uffdd\050\uffdd\051\uffdd\052\uffdd\053\uffdd\001\002\000\006" +
221     "\005\106\044\105\001\002\000\036\004\033\010\043\025" +
222     "\023\026\030\027\017\030\041\031\034\032\031\046\021" +
223     "\047\036\050\022\051\020\052\027\053\024\001\002\000" +
224     "\062\004\uffd6\005\uffd6\007\uffd6\010\uffd6\024\uffd6\025\uffd6" +
225     "\026\uffd6\027\uffd6\030\uffd6\031\uffd6\032\uffd6\034\uffd6\035" +
226     "\uffd6\041\uffd6\042\uffd6\043\uffd6\044\uffd6\045\uffd6\046\uffd6" +
227     "\047\uffd6\050\uffd6\051\uffd6\052\uffd6\053\uffd6\001\002\000" +
228     "\052\004\033\005\uffe3\007\uffe3\010\043\024\uffe3\025\023" +
229     "\026\030\027\017\030\041\031\034\032\031\034\uffe3\035" +
230     "\uffe3\044\uffe3\046\021\047\036\050\022\051\020\052\027" +
231     "\053\024\001\002\000\052\004\uffe0\005\uffe0\007\uffe0\010" +
232     "\uffe0\024\uffe0\025\uffe0\026\uffe0\027\uffe0\030\uffe0\031\uffe0" +
233     "\032\uffe0\034\uffe0\035\uffe0\044\uffe0\046\uffe0\047\uffe0\050" +
234     "\uffe0\051\uffe0\052\uffe0\053\uffe0\001\002\000\012\013\ufff9" +
235     "\022\ufff9\023\ufff9\037\ufff9\001\002\000\052\004\uffdc\005" +
236     "\uffdc\007\uffdc\010\uffdc\024\uffdc\025\uffdc\026\uffdc\027\uffdc" +
237     "\030\uffdc\031\uffdc\032\uffdc\034\uffdc\035\uffdc\044\uffdc\046" +
238     "\uffdc\047\uffdc\050\uffdc\051\uffdc\052\uffdc\053\uffdc\001\002" +
239     "\000\054\002\ufff1\003\ufff1\004\ufff1\006\ufff1\010\ufff1\016" +
240     "\ufff1\021\ufff1\025\ufff1\026\ufff1\027\ufff1\030\ufff1\031\ufff1" +
241     "\032\ufff1\033\ufff1\044\ufff1\046\ufff1\047\ufff1\050\ufff1\051" +
242     "\ufff1\052\ufff1\053\ufff1\001\002\000\044\004\uffe4\006\141" +
243     "\010\uffe4\025\uffe4\026\uffe4\027\uffe4\030\uffe4\031\uffe4\032" +
244     "\uffe4\033\137\044\uffe4\046\uffe4\047\uffe4\050\uffe4\051\uffe4" +
245     "\052\uffe4\053\uffe4\001\002\000\004\037\123\001\002\000" +
246     "\054\002\ufff4\003\ufff4\004\ufff4\006\ufff4\010\ufff4\016\ufff4" +
247     "\021\ufff4\025\ufff4\026\ufff4\027\ufff4\030\ufff4\031\ufff4\032" +
248     "\ufff4\033\ufff4\044\ufff4\046\ufff4\047\ufff4\050\ufff4\051\ufff4" +
249     "\052\ufff4\053\ufff4\001\002\000\052\002\000\003\113\004" +
250     "\uffe9\006\uffe9\010\uffe9\016\120\025\uffe9\026\uffe9\027\uffe9" +
251     "\030\uffe9\031\uffe9\032\uffe9\033\uffe9\044\uffe9\046\uffe9\047" +
252     "\uffe9\050\uffe9\051\uffe9\052\uffe9\053\uffe9\001\002\000\004" +
253     "\037\123\001\002\000\054\002\ufff7\003\ufff7\004\ufff7\006" +
254     "\ufff7\010\ufff7\016\ufff7\021\ufff7\025\ufff7\026\ufff7\027\ufff7" +
255     "\030\ufff7\031\ufff7\032\ufff7\033\ufff7\044\ufff7\046\ufff7\047" +
256     "\ufff7\050\ufff7\051\ufff7\052\ufff7\053\ufff7\001\002\000\004" +
257     "\017\126\001\002\000\006\015\124\017\uffe7\001\002\000" +
258     "\006\017\uffe6\037\123\001\002\000\004\017\uffe8\001\002" +
259     "\000\046\004\uffea\006\uffea\010\uffea\020\127\025\uffea\026" +
260     "\uffea\027\uffea\030\uffea\031\uffea\032\uffea\033\uffea\044\uffea" +
261     "\046\uffea\047\uffea\050\uffea\051\uffea\052\uffea\053\uffea\001" +
262     "\002\000\050\003\113\004\uffe9\006\uffe9\010\uffe9\016\115" +
263     "\025\uffe9\026\uffe9\027\uffe9\030\uffe9\031\uffe9\032\uffe9\033" +
264     "\uffe9\044\uffe9\046\uffe9\047\uffe9\050\uffe9\051\uffe9\052\uffe9" +
265     "\053\uffe9\001\002\000\052\003\113\004\uffe9\006\uffe9\010" +
266     "\uffe9\016\120\021\131\025\uffe9\026\uffe9\027\uffe9\030\uffe9" +
267     "\031\uffe9\032\uffe9\033\uffe9\044\uffe9\046\uffe9\047\uffe9\050" +
268     "\uffe9\051\uffe9\052\uffe9\053\uffe9\001\002\000\054\002\ufff6" +
269     "\003\ufff6\004\ufff6\006\ufff6\010\ufff6\016\ufff6\021\ufff6\025" +
270     "\ufff6\026\ufff6\027\ufff6\030\ufff6\031\ufff6\032\ufff6\033\ufff6" +
271     "\044\ufff6\046\ufff6\047\ufff6\050\ufff6\051\ufff6\052\ufff6\053" +
272     "\ufff6\001\002\000\004\017\133\001\002\000\046\004\uffea" +
273     "\006\uffea\010\uffea\020\134\025\uffea\026\uffea\027\uffea\030" +
274     "\uffea\031\uffea\032\uffea\033\uffea\044\uffea\046\uffea\047\uffea" +
275     "\050\uffea\051\uffea\052\uffea\053\uffea\001\002\000\050\003" +
276     "\113\004\uffe9\006\uffe9\010\uffe9\016\115\025\uffe9\026\uffe9" +
277     "\027\uffe9\030\uffe9\031\uffe9\032\uffe9\033\uffe9\044\uffe9\046" +
278     "\uffe9\047\uffe9\050\uffe9\051\uffe9\052\uffe9\053\uffe9\001\002" +
279     "\000\052\003\113\004\uffe9\006\uffe9\010\uffe9\016\120\021" +
280     "\136\025\uffe9\026\uffe9\027\uffe9\030\uffe9\031\uffe9\032\uffe9" +
281     "\033\uffe9\044\uffe9\046\uffe9\047\uffe9\050\uffe9\051\uffe9\052" +
282     "\uffe9\053\uffe9\001\002\000\054\002\ufff5\003\ufff5\004\ufff5" +
283     "\006\ufff5\010\ufff5\016\ufff5\021\ufff5\025\ufff5\026\ufff5\027" +
284     "\ufff5\030\ufff5\031\ufff5\032\ufff5\033\ufff5\044\ufff5\046\ufff5" +
285     "\047\ufff5\050\ufff5\051\ufff5\052\ufff5\053\ufff5\001\002\000" +
286     "\004\036\154\001\002\000\040\004\033\010\043\025\023" +
287     "\026\030\027\017\030\041\031\034\032\031\044\040\046" +
288     "\021\047\036\050\022\051\020\052\027\053\024\001\002" +
289     "\000\040\004\uffe5\010\uffe5\025\uffe5\026\uffe5\027\uffe5\030" +
290     "\uffe5\031\uffe5\032\uffe5\044\uffe5\046\uffe5\047\uffe5\050\uffe5" +
291     "\051\uffe5\052\uffe5\053\uffe5\001\002\000\014\007\145\024" +
292     "\uffee\034\uffee\035\143\044\105\001\002\000\040\004\033" +
293     "\010\043\025\023\026\030\027\017\030\041\031\034\032" +
294     "\031\044\040\046\021\047\036\050\022\051\020\052\027" +
295     "\053\024\001\002\000\006\024\147\034\146\001\002\000" +
296     "\006\024\ufff0\034\ufff0\001\002\000\054\002\uffeb\003\uffeb" +
297     "\004\uffeb\006\uffeb\010\uffeb\016\uffeb\021\uffeb\025\uffeb\026" +
298     "\uffeb\027\uffeb\030\uffeb\031\uffeb\032\uffeb\033\uffeb\044\uffeb" +
299     "\046\uffeb\047\uffeb\050\uffeb\051\uffeb\052\uffeb\053\uffeb\001" +
300     "\002\000\004\036\151\001\002\000\054\002\ufff3\003\ufff3" +
301     "\004\ufff3\006\ufff3\010\ufff3\016\ufff3\021\ufff3\025\ufff3\026" +
302     "\ufff3\027\ufff3\030\ufff3\031\ufff3\032\ufff3\033\ufff3\044\ufff3" +
303     "\046\ufff3\047\ufff3\050\ufff3\051\ufff3\052\ufff3\053\ufff3\001" +
304     "\002\000\054\002\uffec\003\uffec\004\uffec\006\uffec\010\uffec" +
305     "\016\uffec\021\uffec\025\uffec\026\uffec\027\uffec\030\uffec\031" +
306     "\uffec\032\uffec\033\uffec\044\uffec\046\uffec\047\uffec\050\uffec" +
307     "\051\uffec\052\uffec\053\uffec\001\002\000\012\007\153\024" +
308     "\uffef\034\uffef\044\105\001\002\000\006\024\uffed\034\uffed" +
309     "\001\002\000\054\002\ufff2\003\ufff2\004\ufff2\006\ufff2\010" +
310     "\ufff2\016\ufff2\021\ufff2\025\ufff2\026\ufff2\027\ufff2\030\ufff2" +
311     "\031\ufff2\032\ufff2\033\ufff2\044\ufff2\046\ufff2\047\ufff2\050" +
312     "\ufff2\051\ufff2\052\ufff2\053\ufff2\001\002" });
313
314   /** Access to parse-action table. */
315   public short[][] action_table() {return _action_table;}
316
317   /** <code>reduce_goto</code> table. */
318   protected static final short[][] _reduce_table =
319     unpackFromStrings(new String JavaDoc[] {
320     "\000\152\000\004\006\004\001\001\000\004\003\007\001" +
321     "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
322     "\000\004\004\011\001\001\000\010\005\115\017\113\022" +
323     "\116\001\001\000\002\001\001\000\002\001\001\000\002" +
324     "\001\001\000\002\001\001\000\016\007\024\010\031\011" +
325     "\036\012\041\013\034\021\025\001\001\000\002\001\001" +
326     "\000\002\001\001\000\002\001\001\000\012\011\111\012" +
327     "\041\013\034\021\025\001\001\000\002\001\001\000\002" +
328     "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
329     "\001\000\002\001\001\000\002\001\001\000\012\011\107" +
330     "\012\041\013\034\021\025\001\001\000\016\007\103\010" +
331     "\031\011\036\012\041\013\034\021\025\001\001\000\002" +
332     "\001\001\000\002\001\001\000\012\011\102\012\041\013" +
333     "\034\021\025\001\001\000\002\001\001\000\002\001\001" +
334     "\000\002\001\001\000\002\001\001\000\010\015\044\020" +
335     "\051\021\043\001\001\000\002\001\001\000\002\001\001" +
336     "\000\010\015\044\020\071\021\043\001\001\000\010\015" +
337     "\044\020\065\021\043\001\001\000\002\001\001\000\002" +
338     "\001\001\000\006\015\057\021\056\001\001\000\002\001" +
339     "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
340     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
341     "\002\001\001\000\002\001\001\000\010\015\044\020\067" +
342     "\021\043\001\001\000\002\001\001\000\006\015\057\021" +
343     "\056\001\001\000\002\001\001\000\006\015\057\021\056" +
344     "\001\001\000\002\001\001\000\006\015\057\021\056\001" +
345     "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
346     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
347     "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
348     "\001\001\000\014\010\106\011\036\012\041\013\034\021" +
349     "\025\001\001\000\002\001\001\000\012\011\107\012\041" +
350     "\013\034\021\025\001\001\000\002\001\001\000\002\001" +
351     "\001\000\002\001\001\000\002\001\001\000\004\023\137" +
352     "\001\001\000\004\016\131\001\001\000\002\001\001\000" +
353     "\006\005\120\017\113\001\001\000\004\016\121\001\001" +
354     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
355     "\004\016\124\001\001\000\002\001\001\000\002\001\001" +
356     "\000\010\005\115\017\113\022\127\001\001\000\006\005" +
357     "\120\017\113\001\001\000\002\001\001\000\002\001\001" +
358     "\000\002\001\001\000\010\005\115\017\113\022\134\001" +
359     "\001\000\006\005\120\017\113\001\001\000\002\001\001" +
360     "\000\002\001\001\000\016\007\141\010\031\011\036\012" +
361     "\041\013\034\021\025\001\001\000\002\001\001\000\004" +
362     "\014\143\001\001\000\016\007\151\010\031\011\036\012" +
363     "\041\013\034\021\025\001\001\000\004\024\147\001\001" +
364     "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
365     "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
366     "\001\001\000\002\001\001" });
367
368   /** Access to <code>reduce_goto</code> table. */
369   public short[][] reduce_table() {return _reduce_table;}
370
371   /** Instance of action encapsulation class. */
372   protected CUP$LexParse$actions action_obj;
373
374   /** Action encapsulation object initializer. */
375   protected void init_actions()
376     {
377       action_obj = new CUP$LexParse$actions(this);
378     }
379
380   /** Invoke a user supplied parse action. */
381   public java_cup.runtime.Symbol do_action(
382     int act_num,
383     java_cup.runtime.lr_parser parser,
384     java.util.Stack JavaDoc stack,
385     int top)
386     throws java.lang.Exception JavaDoc
387   {
388     /* call code in generated class */
389     return action_obj.CUP$LexParse$do_action(act_num, parser, stack, top);
390   }
391
392   /** Indicates start state. */
393   public int start_state() {return 0;}
394   /** Indicates start production. */
395   public int start_production() {return 0;}
396
397   /** <code>EOF</code> Symbol index. */
398   public int EOF_sym() {return 0;}
399
400   /** <code>error</code> Symbol index. */
401   public int error_sym() {return 1;}
402
403
404   /** User initialization code. */
405   public void user_init() throws java.lang.Exception JavaDoc
406     {
407
408   action_obj.scanner = this.scanner;
409
410     }
411
412
413    public LexScan scanner;
414
415    public LexParse(LexScan scanner) {
416      super(scanner);
417      this.scanner = scanner;
418    }
419    
420    public CharClasses getCharClasses() {
421      return action_obj.charClasses;
422    }
423
424    public EOFActions getEOFActions() {
425      return action_obj.eofActions;
426    }
427        
428    public void report_error(String JavaDoc message, Object JavaDoc info) {
429      if ( info instanceof java_cup.runtime.Symbol ) {
430        java_cup.runtime.Symbol s = (java_cup.runtime.Symbol) info;
431   
432        if (s.sym == sym.EOF)
433          Out.error(ErrorMessages.UNEXPECTED_EOF);
434        else
435          Out.error(scanner.file, ErrorMessages.SYNTAX_ERROR, s.left, s.right);
436      }
437      else
438        Out.error(ErrorMessages.UNKNOWN_SYNTAX);
439    }
440    
441    public void report_fatal_error(String JavaDoc message, Object JavaDoc info) {
442      // report_error(message, info);
443
throw new GeneratorException();
444    }
445
446
447 }
448
449 /** Cup generated class to encapsulate user supplied action code.*/
450 class CUP$LexParse$actions {
451
452
453
454   LexScan scanner;
455   CharClasses charClasses = new CharClasses(127);
456   RegExps regExps = new RegExps();
457   Macros macros = new Macros();
458   Integer JavaDoc stateNumber;
459   Timer t = new Timer();
460   EOFActions eofActions = new EOFActions();
461
462   void fatalError(ErrorMessages message, int line, int col) {
463     syntaxError(message, line, col);
464     throw new GeneratorException();
465   }
466
467   void fatalError(ErrorMessages message) {
468     fatalError(message, scanner.currentLine(), -1);
469     throw new GeneratorException();
470   }
471
472   void syntaxError(ErrorMessages message) {
473     Out.error(scanner.file, message, scanner.currentLine(), -1);
474   }
475   
476   void syntaxError(ErrorMessages message, int line) {
477     Out.error(scanner.file, message, line, -1);
478   }
479
480   void syntaxError(ErrorMessages message, int line, int col) {
481     Out.error(scanner.file, message, line, col);
482   }
483
484
485   private boolean check(int type, char c) {
486     switch (type) {
487       case sym.JLETTERCLASS:
488         return Character.isJavaIdentifierStart(c);
489         
490       case sym.JLETTERDIGITCLASS:
491         return Character.isJavaIdentifierPart(c);
492         
493       case sym.LETTERCLASS:
494         return Character.isLetter(c);
495         
496       case sym.DIGITCLASS:
497         return Character.isDigit(c);
498         
499       case sym.UPPERCLASS:
500         return Character.isUpperCase(c);
501         
502       case sym.LOWERCLASS:
503         return Character.isLowerCase(c);
504         
505       default: return false;
506     }
507   }
508   
509   private Vector makePreClass(int type) {
510     
511     Vector result = new Vector();
512     
513     char c = 0;
514     char start = 0;
515     char last = charClasses.getMaxCharCode();
516     
517     boolean prev, current;
518     
519     prev = check(type,'\u0000');
520     
521     for (c = 1; c < last; c++) {
522       
523       current = check(type,c);
524       
525       if (!prev && current) start = c;
526       if (prev && !current) {
527         result.addElement(new Interval(start, (char)(c-1)));
528       }
529       
530       prev = current;
531     }
532     
533     // the last iteration is moved out of the loop to
534
// avoid an endless loop if last == maxCharCode and
535
// last+1 == 0
536
current = check(type,c);
537     
538     if (!prev && current) result.addElement(new Interval(c,c));
539     if (prev && current) result.addElement(new Interval(start, c));
540     if (prev && !current) result.addElement(new Interval(start, (char)(c-1)));
541
542     return result;
543   }
544   
545   private RegExp makeRepeat(RegExp r, int n1, int n2, int line, int col) {
546
547     if (n1 <= 0 && n2 <= 0) {
548       syntaxError(ErrorMessages.REPEAT_ZERO, line, col);
549       return null;
550     }
551
552     if (n1 > n2) {
553       syntaxError(ErrorMessages.REPEAT_GREATER, line, col);
554       return null;
555     }
556     
557     int i;
558     RegExp result;
559
560     if (n1 > 0) {
561       result = r;
562       n1--; n2--; // we need one concatenation less than the number of expressions to match
563
}
564     else {
565       result = new RegExp1(sym.QUESTION,r);
566       n2--;
567     }
568
569     for (i = 0; i < n1; i++)
570       result = new RegExp2(sym.CONCAT, result, r);
571       
572     n2-= n1;
573     for (i = 0; i < n2; i++)
574       result = new RegExp2(sym.CONCAT, result, new RegExp1(sym.QUESTION,r));
575     
576     return result;
577   }
578
579   private RegExp makeNL() {
580     Vector list = new Vector();
581     list.addElement(new Interval('\n','\r'));
582     list.addElement(new Interval('\u0085','\u0085'));
583     list.addElement(new Interval('\u2028','\u2029'));
584
585     // assumption: line feeds are caseless
586
charClasses.makeClass(list, false);
587     charClasses.makeClass('\n', false);
588     charClasses.makeClass('\r', false);
589
590     RegExp1 c = new RegExp1(sym.CCLASS, list);
591     Character JavaDoc n = new Character JavaDoc('\n');
592     Character JavaDoc r = new Character JavaDoc('\r');
593
594     return new RegExp2(sym.BAR,
595                        c,
596                        new RegExp2(sym.CONCAT,
597                                    new RegExp1(sym.CHAR, r),
598                                    new RegExp1(sym.CHAR, n)));
599   }
600   
601
602   private final LexParse parser;
603
604   /** Constructor */
605   CUP$LexParse$actions(LexParse parser) {
606     this.parser = parser;
607   }
608
609   /** Method with the actual generated action code. */
610   public final java_cup.runtime.Symbol CUP$LexParse$do_action(
611     int CUP$LexParse$act_num,
612     java_cup.runtime.lr_parser CUP$LexParse$parser,
613     java.util.Stack JavaDoc CUP$LexParse$stack,
614     int CUP$LexParse$top)
615     throws java.lang.Exception JavaDoc
616     {
617       /* Symbol object for return from actions */
618       java_cup.runtime.Symbol CUP$LexParse$result;
619
620       /* select the action based on the action number */
621       switch (CUP$LexParse$act_num)
622         {
623           /*. . . . . . . . . . . . . . . . . . . .*/
624           case 71: // preclass ::= LOWERCLASS
625
{
626               Vector RESULT = null;
627          RESULT = makePreClass(sym.LOWERCLASS);
628               CUP$LexParse$result = new java_cup.runtime.Symbol(15/*preclass*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
629             }
630           return CUP$LexParse$result;
631
632           /*. . . . . . . . . . . . . . . . . . . .*/
633           case 70: // preclass ::= UPPERCLASS
634
{
635               Vector RESULT = null;
636          RESULT = makePreClass(sym.UPPERCLASS);
637               CUP$LexParse$result = new java_cup.runtime.Symbol(15/*preclass*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
638             }
639           return CUP$LexParse$result;
640
641           /*. . . . . . . . . . . . . . . . . . . .*/
642           case 69: // preclass ::= DIGITCLASS
643
{
644               Vector RESULT = null;
645          RESULT = makePreClass(sym.DIGITCLASS);
646               CUP$LexParse$result = new java_cup.runtime.Symbol(15/*preclass*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
647             }
648           return CUP$LexParse$result;
649
650           /*. . . . . . . . . . . . . . . . . . . .*/
651           case 68: // preclass ::= LETTERCLASS
652
{
653               Vector RESULT = null;
654          RESULT = makePreClass(sym.LETTERCLASS);
655               CUP$LexParse$result = new java_cup.runtime.Symbol(15/*preclass*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
656             }
657           return CUP$LexParse$result;
658
659           /*. . . . . . . . . . . . . . . . . . . .*/
660           case 67: // preclass ::= JLETTERDIGITCLASS
661
{
662               Vector RESULT = null;
663          RESULT = makePreClass(sym.JLETTERDIGITCLASS);
664               CUP$LexParse$result = new java_cup.runtime.Symbol(15/*preclass*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
665             }
666           return CUP$LexParse$result;
667
668           /*. . . . . . . . . . . . . . . . . . . .*/
669           case 66: // preclass ::= JLETTERCLASS
670
{
671               Vector RESULT = null;
672          RESULT = makePreClass(sym.JLETTERCLASS);
673               CUP$LexParse$result = new java_cup.runtime.Symbol(15/*preclass*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
674             }
675           return CUP$LexParse$result;
676
677           /*. . . . . . . . . . . . . . . . . . . .*/
678           case 65: // classcontentelem ::= CHAR
679
{
680               Interval RESULT = null;
681         int cleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
682         int cright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
683         Character JavaDoc c = (Character JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
684          RESULT = new Interval(c.charValue(), c.charValue());
685               CUP$LexParse$result = new java_cup.runtime.Symbol(11/*classcontentelem*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
686             }
687           return CUP$LexParse$result;
688
689           /*. . . . . . . . . . . . . . . . . . . .*/
690           case 64: // classcontentelem ::= CHAR DASH CHAR
691
{
692               Interval RESULT = null;
693         int c1left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
694         int c1right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
695         Character JavaDoc c1 = (Character JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
696         int c2left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
697         int c2right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
698         Character JavaDoc c2 = (Character JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
699          RESULT = new Interval(c1.charValue(), c2.charValue());
700               CUP$LexParse$result = new java_cup.runtime.Symbol(11/*classcontentelem*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
701             }
702           return CUP$LexParse$result;
703
704           /*. . . . . . . . . . . . . . . . . . . .*/
705           case 63: // classcontent ::= MACROUSE
706
{
707               Vector RESULT = null;
708         int identleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
709         int identright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
710         String JavaDoc ident = (String JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
711          
712                      syntaxError(ErrorMessages.CHARCLASS_MACRO, identleft, identright);
713                    
714               CUP$LexParse$result = new java_cup.runtime.Symbol(14/*classcontent*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
715             }
716           return CUP$LexParse$result;
717
718           /*. . . . . . . . . . . . . . . . . . . .*/
719           case 62: // classcontent ::= classcontent MACROUSE
720
{
721               Vector RESULT = null;
722         int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
723         int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
724         Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
725         int identleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
726         int identright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
727         String JavaDoc ident = (String JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
728          
729                      syntaxError(ErrorMessages.CHARCLASS_MACRO, identleft, identright);
730                    
731               CUP$LexParse$result = new java_cup.runtime.Symbol(14/*classcontent*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
732             }
733           return CUP$LexParse$result;
734
735           /*. . . . . . . . . . . . . . . . . . . .*/
736           case 61: // classcontent ::= STRING
737
{
738               Vector RESULT = null;
739         int sleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
740         int sright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
741         String JavaDoc s = (String JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
742          
743                       RESULT = new Vector();
744                       for (int i = 0; i < s.length(); i++)
745                         RESULT.addElement(new Interval(s.charAt(i),s.charAt(i)));
746                    
747               CUP$LexParse$result = new java_cup.runtime.Symbol(14/*classcontent*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
748             }
749           return CUP$LexParse$result;
750
751           /*. . . . . . . . . . . . . . . . . . . .*/
752           case 60: // classcontent ::= classcontent STRING
753
{
754               Vector RESULT = null;
755         int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
756         int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
757         Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
758         int sleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
759         int sright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
760         String JavaDoc s = (String JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
761          
762                       for (int i = 0; i < s.length(); i++)
763                         list.addElement(new Interval(s.charAt(i),s.charAt(i)));
764                       RESULT = list;
765                    
766               CUP$LexParse$result = new java_cup.runtime.Symbol(14/*classcontent*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
767             }
768           return CUP$LexParse$result;
769
770           /*. . . . . . . . . . . . . . . . . . . .*/
771           case 59: // classcontent ::= preclass
772
{
773               Vector RESULT = null;
774         int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
775         int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
776         Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
777          RESULT = list;
778               CUP$LexParse$result = new java_cup.runtime.Symbol(14/*classcontent*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
779             }
780           return CUP$LexParse$result;
781
782           /*. . . . . . . . . . . . . . . . . . . .*/
783           case 58: // classcontent ::= classcontent preclass
784
{
785               Vector RESULT = null;
786         int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
787         int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
788         Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
789         int plistleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
790         int plistright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
791         Vector plist = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
792         
793                      for (Enumeration e = plist.elements(); e.hasMoreElements();)
794                        list.addElement(e.nextElement());
795                      RESULT = list;
796                    
797               CUP$LexParse$result = new java_cup.runtime.Symbol(14/*classcontent*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
798             }
799           return CUP$LexParse$result;
800
801           /*. . . . . . . . . . . . . . . . . . . .*/
802           case 57: // classcontent ::= classcontentelem
803
{
804               Vector RESULT = null;
805         int elemleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
806         int elemright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
807         Interval elem = (Interval)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
808         
809                      Vector list = new Vector();
810                      list.addElement(elem);
811                      RESULT = list;
812                    
813               CUP$LexParse$result = new java_cup.runtime.Symbol(14/*classcontent*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
814             }
815           return CUP$LexParse$result;
816
817           /*. . . . . . . . . . . . . . . . . . . .*/
818           case 56: // classcontent ::= classcontent classcontentelem
819
{
820               Vector RESULT = null;
821         int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
822         int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
823         Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
824         int elemleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
825         int elemright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
826         Interval elem = (Interval)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
827         
828                      list.addElement(elem);
829                      RESULT = list;
830                    
831               CUP$LexParse$result = new java_cup.runtime.Symbol(14/*classcontent*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
832             }
833           return CUP$LexParse$result;
834
835           /*. . . . . . . . . . . . . . . . . . . .*/
836           case 55: // charclass ::= OPENCLASS HAT DASH classcontent CLOSECLASS
837
{
838               RegExp RESULT = null;
839         int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
840         int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
841         Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
842         int closeleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
843         int closeright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
844         Object JavaDoc close = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
845          
846                      try {
847                        list.addElement(new Interval('-','-'));
848                        charClasses.makeClassNot(list, Options.jlex && scanner.caseless);
849                      }
850                      catch (CharClassException e) {
851                        syntaxError(ErrorMessages.CHARSET_2_SMALL, closeleft, closeright);
852                      }
853                      RESULT = new RegExp1(sym.CCLASSNOT,list);
854                    
855               CUP$LexParse$result = new java_cup.runtime.Symbol(9/*charclass*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
856             }
857           return CUP$LexParse$result;
858
859           /*. . . . . . . . . . . . . . . . . . . .*/
860           case 54: // charclass ::= OPENCLASS DASH classcontent CLOSECLASS
861
{
862               RegExp RESULT = null;
863         int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
864         int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
865         Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
866         int closeleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
867         int closeright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
868         Object JavaDoc close = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
869          
870                      try {
871                        list.addElement(new Interval('-','-'));
872                        charClasses.makeClass(list, Options.jlex && scanner.caseless);
873                      }
874                      catch (CharClassException e) {
875                        syntaxError(ErrorMessages.CHARSET_2_SMALL, closeleft, closeright);
876                      }
877                      RESULT = new RegExp1(sym.CCLASS,list);
878                    
879               CUP$LexParse$result = new java_cup.runtime.Symbol(9/*charclass*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
880             }
881           return CUP$LexParse$result;
882
883           /*. . . . . . . . . . . . . . . . . . . .*/
884           case 53: // charclass ::= OPENCLASS HAT classcontent CLOSECLASS
885
{
886               RegExp RESULT = null;
887         int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
888         int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
889         Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
890         int closeleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
891         int closeright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
892         Object JavaDoc close = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
893          
894                      try {
895                        charClasses.makeClassNot(list, Options.jlex && scanner.caseless);
896                      }
897                      catch (CharClassException e) {
898                        syntaxError(ErrorMessages.CHARSET_2_SMALL, closeleft, closeright);
899                      }
900                      RESULT = new RegExp1(sym.CCLASSNOT,list);
901                    
902               CUP$LexParse$result = new java_cup.runtime.Symbol(9/*charclass*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
903             }
904           return CUP$LexParse$result;
905
906           /*. . . . . . . . . . . . . . . . . . . .*/
907           case 52: // charclass ::= OPENCLASS HAT CLOSECLASS
908
{
909               RegExp RESULT = null;
910         int closeleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
911         int closeright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
912         Object JavaDoc close = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
913          
914                      Vector list = new Vector();
915                      list.addElement(new Interval((char)0,CharClasses.maxChar));
916                      try {
917                        charClasses.makeClass(list, false);
918                      }
919                      catch (CharClassException e) {
920                        syntaxError(ErrorMessages.CHARSET_2_SMALL, closeleft, closeright);
921                      }
922                      RESULT = new RegExp1(sym.CCLASS,list);
923                    
924               CUP$LexParse$result = new java_cup.runtime.Symbol(9/*charclass*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
925             }
926           return CUP$LexParse$result;
927
928           /*. . . . . . . . . . . . . . . . . . . .*/
929           case 51: // charclass ::= OPENCLASS classcontent CLOSECLASS
930
{
931               RegExp RESULT = null;
932         int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
933         int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
934         Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
935         int closeleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
936         int closeright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
937         Object JavaDoc close = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
938          
939                      try {
940                        charClasses.makeClass(list, Options.jlex && scanner.caseless);
941                      }
942                      catch (CharClassException e) {
943                        syntaxError(ErrorMessages.CHARSET_2_SMALL, closeleft, closeright);
944                      }
945                      RESULT = new RegExp1(sym.CCLASS,list);
946                    
947               CUP$LexParse$result = new java_cup.runtime.Symbol(9/*charclass*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
948             }
949           return CUP$LexParse$result;
950
951           /*. . . . . . . . . . . . . . . . . . . .*/
952           case 50: // charclass ::= OPENCLASS CLOSECLASS
953
{
954               RegExp RESULT = null;
955          
956                      RESULT = new RegExp1(sym.CCLASS,null);
957                    
958               CUP$LexParse$result = new java_cup.runtime.Symbol(9/*charclass*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
959             }
960           return CUP$LexParse$result;
961
962           /*. . . . . . . . . . . . . . . . . . . .*/
963           case 49: // regexp ::= CHAR
964
{
965               RegExp RESULT = null;
966         int cleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
967         int cright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
968         Character JavaDoc c = (Character JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
969          
970                      try {
971                        if ( scanner.caseless ) {
972                          charClasses.makeClass(c.charValue(), true);
973                          RESULT = new RegExp1(sym.CHAR_I, c);
974                        }
975                        else {
976                          charClasses.makeClass(c.charValue(), false);
977                          RESULT = new RegExp1(sym.CHAR, c);
978                        }
979                      }
980                      catch (CharClassException e) {
981                        syntaxError(ErrorMessages.CS2SMALL_CHAR, cleft, cright);
982                      }
983                    
984               CUP$LexParse$result = new java_cup.runtime.Symbol(8/*regexp*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
985             }
986           return CUP$LexParse$result;
987
988           /*. . . . . . . . . . . . . . . . . . . .*/
989           case 48: // regexp ::= POINT
990
{
991               RegExp RESULT = null;
992          
993                       Vector any = new Vector();
994                       any.addElement(new Interval('\n','\n'));
995                       // assumption: there is no upper case for \n
996
charClasses.makeClass('\n', false);
997                       RESULT = new RegExp1(sym.CCLASSNOT, any);
998                    
999               CUP$LexParse$result = new java_cup.runtime.Symbol(8/*regexp*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1000            }
1001          return CUP$LexParse$result;
1002
1003          /*. . . . . . . . . . . . . . . . . . . .*/
1004          case 47: // regexp ::= STRING
1005
{
1006              RegExp RESULT = null;
1007        int strleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1008        int strright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1009        String JavaDoc str = (String JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1010         
1011                     try {
1012                       if ( scanner.caseless ) {
1013                         charClasses.makeClass(str, true);
1014                         RESULT = new RegExp1(sym.STRING_I, str);
1015                       }
1016                       else {
1017                         charClasses.makeClass(str, false);
1018                         RESULT = new RegExp1(sym.STRING, str);
1019                       }
1020                     }
1021                     catch (CharClassException e) {
1022                       syntaxError(ErrorMessages.CS2SMALL_STRING, strleft, strright);
1023                     }
1024
1025                   
1026              CUP$LexParse$result = new java_cup.runtime.Symbol(8/*regexp*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1027            }
1028          return CUP$LexParse$result;
1029
1030          /*. . . . . . . . . . . . . . . . . . . .*/
1031          case 46: // regexp ::= preclass
1032
{
1033              RegExp RESULT = null;
1034        int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1035        int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1036        Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1037        
1038                     try {
1039                       // assumption [correct?]: preclasses are already closed under case
1040
charClasses.makeClass(list, false);
1041                     }
1042                     catch (CharClassException e) {
1043                       syntaxError(ErrorMessages.CHARSET_2_SMALL, listleft);
1044                     }
1045                     RESULT = new RegExp1(sym.CCLASS, list);
1046                   
1047              CUP$LexParse$result = new java_cup.runtime.Symbol(8/*regexp*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1048            }
1049          return CUP$LexParse$result;
1050
1051          /*. . . . . . . . . . . . . . . . . . . .*/
1052          case 45: // regexp ::= charclass
1053
{
1054              RegExp RESULT = null;
1055        int cleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1056        int cright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1057        RegExp c = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1058         RESULT = c;
1059              CUP$LexParse$result = new java_cup.runtime.Symbol(8/*regexp*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1060            }
1061          return CUP$LexParse$result;
1062
1063          /*. . . . . . . . . . . . . . . . . . . .*/
1064          case 44: // regexp ::= MACROUSE
1065
{
1066              RegExp RESULT = null;
1067        int identleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1068        int identright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1069        String JavaDoc ident = (String JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1070         
1071                      if ( !scanner.macroDefinition ) {
1072                        if ( ! macros.markUsed(ident) )
1073                          throw new ScannerException(scanner.file, ErrorMessages.MACRO_UNDECL,
1074                                                     identleft, identright);
1075                      }
1076                      RESULT = new RegExp1(sym.MACROUSE, ident);
1077                   
1078              CUP$LexParse$result = new java_cup.runtime.Symbol(8/*regexp*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1079            }
1080          return CUP$LexParse$result;
1081
1082          /*. . . . . . . . . . . . . . . . . . . .*/
1083          case 43: // regexp ::= OPENBRACKET series CLOSEBRACKET
1084
{
1085              RegExp RESULT = null;
1086        int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
1087        int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
1088        RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
1089         RESULT = r;
1090              CUP$LexParse$result = new java_cup.runtime.Symbol(8/*regexp*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1091            }
1092          return CUP$LexParse$result;
1093
1094          /*. . . . . . . . . . . . . . . . . . . .*/
1095          case 42: // regexp ::= regexp REPEAT REPEAT RBRACE
1096
{
1097              RegExp RESULT = null;
1098        int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).left;
1099        int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).right;
1100        RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).value;
1101        int n1left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
1102        int n1right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
1103        Integer JavaDoc n1 = (Integer JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
1104        int n2left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
1105        int n2right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
1106        Integer JavaDoc n2 = (Integer JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
1107         RESULT = makeRepeat(r, n1.intValue(), n2.intValue(), n1left, n2right);
1108              CUP$LexParse$result = new java_cup.runtime.Symbol(8/*regexp*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1109            }
1110          return CUP$LexParse$result;
1111
1112          /*. . . . . . . . . . . . . . . . . . . .*/
1113          case 41: // regexp ::= regexp REPEAT RBRACE
1114
{
1115              RegExp RESULT = null;
1116        int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
1117        int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
1118        RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
1119        int nleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
1120        int nright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
1121        Integer JavaDoc n = (Integer JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
1122        int bleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1123        int bright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1124        Object JavaDoc b = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1125         RESULT = makeRepeat(r, n.intValue(), n.intValue(), bleft, bright);
1126              CUP$LexParse$result = new java_cup.runtime.Symbol(8/*regexp*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1127            }
1128          return CUP$LexParse$result;
1129
1130          /*. . . . . . . . . . . . . . . . . . . .*/
1131          case 40: // regexp ::= regexp QUESTION
1132
{
1133              RegExp RESULT = null;
1134        int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
1135        int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
1136        RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
1137         RESULT = new RegExp1(sym.QUESTION, r);
1138              CUP$LexParse$result = new java_cup.runtime.Symbol(8/*regexp*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1139            }
1140          return CUP$LexParse$result;
1141
1142          /*. . . . . . . . . . . . . . . . . . . .*/
1143          case 39: // regexp ::= regexp PLUS
1144
{
1145              RegExp RESULT = null;
1146        int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
1147        int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
1148        RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
1149         RESULT = new RegExp1(sym.PLUS, r);
1150              CUP$LexParse$result = new java_cup.runtime.Symbol(8/*regexp*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1151            }
1152          return CUP$LexParse$result;
1153
1154          /*. . . . . . . . . . . . . . . . . . . .*/
1155          case 38: // regexp ::= regexp STAR
1156
{
1157              RegExp RESULT = null;
1158        int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
1159        int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
1160        RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
1161         RESULT = new RegExp1(sym.STAR, r);
1162              CUP$LexParse$result = new java_cup.runtime.Symbol(8/*regexp*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1163            }
1164          return CUP$LexParse$result;
1165
1166          /*. . . . . . . . . . . . . . . . . . . .*/
1167          case 37: // nregexp ::= TILDE nregexp
1168
{
1169              RegExp RESULT = null;
1170        int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1171        int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1172        RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1173         RESULT = new RegExp1(sym.TILDE, r);
1174              CUP$LexParse$result = new java_cup.runtime.Symbol(7/*nregexp*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1175            }
1176          return CUP$LexParse$result;
1177
1178          /*. . . . . . . . . . . . . . . . . . . .*/
1179          case 36: // nregexp ::= BANG nregexp
1180
{
1181              RegExp RESULT = null;
1182        int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1183        int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1184        RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1185         RESULT = new RegExp1(sym.BANG, r);
1186              CUP$LexParse$result = new java_cup.runtime.Symbol(7/*nregexp*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1187            }
1188          return CUP$LexParse$result;
1189
1190          /*. . . . . . . . . . . . . . . . . . . .*/
1191          case 35: // nregexp ::= regexp
1192
{
1193              RegExp RESULT = null;
1194        int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1195        int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1196        RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1197         RESULT = r;
1198              CUP$LexParse$result = new java_cup.runtime.Symbol(7/*nregexp*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1199            }
1200          return CUP$LexParse$result;
1201
1202          /*. . . . . . . . . . . . . . . . . . . .*/
1203          case 34: // concs ::= nregexp
1204
{
1205              RegExp RESULT = null;
1206        int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1207        int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1208        RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1209         RESULT = r;
1210              CUP$LexParse$result = new java_cup.runtime.Symbol(6/*concs*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1211            }
1212          return CUP$LexParse$result;
1213
1214          /*. . . . . . . . . . . . . . . . . . . .*/
1215          case 33: // concs ::= concs nregexp
1216
{
1217              RegExp RESULT = null;
1218        int r1left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
1219        int r1right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
1220        RegExp r1 = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
1221        int r2left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1222        int r2right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1223        RegExp r2 = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1224         RESULT = new RegExp2(sym.CONCAT, r1, r2);
1225              CUP$LexParse$result = new java_cup.runtime.Symbol(6/*concs*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1226            }
1227          return CUP$LexParse$result;
1228
1229          /*. . . . . . . . . . . . . . . . . . . .*/
1230          case 32: // series ::= BAR
1231
{
1232              RegExp RESULT = null;
1233        int bleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1234        int bright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1235        Object JavaDoc b = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1236         syntaxError(ErrorMessages.REGEXP_EXPECTED, bleft, bright);
1237              CUP$LexParse$result = new java_cup.runtime.Symbol(5/*series*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1238            }
1239          return CUP$LexParse$result;
1240
1241          /*. . . . . . . . . . . . . . . . . . . .*/
1242          case 31: // series ::= concs
1243
{
1244              RegExp RESULT = null;
1245        int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1246        int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1247        RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1248         RESULT = r;
1249              CUP$LexParse$result = new java_cup.runtime.Symbol(5/*series*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1250            }
1251          return CUP$LexParse$result;
1252
1253          /*. . . . . . . . . . . . . . . . . . . .*/
1254          case 30: // series ::= series BAR concs
1255
{
1256              RegExp RESULT = null;
1257        int r1left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
1258        int r1right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
1259        RegExp r1 = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
1260        int r2left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1261        int r2right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1262        RegExp r2 = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1263         RESULT = new RegExp2(sym.BAR, r1, r2);
1264              CUP$LexParse$result = new java_cup.runtime.Symbol(5/*series*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1265            }
1266          return CUP$LexParse$result;
1267
1268          /*. . . . . . . . . . . . . . . . . . . .*/
1269          case 29: // hatOPT ::=
1270
{
1271              Boolean JavaDoc RESULT = null;
1272         RESULT = new Boolean JavaDoc(false);
1273              CUP$LexParse$result = new java_cup.runtime.Symbol(17/*hatOPT*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1274            }
1275          return CUP$LexParse$result;
1276
1277          /*. . . . . . . . . . . . . . . . . . . .*/
1278          case 28: // hatOPT ::= HAT
1279
{
1280              Boolean JavaDoc RESULT = null;
1281         // assumption: there is no upper case for \n
1282
charClasses.makeClass('\n', false);
1283                      RESULT = new Boolean JavaDoc(true);
1284              CUP$LexParse$result = new java_cup.runtime.Symbol(17/*hatOPT*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1285            }
1286          return CUP$LexParse$result;
1287
1288          /*. . . . . . . . . . . . . . . . . . . .*/
1289          case 27: // states ::= IDENT COMMA
1290
{
1291              Vector RESULT = null;
1292        int cleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1293        int cright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1294        Object JavaDoc c = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1295         syntaxError(ErrorMessages.REGEXP_EXPECTED, cleft, cright+1);
1296              CUP$LexParse$result = new java_cup.runtime.Symbol(12/*states*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1297            }
1298          return CUP$LexParse$result;
1299
1300          /*. . . . . . . . . . . . . . . . . . . .*/
1301          case 26: // states ::= IDENT
1302
{
1303              Vector RESULT = null;
1304        int idleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1305        int idright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1306        String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1307        
1308                     Vector list = new Vector();
1309                     stateNumber = scanner.states.getNumber( id );
1310                     if ( stateNumber != null )
1311                       list.addElement( stateNumber );
1312                     else {
1313                       throw new ScannerException(scanner.file, ErrorMessages.LEXSTATE_UNDECL,
1314                                                  idleft, idright);
1315                     }
1316                     RESULT = list;
1317                   
1318              CUP$LexParse$result = new java_cup.runtime.Symbol(12/*states*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1319            }
1320          return CUP$LexParse$result;
1321
1322          /*. . . . . . . . . . . . . . . . . . . .*/
1323          case 25: // states ::= IDENT COMMA states
1324
{
1325              Vector RESULT = null;
1326        int idleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
1327        int idright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
1328        String JavaDoc id = (String JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
1329        int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1330        int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1331        Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1332        
1333                     stateNumber = scanner.states.getNumber( id );
1334                     if ( stateNumber != null )
1335                       list.addElement( stateNumber );
1336                     else {
1337                       throw new ScannerException(scanner.file, ErrorMessages.LEXSTATE_UNDECL,
1338                                                  idleft, idright);
1339                     }
1340                     RESULT = list;
1341                   
1342              CUP$LexParse$result = new java_cup.runtime.Symbol(12/*states*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1343            }
1344          return CUP$LexParse$result;
1345
1346          /*. . . . . . . . . . . . . . . . . . . .*/
1347          case 24: // statesOPT ::=
1348
{
1349              Vector RESULT = null;
1350         RESULT = new Vector();
1351              CUP$LexParse$result = new java_cup.runtime.Symbol(13/*statesOPT*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1352            }
1353          return CUP$LexParse$result;
1354
1355          /*. . . . . . . . . . . . . . . . . . . .*/
1356          case 23: // statesOPT ::= LESSTHAN states MORETHAN
1357
{
1358              Vector RESULT = null;
1359        int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
1360        int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
1361        Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
1362         RESULT = list;
1363              CUP$LexParse$result = new java_cup.runtime.Symbol(13/*statesOPT*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1364            }
1365          return CUP$LexParse$result;
1366
1367          /*. . . . . . . . . . . . . . . . . . . .*/
1368          case 22: // actions ::= NOACTION
1369
{
1370              Action RESULT = null;
1371         RESULT = null;
1372              CUP$LexParse$result = new java_cup.runtime.Symbol(18/*actions*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1373            }
1374          return CUP$LexParse$result;
1375
1376          /*. . . . . . . . . . . . . . . . . . . .*/
1377          case 21: // actions ::= REGEXPEND ACTION
1378
{
1379              Action RESULT = null;
1380        int aleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1381        int aright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1382        Action a = (Action)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1383         RESULT = a;
1384              CUP$LexParse$result = new java_cup.runtime.Symbol(18/*actions*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1385            }
1386          return CUP$LexParse$result;
1387
1388          /*. . . . . . . . . . . . . . . . . . . .*/
1389          case 20: // lookaheadOPT ::= LOOKAHEAD series DOLLAR
1390
{
1391              RegExp RESULT = null;
1392        int sleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
1393        int sright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
1394        RegExp s = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
1395         RESULT = new RegExp2(sym.CONCAT, s, makeNL());
1396              CUP$LexParse$result = new java_cup.runtime.Symbol(10/*lookaheadOPT*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1397            }
1398          return CUP$LexParse$result;
1399
1400          /*. . . . . . . . . . . . . . . . . . . .*/
1401          case 19: // lookaheadOPT ::=
1402
{
1403              RegExp RESULT = null;
1404         RESULT = null;
1405              CUP$LexParse$result = new java_cup.runtime.Symbol(10/*lookaheadOPT*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1406            }
1407          return CUP$LexParse$result;
1408
1409          /*. . . . . . . . . . . . . . . . . . . .*/
1410          case 18: // lookaheadOPT ::= LOOKAHEAD series
1411
{
1412              RegExp RESULT = null;
1413        int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1414        int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1415        RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1416         RESULT = r;
1417              CUP$LexParse$result = new java_cup.runtime.Symbol(10/*lookaheadOPT*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1418            }
1419          return CUP$LexParse$result;
1420
1421          /*. . . . . . . . . . . . . . . . . . . .*/
1422          case 17: // lookaheadOPT ::= DOLLAR
1423
{
1424              RegExp RESULT = null;
1425         RESULT = makeNL();
1426              CUP$LexParse$result = new java_cup.runtime.Symbol(10/*lookaheadOPT*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1427            }
1428          return CUP$LexParse$result;
1429
1430          /*. . . . . . . . . . . . . . . . . . . .*/
1431          case 16: // rule ::= error
1432
{
1433              Integer JavaDoc RESULT = null;
1434
1435              CUP$LexParse$result = new java_cup.runtime.Symbol(3/*rule*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1436            }
1437          return CUP$LexParse$result;
1438
1439          /*. . . . . . . . . . . . . . . . . . . .*/
1440          case 15: // rule ::= statesOPT EOFRULE ACTION
1441
{
1442              Integer JavaDoc RESULT = null;
1443        int sleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
1444        int sright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
1445        Vector s = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
1446        int aleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1447        int aright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1448        Action a = (Action)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1449         RESULT = new Integer JavaDoc(regExps.insert(s, a));
1450              CUP$LexParse$result = new java_cup.runtime.Symbol(3/*rule*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1451            }
1452          return CUP$LexParse$result;
1453
1454          /*. . . . . . . . . . . . . . . . . . . .*/
1455          case 14: // rule ::= statesOPT hatOPT series lookaheadOPT actions
1456
{
1457              Integer JavaDoc RESULT = null;
1458        int sleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).left;
1459        int sright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).right;
1460        Vector s = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).value;
1461        int bolleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).left;
1462        int bolright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).right;
1463        Boolean JavaDoc bol = (Boolean JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).value;
1464        int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
1465        int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
1466        RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
1467        int lleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
1468        int lright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
1469        RegExp l = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
1470        int aleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1471        int aright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1472        Action a = (Action)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1473         RESULT = new Integer JavaDoc(regExps.insert(rleft, s, r, a, bol, l));
1474              CUP$LexParse$result = new java_cup.runtime.Symbol(3/*rule*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1475            }
1476          return CUP$LexParse$result;
1477
1478          /*. . . . . . . . . . . . . . . . . . . .*/
1479          case 13: // rules ::= rule
1480
{
1481              Vector RESULT = null;
1482        int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1483        int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1484        Integer JavaDoc r = (Integer JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1485         RESULT = new Vector(); RESULT.addElement(r);
1486              CUP$LexParse$result = new java_cup.runtime.Symbol(16/*rules*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1487            }
1488          return CUP$LexParse$result;
1489
1490          /*. . . . . . . . . . . . . . . . . . . .*/
1491          case 12: // rules ::= LESSTHAN states MORETHAN LBRACE rules RBRACE
1492
{
1493              Vector RESULT = null;
1494        int statesleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).left;
1495        int statesright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).right;
1496        Vector states = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).value;
1497        int rlistleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
1498        int rlistright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
1499        Vector rlist = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
1500         
1501                     Enumeration rs = rlist.elements();
1502                     while ( rs.hasMoreElements() ) {
1503                       Integer JavaDoc elem = (Integer JavaDoc) rs.nextElement();
1504                       regExps.addStates( elem.intValue(), states );
1505                     }
1506                     RESULT = rlist;
1507                   
1508              CUP$LexParse$result = new java_cup.runtime.Symbol(16/*rules*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-5)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1509            }
1510          return CUP$LexParse$result;
1511
1512          /*. . . . . . . . . . . . . . . . . . . .*/
1513          case 11: // rules ::= rules LESSTHAN states MORETHAN LBRACE rules RBRACE
1514
{
1515              Vector RESULT = null;
1516        int rlist1left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-6)).left;
1517        int rlist1right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-6)).right;
1518        Vector rlist1 = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-6)).value;
1519        int statesleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).left;
1520        int statesright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).right;
1521        Vector states = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).value;
1522        int rlist2left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
1523        int rlist2right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
1524        Vector rlist2 = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
1525         
1526                     Enumeration rs = rlist2.elements();
1527                     while ( rs.hasMoreElements() ) {
1528                       Integer JavaDoc elem = (Integer JavaDoc) rs.nextElement();
1529                       regExps.addStates( elem.intValue(), states );
1530                       rlist1.addElement( elem );
1531                     }
1532                     RESULT = rlist1;
1533                   
1534              CUP$LexParse$result = new java_cup.runtime.Symbol(16/*rules*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-6)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1535            }
1536          return CUP$LexParse$result;
1537
1538          /*. . . . . . . . . . . . . . . . . . . .*/
1539          case 10: // rules ::= rules rule
1540
{
1541              Vector RESULT = null;
1542        int rlistleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
1543        int rlistright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
1544        Vector rlist = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
1545        int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1546        int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1547        Integer JavaDoc r = (Integer JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1548         rlist.addElement(r); RESULT = rlist;
1549              CUP$LexParse$result = new java_cup.runtime.Symbol(16/*rules*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1550            }
1551          return CUP$LexParse$result;
1552
1553          /*. . . . . . . . . . . . . . . . . . . .*/
1554          case 9: // macro ::= IDENT EQUALS
1555
{
1556              Object JavaDoc RESULT = null;
1557        int eleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left;
1558        int eright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right;
1559        Object JavaDoc e = (Object JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).value;
1560         syntaxError(ErrorMessages.REGEXP_EXPECTED, eleft, eright);
1561              CUP$LexParse$result = new java_cup.runtime.Symbol(2/*macro*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1562            }
1563          return CUP$LexParse$result;
1564
1565          /*. . . . . . . . . . . . . . . . . . . .*/
1566          case 8: // macro ::= IDENT EQUALS series REGEXPEND
1567
{
1568              Object JavaDoc RESULT = null;
1569        int nameleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).left;
1570        int nameright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).right;
1571        String JavaDoc name = (String JavaDoc)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).value;
1572        int definitionleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
1573        int definitionright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
1574        RegExp definition = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
1575         macros.insert(name, definition);
1576              CUP$LexParse$result = new java_cup.runtime.Symbol(2/*macro*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1577            }
1578          return CUP$LexParse$result;
1579
1580          /*. . . . . . . . . . . . . . . . . . . .*/
1581          case 7: // macro ::= UNICODE
1582
{
1583              Object JavaDoc RESULT = null;
1584         charClasses.setMaxCharCode(0xFFFF);
1585              CUP$LexParse$result = new java_cup.runtime.Symbol(2/*macro*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1586            }
1587          return CUP$LexParse$result;
1588
1589          /*. . . . . . . . . . . . . . . . . . . .*/
1590          case 6: // macro ::= FULL
1591
{
1592              Object JavaDoc RESULT = null;
1593         charClasses.setMaxCharCode(255);
1594              CUP$LexParse$result = new java_cup.runtime.Symbol(2/*macro*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1595            }
1596          return CUP$LexParse$result;
1597
1598          /*. . . . . . . . . . . . . . . . . . . .*/
1599          case 5: // macros ::= error
1600
{
1601              Object JavaDoc RESULT = null;
1602
1603              CUP$LexParse$result = new java_cup.runtime.Symbol(1/*macros*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1604            }
1605          return CUP$LexParse$result;
1606
1607          /*. . . . . . . . . . . . . . . . . . . .*/
1608          case 4: // macros ::= macros macro
1609
{
1610              Object JavaDoc RESULT = null;
1611
1612              CUP$LexParse$result = new java_cup.runtime.Symbol(1/*macros*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1613            }
1614          return CUP$LexParse$result;
1615
1616          /*. . . . . . . . . . . . . . . . . . . .*/
1617          case 3: // macros ::=
1618
{
1619              Object JavaDoc RESULT = null;
1620
1621              CUP$LexParse$result = new java_cup.runtime.Symbol(1/*macros*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1622            }
1623          return CUP$LexParse$result;
1624
1625          /*. . . . . . . . . . . . . . . . . . . .*/
1626          case 2: // specification ::=
1627
{
1628              NFA RESULT = null;
1629         
1630                     fatalError(ErrorMessages.NO_LEX_SPEC);
1631                   
1632              CUP$LexParse$result = new java_cup.runtime.Symbol(4/*specification*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1633            }
1634          return CUP$LexParse$result;
1635
1636          /*. . . . . . . . . . . . . . . . . . . .*/
1637          case 1: // specification ::= USERCODE macros DELIMITER rules
1638
{
1639              NFA RESULT = null;
1640        
1641                     scanner.t.stop();
1642
1643                     Out.checkErrors();
1644                     
1645                     Out.time(ErrorMessages.PARSING_TOOK, t);
1646                     
1647                     macros.expand();
1648                     Enumeration unused = macros.unused();
1649                     while ( unused.hasMoreElements() ) {
1650                       Out.warning("Macro \""+unused.nextElement()+"\" has been declared but never used.");
1651                     }
1652
1653                     SemCheck.check(regExps, macros, charClasses.getMaxCharCode(), scanner.file);
1654  
1655                     regExps.checkActions();
1656
1657                     if (Options.dump) charClasses.dump();
1658
1659                     Out.print("Constructing NFA : ");
1660
1661                     t.start();
1662                     int num = regExps.getNum();
1663                     
1664                     RESULT = new NFA(charClasses.getNumClasses(),
1665                                      scanner, regExps, macros, charClasses);
1666                     
1667                     eofActions.setNumLexStates(scanner.states.number());
1668
1669                     for (int i = 0; i < num; i++) {
1670                       if (regExps.isEOF(i))
1671                         eofActions.add( regExps.getStates(i), regExps.getAction(i) );
1672                       else
1673                         RESULT.addRegExp(i);
1674                     }
1675                     
1676                     if (scanner.standalone) RESULT.addStandaloneRule();
1677                     t.stop();
1678       
1679                     Out.time("");
1680                     Out.time(ErrorMessages.NFA_TOOK, t);
1681                     
1682                   
1683              CUP$LexParse$result = new java_cup.runtime.Symbol(4/*specification*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1684            }
1685          return CUP$LexParse$result;
1686
1687          /*. . . . . . . . . . . . . . . . . . . .*/
1688          case 0: // $START ::= specification EOF
1689
{
1690              Object JavaDoc RESULT = null;
1691        int start_valleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
1692        int start_valright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
1693        NFA start_val = (NFA)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
1694        RESULT = start_val;
1695              CUP$LexParse$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-0)).right, RESULT);
1696            }
1697          /* ACCEPT */
1698          CUP$LexParse$parser.done_parsing();
1699          return CUP$LexParse$result;
1700
1701          /* . . . . . .*/
1702          default:
1703            throw new Exception JavaDoc(
1704               "Invalid action number found in internal parse table");
1705
1706        }
1707    }
1708}
1709
1710
Popular Tags