001    
002    //----------------------------------------------------
003    // The following code was generated by CUP v0.11a beta 20060608
004    // Thu Jul 03 11:06:42 CEST 2008
005    //----------------------------------------------------
006    
007    package toolbus.parsercup;
008    
009    import java.io.File;
010    import java.io.FileNotFoundException;
011    import java.io.FileReader;
012    import java.io.Reader;
013    import java.util.ArrayList;
014    import java.util.HashMap;
015    import java.util.HashSet;
016    import java.util.Iterator;
017    import java.util.List;
018    import java.util.Stack;
019    import toolbus.TBTermFactory;
020    import toolbus.ToolBus;
021    import toolbus.atom.Assign;
022    import toolbus.atom.Atom;
023    import toolbus.atom.Create;
024    import toolbus.atom.Delta;
025    import toolbus.atom.Print;
026    import toolbus.atom.ShutDown;
027    import toolbus.atom.Tau;
028    import toolbus.atom.msg.RecMsg;
029    import toolbus.atom.msg.SndMsg;
030    import toolbus.atom.note.NoNote;
031    import toolbus.atom.note.RecNote;
032    import toolbus.atom.note.SndNote;
033    import toolbus.atom.note.Subscribe;
034    import toolbus.atom.note.UnSubscribe;
035    import toolbus.atom.tool.AckEvent;
036    import toolbus.atom.tool.Connect;
037    import toolbus.atom.tool.DisConnect;
038    import toolbus.atom.tool.Do;
039    import toolbus.atom.tool.Eval;
040    import toolbus.atom.tool.Event;
041    import toolbus.atom.tool.Execute;
042    import toolbus.atom.tool.GetPerfStats;
043    import toolbus.atom.tool.RecPerfStats;
044    import toolbus.atom.tool.RecRequest;
045    import toolbus.atom.tool.RecVal;
046    import toolbus.atom.tool.SndKill;
047    import toolbus.atom.tool.SndResponse;
048    import toolbus.atom.tool.Terminate;
049    import toolbus.exceptions.SyntaxErrorException;
050    import toolbus.exceptions.ToolBusError;
051    import toolbus.exceptions.ToolBusException;
052    import toolbus.exceptions.ToolBusExecutionException;
053    import toolbus.logging.IToolBusLoggerConstants;
054    import toolbus.logging.LoggerFactory;
055    import toolbus.process.Alternative;
056    import toolbus.process.Disrupt;
057    import toolbus.process.DynamicProcessCall;
058    import toolbus.process.IfElse;
059    import toolbus.process.IfThen;
060    import toolbus.process.Iteration;
061    import toolbus.process.LeftBiasedAlternative;
062    import toolbus.process.LetDefinition;
063    import toolbus.process.Merge;
064    import toolbus.process.ProcessCall;
065    import toolbus.process.ProcessDefinition;
066    import toolbus.process.ProcessExpression;
067    import toolbus.process.RightBiasedAlternative;
068    import toolbus.process.Sequence;
069    import toolbus.tool.ToolDefinition;
070    import aterm.AFun;
071    import aterm.ATerm;
072    import aterm.ATermList;
073    
074    /** CUP v0.11a beta 20060608 generated parser.
075      * @version Thu Jul 03 11:06:42 CEST 2008
076      */
077    public class parser extends java_cup.runtime.lr_parser {
078    
079      /** Default constructor. */
080      public parser() {super();}
081    
082      /** Constructor which sets the default scanner. */
083      public parser(java_cup.runtime.Scanner s) {super(s);}
084    
085      /** Constructor which sets the default scanner. */
086      public parser(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);}
087    
088      /** Production table. */
089      protected static final short _production_table[][] = 
090        unpackFromStrings(new String[] {
091        "\000\171\000\002\047\003\000\002\002\004\000\002\002" +
092        "\003\000\002\002\003\000\002\002\003\000\002\002\003" +
093        "\000\002\002\003\000\002\002\003\000\002\002\003\000" +
094        "\002\002\003\000\002\002\003\000\002\002\006\000\002" +
095        "\002\005\000\002\002\005\000\002\003\004\000\002\004" +
096        "\003\000\002\005\002\000\002\005\003\000\002\005\005" +
097        "\000\002\006\003\000\002\006\003\000\002\006\003\000" +
098        "\002\006\003\000\002\006\003\000\002\006\003\000\002" +
099        "\006\003\000\002\006\003\000\002\007\006\000\002\007" +
100        "\006\000\002\010\006\000\002\010\006\000\002\010\006" +
101        "\000\002\010\006\000\002\010\006\000\002\011\006\000" +
102        "\002\011\006\000\002\011\010\000\002\011\010\000\002" +
103        "\011\010\000\002\011\010\000\002\011\010\000\002\011" +
104        "\010\000\002\011\012\000\002\011\010\000\002\011\006" +
105        "\000\002\011\010\000\002\011\010\000\002\011\010\000" +
106        "\002\011\010\000\002\012\003\000\002\012\003\000\002" +
107        "\013\011\000\002\014\006\000\002\014\006\000\002\016" +
108        "\006\000\002\015\005\000\002\017\003\000\002\017\007" +
109        "\000\002\017\007\000\002\017\013\000\002\017\007\000" +
110        "\002\017\013\000\002\017\007\000\002\017\005\000\002" +
111        "\017\005\000\002\017\005\000\002\017\005\000\002\017" +
112        "\005\000\002\017\005\000\002\017\005\000\002\017\005" +
113        "\000\002\017\003\000\002\017\003\000\002\017\007\000" +
114        "\002\017\011\000\002\017\010\000\002\020\004\000\002" +
115        "\022\005\000\002\022\002\000\002\023\005\000\002\023" +
116        "\002\000\002\024\005\000\002\024\006\000\002\025\003" +
117        "\000\002\025\005\000\002\026\003\000\002\027\005\000" +
118        "\002\030\003\000\002\030\005\000\002\021\004\000\002" +
119        "\031\005\000\002\032\004\000\002\033\003\000\002\034" +
120        "\007\000\002\035\005\000\002\035\002\000\002\036\005" +
121        "\000\002\036\002\000\002\037\005\000\002\037\002\000" +
122        "\002\040\005\000\002\040\002\000\002\041\013\000\002" +
123        "\042\002\000\002\042\004\000\002\042\004\000\002\042" +
124        "\004\000\002\042\004\000\002\042\004\000\002\042\004" +
125        "\000\002\043\004\000\002\044\003\000\002\044\005\000" +
126        "\002\046\006\000\002\045\003\000\002\051\004\000\002" +
127        "\050\004\000\002\050\005\000\002\052\004\000\002\052" +
128        "\004\000\002\053\005" });
129    
130      /** Access to production table. */
131      public short[][] production_table() {return _production_table;}
132    
133      /** Parse-action table. */
134      protected static final short[][] _action_table = 
135        unpackFromStrings(new String[] {
136        "\000\u013c\000\022\002\uff9a\034\006\035\021\073\014\117" +
137        "\017\120\007\122\005\123\023\001\002\000\024\002\uff9a" +
138        "\034\006\035\021\073\014\117\017\120\007\122\005\123" +
139        "\023\124\uff9a\001\002\000\004\070\u013d\001\002\000\004" +
140        "\100\u0135\001\002\000\004\070\u0133\001\002\000\024\002" +
141        "\uff9a\034\006\035\021\073\014\117\017\120\007\122\005" +
142        "\123\023\124\uff9a\001\002\000\024\002\uff9a\034\006\035" +
143        "\021\073\014\117\017\120\007\122\005\123\023\124\uff9a" +
144        "\001\002\000\024\002\uff9a\034\006\035\021\073\014\117" +
145        "\017\120\007\122\005\123\023\124\uff9a\001\002\000\024" +
146        "\002\uff9a\034\006\035\021\073\014\117\017\120\007\122" +
147        "\005\123\023\124\uff9a\001\002\000\004\012\u011b\001\002" +
148        "\000\004\002\001\001\002\000\024\002\uff9a\034\006\035" +
149        "\021\073\014\117\017\120\007\122\005\123\023\124\uff9a" +
150        "\001\002\000\004\121\u0119\001\002\000\004\002\u0118\001" +
151        "\002\000\004\070\031\001\002\000\022\034\006\035\021" +
152        "\073\014\117\017\120\007\122\005\123\023\124\uff9a\001" +
153        "\002\000\004\070\025\001\002\000\024\002\uff8f\034\uff8f" +
154        "\035\uff8f\073\uff8f\117\uff8f\120\uff8f\122\uff8f\123\uff8f\124" +
155        "\uff8f\001\002\000\022\034\uff8a\035\uff8a\073\uff8a\117\uff8a" +
156        "\120\uff8a\122\uff8a\123\uff8a\124\uff8a\001\002\000\004\124" +
157        "\027\001\002\000\024\002\uff89\034\uff89\035\uff89\073\uff89" +
158        "\117\uff89\120\uff89\122\uff89\123\uff89\124\uff89\001\002\000" +
159        "\006\036\uffb1\100\032\001\002\000\006\036\uffa5\100\uffa5" +
160        "\001\002\000\004\070\u0110\001\002\000\004\036\034\001" +
161        "\002\000\102\013\040\014\073\015\062\016\106\017\072" +
162        "\020\066\021\107\022\067\023\074\024\065\025\104\026" +
163        "\071\027\061\030\042\031\075\032\053\033\054\037\076" +
164        "\040\111\041\052\042\047\043\044\044\063\045\041\046" +
165        "\060\047\051\050\057\065\077\070\070\071\101\072\045" +
166        "\100\103\001\002\000\062\002\uffc9\034\uffc9\035\uffc9\052" +
167        "\uffc9\053\uffc9\055\uffc9\056\uffc9\057\uffc9\060\uffc9\061\371" +
168        "\062\372\063\367\064\370\067\uffc9\073\uffc9\101\uffc9\113" +
169        "\uffc9\114\uffc9\115\uffc9\117\uffc9\120\uffc9\122\uffc9\123\uffc9" +
170        "\124\uffc9\001\002\000\052\002\uffba\034\uffba\035\uffba\052" +
171        "\uffba\053\uffba\055\uffba\056\uffba\057\uffba\060\uffba\067\uffba" +
172        "\073\uffba\101\uffba\113\uffba\114\uffba\115\uffba\117\uffba\120" +
173        "\uffba\122\uffba\123\uffba\124\uffba\001\002\000\062\002\uffe7" +
174        "\034\uffe7\035\uffe7\052\uffe7\053\uffe7\055\uffe7\056\uffe7\057" +
175        "\uffe7\060\uffe7\061\uffe7\062\uffe7\063\uffe7\064\uffe7\067\uffe7" +
176        "\073\uffe7\101\uffe7\113\uffe7\114\uffe7\115\uffe7\117\uffe7\120" +
177        "\uffe7\122\uffe7\123\uffe7\124\uffe7\001\002\000\004\100\364" +
178        "\001\002\000\004\100\361\001\002\000\004\100\354\001" +
179        "\002\000\062\002\uffec\034\uffec\035\uffec\052\uffec\053\uffec" +
180        "\055\uffec\056\uffec\057\uffec\060\uffec\061\uffec\062\uffec\063" +
181        "\uffec\064\uffec\067\uffec\073\uffec\101\uffec\113\uffec\114\uffec" +
182        "\115\uffec\117\uffec\120\uffec\122\uffec\123\uffec\124\uffec\001" +
183        "\002\000\004\100\347\001\002\000\062\002\uffcf\034\uffcf" +
184        "\035\uffcf\052\uffcf\053\uffcf\055\uffcf\056\uffcf\057\uffcf\060" +
185        "\uffcf\061\uffcf\062\uffcf\063\uffcf\064\uffcf\067\uffcf\073\uffcf" +
186        "\101\uffcf\113\uffcf\114\uffcf\115\uffcf\117\uffcf\120\uffcf\122" +
187        "\uffcf\123\uffcf\124\uffcf\001\002\000\062\002\uffea\034\uffea" +
188        "\035\uffea\052\uffea\053\uffea\055\uffea\056\uffea\057\uffea\060" +
189        "\uffea\061\uffea\062\uffea\063\uffea\064\uffea\067\uffea\073\uffea" +
190        "\101\uffea\113\uffea\114\uffea\115\uffea\117\uffea\120\uffea\122" +
191        "\uffea\123\uffea\124\uffea\001\002\000\004\100\342\001\002" +
192        "\000\052\002\uffb9\034\uffb9\035\uffb9\052\uffb9\053\uffb9\055" +
193        "\uffb9\056\uffb9\057\uffb9\060\uffb9\067\uffb9\073\uffb9\101\uffb9" +
194        "\113\uffb9\114\uffb9\115\uffb9\117\uffb9\120\uffb9\122\uffb9\123" +
195        "\uffb9\124\uffb9\001\002\000\004\100\335\001\002\000\004" +
196        "\100\332\001\002\000\004\100\325\001\002\000\004\100" +
197        "\320\001\002\000\062\002\uffee\034\uffee\035\uffee\052\uffee" +
198        "\053\uffee\055\uffee\056\uffee\057\uffee\060\uffee\061\uffee\062" +
199        "\uffee\063\uffee\064\uffee\067\uffee\073\uffee\101\uffee\113\uffee" +
200        "\114\uffee\115\uffee\117\uffee\120\uffee\122\uffee\123\uffee\124" +
201        "\uffee\001\002\000\062\002\uffe9\034\uffe9\035\uffe9\052\uffe9" +
202        "\053\uffe9\055\uffe9\056\uffe9\057\uffe9\060\uffe9\061\uffe9\062" +
203        "\uffe9\063\uffe9\064\uffe9\067\uffe9\073\uffe9\101\uffe9\113\uffe9" +
204        "\114\uffe9\115\uffe9\117\uffe9\120\uffe9\122\uffe9\123\uffe9\124" +
205        "\uffe9\001\002\000\026\004\114\005\125\006\121\007\117" +
206        "\010\124\011\123\012\115\070\127\105\120\107\113\001" +
207        "\002\000\004\100\306\001\002\000\004\100\301\001\002" +
208        "\000\004\100\276\001\002\000\004\100\271\001\002\000" +
209        "\042\002\uffa4\034\uffa4\035\uffa4\055\167\056\165\057\164" +
210        "\060\170\073\uffa4\113\172\114\173\115\166\117\uffa4\120" +
211        "\uffa4\122\uffa4\123\uffa4\124\uffa4\001\002\000\004\100\264" +
212        "\001\002\000\004\100\261\001\002\000\004\100\256\001" +
213        "\002\000\056\002\uffb3\034\uffb3\035\uffb3\052\uffb3\053\uffb3" +
214        "\054\254\055\uffb3\056\uffb3\057\uffb3\060\uffb3\067\uffb3\073" +
215        "\uffb3\100\221\101\uffb3\113\uffb3\114\uffb3\115\uffb3\117\uffb3" +
216        "\120\uffb3\122\uffb3\123\uffb3\124\uffb3\001\002\000\004\100" +
217        "\246\001\002\000\004\100\243\001\002\000\004\100\240" +
218        "\001\002\000\004\100\235\001\002\000\004\100\230\001" +
219        "\002\000\004\100\216\001\002\000\004\070\210\001\002" +
220        "\000\062\002\uffeb\034\uffeb\035\uffeb\052\uffeb\053\uffeb\055" +
221        "\uffeb\056\uffeb\057\uffeb\060\uffeb\061\uffeb\062\uffeb\063\uffeb" +
222        "\064\uffeb\067\uffeb\073\uffeb\101\uffeb\113\uffeb\114\uffeb\115" +
223        "\uffeb\117\uffeb\120\uffeb\122\uffeb\123\uffeb\124\uffeb\001\002" +
224        "\000\062\002\uffd0\034\uffd0\035\uffd0\052\uffd0\053\uffd0\055" +
225        "\uffd0\056\uffd0\057\uffd0\060\uffd0\061\uffd0\062\uffd0\063\uffd0" +
226        "\064\uffd0\067\uffd0\073\uffd0\101\uffd0\113\uffd0\114\uffd0\115" +
227        "\uffd0\117\uffd0\120\uffd0\122\uffd0\123\uffd0\124\uffd0\001\002" +
228        "\000\102\013\040\014\073\015\062\016\106\017\072\020" +
229        "\066\021\107\022\067\023\074\024\065\025\104\026\071" +
230        "\027\061\030\042\031\075\032\053\033\054\037\076\040" +
231        "\111\041\052\042\047\043\044\044\063\045\041\046\060" +
232        "\047\051\050\057\065\077\070\070\071\101\072\045\100" +
233        "\103\001\002\000\102\013\040\014\073\015\062\016\106" +
234        "\017\072\020\066\021\107\022\067\023\074\024\065\025" +
235        "\104\026\071\027\061\030\042\031\075\032\053\033\054" +
236        "\037\076\040\111\041\052\042\047\043\044\044\063\045" +
237        "\041\046\060\047\051\050\057\065\077\070\070\071\101" +
238        "\072\045\100\103\001\002\000\004\100\153\001\002\000" +
239        "\062\002\uffe8\034\uffe8\035\uffe8\052\uffe8\053\uffe8\055\uffe8" +
240        "\056\uffe8\057\uffe8\060\uffe8\061\uffe8\062\uffe8\063\uffe8\064" +
241        "\uffe8\067\uffe8\073\uffe8\101\uffe8\113\uffe8\114\uffe8\115\uffe8" +
242        "\117\uffe8\120\uffe8\122\uffe8\123\uffe8\124\uffe8\001\002\000" +
243        "\004\100\150\001\002\000\004\100\145\001\002\000\062" +
244        "\002\uffed\034\uffed\035\uffed\052\uffed\053\uffed\055\uffed\056" +
245        "\uffed\057\uffed\060\uffed\061\uffed\062\uffed\063\uffed\064\uffed" +
246        "\067\uffed\073\uffed\101\uffed\113\uffed\114\uffed\115\uffed\117" +
247        "\uffed\120\uffed\122\uffed\123\uffed\124\uffed\001\002\000\004" +
248        "\100\112\001\002\000\026\004\114\005\125\006\121\007" +
249        "\117\010\124\011\123\012\115\070\127\105\120\107\113" +
250        "\001\002\000\030\004\114\005\125\006\121\007\117\010" +
251        "\124\011\123\012\115\070\127\105\120\107\113\110\ufff1" +
252        "\001\002\000\076\002\uffff\034\uffff\035\uffff\051\uffff\052" +
253        "\uffff\053\uffff\055\uffff\056\uffff\057\uffff\060\uffff\061\uffff" +
254        "\062\uffff\063\uffff\064\uffff\066\uffff\067\uffff\073\uffff\101" +
255        "\uffff\102\uffff\106\uffff\110\uffff\111\uffff\113\uffff\114\uffff" +
256        "\115\uffff\117\uffff\120\uffff\122\uffff\123\uffff\124\uffff\001" +
257        "\002\000\100\002\ufff7\034\ufff7\035\ufff7\051\ufff7\052\ufff7" +
258        "\053\ufff7\055\ufff7\056\ufff7\057\ufff7\060\ufff7\061\ufff7\062" +
259        "\ufff7\063\ufff7\064\ufff7\066\ufff7\067\ufff7\073\ufff7\100\135" +
260        "\101\ufff7\102\ufff7\106\ufff7\110\ufff7\111\ufff7\113\ufff7\114" +
261        "\ufff7\115\ufff7\117\ufff7\120\ufff7\122\ufff7\123\ufff7\124\ufff7" +
262        "\001\002\000\004\101\134\001\002\000\076\002\ufffa\034" +
263        "\ufffa\035\ufffa\051\ufffa\052\ufffa\053\ufffa\055\ufffa\056\ufffa" +
264        "\057\ufffa\060\ufffa\061\ufffa\062\ufffa\063\ufffa\064\ufffa\066" +
265        "\ufffa\067\ufffa\073\ufffa\101\ufffa\102\ufffa\106\ufffa\110\ufffa" +
266        "\111\ufffa\113\ufffa\114\ufffa\115\ufffa\117\ufffa\120\ufffa\122" +
267        "\ufffa\123\ufffa\124\ufffa\001\002\000\026\004\114\005\125" +
268        "\006\121\007\117\010\124\011\123\012\115\070\127\105" +
269        "\120\107\113\001\002\000\076\002\ufffd\034\ufffd\035\ufffd" +
270        "\051\ufffd\052\ufffd\053\ufffd\055\ufffd\056\ufffd\057\ufffd\060" +
271        "\ufffd\061\ufffd\062\ufffd\063\ufffd\064\ufffd\066\ufffd\067\ufffd" +
272        "\073\ufffd\101\ufffd\102\ufffd\106\ufffd\110\ufffd\111\ufffd\113" +
273        "\ufffd\114\ufffd\115\ufffd\117\ufffd\120\ufffd\122\ufffd\123\ufffd" +
274        "\124\ufffd\001\002\000\076\002\ufffb\034\ufffb\035\ufffb\051" +
275        "\ufffb\052\ufffb\053\ufffb\055\ufffb\056\ufffb\057\ufffb\060\ufffb" +
276        "\061\ufffb\062\ufffb\063\ufffb\064\ufffb\066\ufffb\067\ufffb\073" +
277        "\ufffb\101\ufffb\102\ufffb\106\ufffb\110\ufffb\111\ufffb\113\ufffb" +
278        "\114\ufffb\115\ufffb\117\ufffb\120\ufffb\122\ufffb\123\ufffb\124" +
279        "\ufffb\001\002\000\076\002\ufff8\034\ufff8\035\ufff8\051\ufff8" +
280        "\052\ufff8\053\ufff8\055\ufff8\056\ufff8\057\ufff8\060\ufff8\061" +
281        "\ufff8\062\ufff8\063\ufff8\064\ufff8\066\ufff8\067\ufff8\073\ufff8" +
282        "\101\ufff8\102\ufff8\106\ufff8\110\ufff8\111\ufff8\113\ufff8\114" +
283        "\ufff8\115\ufff8\117\ufff8\120\ufff8\122\ufff8\123\ufff8\124\ufff8" +
284        "\001\002\000\076\002\ufff9\034\ufff9\035\ufff9\051\ufff9\052" +
285        "\ufff9\053\ufff9\055\ufff9\056\ufff9\057\ufff9\060\ufff9\061\ufff9" +
286        "\062\ufff9\063\ufff9\064\ufff9\066\ufff9\067\ufff9\073\ufff9\101" +
287        "\ufff9\102\ufff9\106\ufff9\110\ufff9\111\ufff9\113\ufff9\114\ufff9" +
288        "\115\ufff9\117\ufff9\120\ufff9\122\ufff9\123\ufff9\124\ufff9\001" +
289        "\002\000\076\002\ufffe\034\ufffe\035\ufffe\051\ufffe\052\ufffe" +
290        "\053\ufffe\055\ufffe\056\ufffe\057\ufffe\060\ufffe\061\ufffe\062" +
291        "\ufffe\063\ufffe\064\ufffe\066\ufffe\067\ufffe\073\ufffe\101\ufffe" +
292        "\102\ufffe\106\ufffe\110\ufffe\111\ufffe\113\ufffe\114\ufffe\115" +
293        "\ufffe\117\ufffe\120\ufffe\122\ufffe\123\ufffe\124\ufffe\001\002" +
294        "\000\076\002\ufffc\034\ufffc\035\ufffc\051\ufffc\052\ufffc\053" +
295        "\ufffc\055\ufffc\056\ufffc\057\ufffc\060\ufffc\061\ufffc\062\ufffc" +
296        "\063\ufffc\064\ufffc\066\ufffc\067\ufffc\073\ufffc\101\ufffc\102" +
297        "\ufffc\106\ufffc\110\ufffc\111\ufffc\113\ufffc\114\ufffc\115\ufffc" +
298        "\117\ufffc\120\ufffc\122\ufffc\123\ufffc\124\ufffc\001\002\000" +
299        "\076\002\ufff2\034\ufff2\035\ufff2\051\ufff2\052\ufff2\053\ufff2" +
300        "\055\ufff2\056\ufff2\057\ufff2\060\ufff2\061\ufff2\062\ufff2\063" +
301        "\ufff2\064\ufff2\066\ufff2\067\ufff2\073\ufff2\101\ufff2\102\ufff2" +
302        "\106\ufff2\110\ufff2\111\130\113\ufff2\114\ufff2\115\ufff2\117" +
303        "\ufff2\120\ufff2\122\ufff2\123\ufff2\124\ufff2\001\002\000\076" +
304        "\002\ufff3\034\ufff3\035\ufff3\051\ufff3\052\ufff3\053\ufff3\055" +
305        "\ufff3\056\ufff3\057\ufff3\060\ufff3\061\ufff3\062\ufff3\063\ufff3" +
306        "\064\ufff3\066\ufff3\067\ufff3\073\ufff3\101\ufff3\102\ufff3\106" +
307        "\ufff3\110\ufff3\111\ufff3\113\ufff3\114\ufff3\115\ufff3\117\ufff3" +
308        "\120\ufff3\122\ufff3\123\ufff3\124\ufff3\001\002\000\014\066" +
309        "\uffac\101\uffac\102\uffac\106\uffac\111\uffac\001\002\000\004" +
310        "\106\133\001\002\000\076\002\ufff4\034\ufff4\035\ufff4\051" +
311        "\ufff4\052\ufff4\053\ufff4\055\ufff4\056\ufff4\057\ufff4\060\ufff4" +
312        "\061\ufff4\062\ufff4\063\ufff4\064\ufff4\066\ufff4\067\ufff4\073" +
313        "\ufff4\101\ufff4\102\ufff4\106\ufff4\110\ufff4\111\ufff4\113\ufff4" +
314        "\114\ufff4\115\ufff4\117\ufff4\120\ufff4\122\ufff4\123\ufff4\124" +
315        "\ufff4\001\002\000\062\002\uffdf\034\uffdf\035\uffdf\052\uffdf" +
316        "\053\uffdf\055\uffdf\056\uffdf\057\uffdf\060\uffdf\061\uffdf\062" +
317        "\uffdf\063\uffdf\064\uffdf\067\uffdf\073\uffdf\101\uffdf\113\uffdf" +
318        "\114\uffdf\115\uffdf\117\uffdf\120\uffdf\122\uffdf\123\uffdf\124" +
319        "\uffdf\001\002\000\030\004\114\005\125\006\121\007\117" +
320        "\010\124\011\123\012\115\070\127\101\ufff1\105\120\107" +
321        "\113\001\002\000\010\101\ufff0\102\141\110\ufff0\001\002" +
322        "\000\004\101\140\001\002\000\076\002\ufff6\034\ufff6\035" +
323        "\ufff6\051\ufff6\052\ufff6\053\ufff6\055\ufff6\056\ufff6\057\ufff6" +
324        "\060\ufff6\061\ufff6\062\ufff6\063\ufff6\064\ufff6\066\ufff6\067" +
325        "\ufff6\073\ufff6\101\ufff6\102\ufff6\106\ufff6\110\ufff6\111\ufff6" +
326        "\113\ufff6\114\ufff6\115\ufff6\117\ufff6\120\ufff6\122\ufff6\123" +
327        "\ufff6\124\ufff6\001\002\000\032\004\114\005\125\006\121" +
328        "\007\117\010\124\011\123\012\115\070\127\101\ufff1\105" +
329        "\120\107\113\110\ufff1\001\002\000\006\101\uffef\110\uffef" +
330        "\001\002\000\004\110\144\001\002\000\076\002\ufff5\034" +
331        "\ufff5\035\ufff5\051\ufff5\052\ufff5\053\ufff5\055\ufff5\056\ufff5" +
332        "\057\ufff5\060\ufff5\061\ufff5\062\ufff5\063\ufff5\064\ufff5\066" +
333        "\ufff5\067\ufff5\073\ufff5\101\ufff5\102\ufff5\106\ufff5\110\ufff5" +
334        "\111\ufff5\113\ufff5\114\ufff5\115\ufff5\117\ufff5\120\ufff5\122" +
335        "\ufff5\123\ufff5\124\ufff5\001\002\000\026\004\114\005\125" +
336        "\006\121\007\117\010\124\011\123\012\115\070\127\105" +
337        "\120\107\113\001\002\000\004\101\147\001\002\000\062" +
338        "\002\uffe3\034\uffe3\035\uffe3\052\uffe3\053\uffe3\055\uffe3\056" +
339        "\uffe3\057\uffe3\060\uffe3\061\uffe3\062\uffe3\063\uffe3\064\uffe3" +
340        "\067\uffe3\073\uffe3\101\uffe3\113\uffe3\114\uffe3\115\uffe3\117" +
341        "\uffe3\120\uffe3\122\uffe3\123\uffe3\124\uffe3\001\002\000\026" +
342        "\004\114\005\125\006\121\007\117\010\124\011\123\012" +
343        "\115\070\127\105\120\107\113\001\002\000\004\101\152" +
344        "\001\002\000\062\002\uffe1\034\uffe1\035\uffe1\052\uffe1\053" +
345        "\uffe1\055\uffe1\056\uffe1\057\uffe1\060\uffe1\061\uffe1\062\uffe1" +
346        "\063\uffe1\064\uffe1\067\uffe1\073\uffe1\101\uffe1\113\uffe1\114" +
347        "\uffe1\115\uffe1\117\uffe1\120\uffe1\122\uffe1\123\uffe1\124\uffe1" +
348        "\001\002\000\026\004\114\005\125\006\121\007\117\010" +
349        "\124\011\123\012\115\070\127\105\120\107\113\001\002" +
350        "\000\004\102\155\001\002\000\026\004\114\005\125\006" +
351        "\121\007\117\010\124\011\123\012\115\070\127\105\120" +
352        "\107\113\001\002\000\006\101\160\102\157\001\002\000" +
353        "\026\004\114\005\125\006\121\007\117\010\124\011\123" +
354        "\012\115\070\127\105\120\107\113\001\002\000\062\002" +
355        "\uffda\034\uffda\035\uffda\052\uffda\053\uffda\055\uffda\056\uffda" +
356        "\057\uffda\060\uffda\061\uffda\062\uffda\063\uffda\064\uffda\067" +
357        "\uffda\073\uffda\101\uffda\113\uffda\114\uffda\115\uffda\117\uffda" +
358        "\120\uffda\122\uffda\123\uffda\124\uffda\001\002\000\004\101" +
359        "\162\001\002\000\062\002\uffd7\034\uffd7\035\uffd7\052\uffd7" +
360        "\053\uffd7\055\uffd7\056\uffd7\057\uffd7\060\uffd7\061\uffd7\062" +
361        "\uffd7\063\uffd7\064\uffd7\067\uffd7\073\uffd7\101\uffd7\113\uffd7" +
362        "\114\uffd7\115\uffd7\117\uffd7\120\uffd7\122\uffd7\123\uffd7\124" +
363        "\uffd7\001\002\000\022\055\167\056\165\057\164\060\170" +
364        "\101\171\113\172\114\173\115\166\001\002\000\102\013" +
365        "\040\014\073\015\062\016\106\017\072\020\066\021\107" +
366        "\022\067\023\074\024\065\025\104\026\071\027\061\030" +
367        "\042\031\075\032\053\033\054\037\076\040\111\041\052" +
368        "\042\047\043\044\044\063\045\041\046\060\047\051\050" +
369        "\057\065\077\070\070\071\101\072\045\100\103\001\002" +
370        "\000\102\013\040\014\073\015\062\016\106\017\072\020" +
371        "\066\021\107\022\067\023\074\024\065\025\104\026\071" +
372        "\027\061\030\042\031\075\032\053\033\054\037\076\040" +
373        "\111\041\052\042\047\043\044\044\063\045\041\046\060" +
374        "\047\051\050\057\065\077\070\070\071\101\072\045\100" +
375        "\103\001\002\000\102\013\040\014\073\015\062\016\106" +
376        "\017\072\020\066\021\107\022\067\023\074\024\065\025" +
377        "\104\026\071\027\061\030\042\031\075\032\053\033\054" +
378        "\037\076\040\111\041\052\042\047\043\044\044\063\045" +
379        "\041\046\060\047\051\050\057\065\077\070\070\071\101" +
380        "\072\045\100\103\001\002\000\102\013\040\014\073\015" +
381        "\062\016\106\017\072\020\066\021\107\022\067\023\074" +
382        "\024\065\025\104\026\071\027\061\030\042\031\075\032" +
383        "\053\033\054\037\076\040\111\041\052\042\047\043\044" +
384        "\044\063\045\041\046\060\047\051\050\057\065\077\070" +
385        "\070\071\101\072\045\100\103\001\002\000\102\013\040" +
386        "\014\073\015\062\016\106\017\072\020\066\021\107\022" +
387        "\067\023\074\024\065\025\104\026\071\027\061\030\042" +
388        "\031\075\032\053\033\054\037\076\040\111\041\052\042" +
389        "\047\043\044\044\063\045\041\046\060\047\051\050\057" +
390        "\065\077\070\070\071\101\072\045\100\103\001\002\000" +
391        "\052\002\uffbb\034\uffbb\035\uffbb\052\uffbb\053\uffbb\055\uffbb" +
392        "\056\uffbb\057\uffbb\060\uffbb\067\uffbb\073\uffbb\101\uffbb\113" +
393        "\uffbb\114\uffbb\115\uffbb\117\uffbb\120\uffbb\122\uffbb\123\uffbb" +
394        "\124\uffbb\001\002\000\102\013\040\014\073\015\062\016" +
395        "\106\017\072\020\066\021\107\022\067\023\074\024\065" +
396        "\025\104\026\071\027\061\030\042\031\075\032\053\033" +
397        "\054\037\076\040\111\041\052\042\047\043\044\044\063" +
398        "\045\041\046\060\047\051\050\057\065\077\070\070\071" +
399        "\101\072\045\100\103\001\002\000\102\013\040\014\073" +
400        "\015\062\016\106\017\072\020\066\021\107\022\067\023" +
401        "\074\024\065\025\104\026\071\027\061\030\042\031\075" +
402        "\032\053\033\054\037\076\040\111\041\052\042\047\043" +
403        "\044\044\063\045\041\046\060\047\051\050\057\065\077" +
404        "\070\070\071\101\072\045\100\103\001\002\000\052\002" +
405        "\uffbf\034\uffbf\035\uffbf\052\uffbf\053\uffbf\055\uffbf\056\uffbf" +
406        "\057\uffbf\060\170\067\uffbf\073\uffbf\101\uffbf\113\uffbf\114" +
407        "\173\115\166\117\uffbf\120\uffbf\122\uffbf\123\uffbf\124\uffbf" +
408        "\001\002\000\052\002\uffc2\034\uffc2\035\uffc2\052\uffc2\053" +
409        "\uffc2\055\uffc2\056\uffc2\057\uffc2\060\170\067\uffc2\073\uffc2" +
410        "\101\uffc2\113\uffc2\114\173\115\166\117\uffc2\120\uffc2\122" +
411        "\uffc2\123\uffc2\124\uffc2\001\002\000\052\002\uffbc\034\uffbc" +
412        "\035\uffbc\052\uffbc\053\uffbc\055\uffbc\056\uffbc\057\uffbc\060" +
413        "\uffbc\067\uffbc\073\uffbc\101\uffbc\113\uffbc\114\uffbc\115\uffbc" +
414        "\117\uffbc\120\uffbc\122\uffbc\123\uffbc\124\uffbc\001\002\000" +
415        "\052\002\uffbd\034\uffbd\035\uffbd\052\uffbd\053\uffbd\055\uffbd" +
416        "\056\165\057\164\060\170\067\uffbd\073\uffbd\101\uffbd\113" +
417        "\172\114\173\115\166\117\uffbd\120\uffbd\122\uffbd\123\uffbd" +
418        "\124\uffbd\001\002\000\052\002\uffbe\034\uffbe\035\uffbe\052" +
419        "\uffbe\053\uffbe\055\uffbe\056\uffbe\057\uffbe\060\170\067\uffbe" +
420        "\073\uffbe\101\uffbe\113\uffbe\114\uffbe\115\uffbe\117\uffbe\120" +
421        "\uffbe\122\uffbe\123\uffbe\124\uffbe\001\002\000\052\002\uffc1" +
422        "\034\uffc1\035\uffc1\052\uffc1\053\uffc1\055\uffc1\056\uffc1\057" +
423        "\uffc1\060\170\067\uffc1\073\uffc1\101\uffc1\113\172\114\173" +
424        "\115\166\117\uffc1\120\uffc1\122\uffc1\123\uffc1\124\uffc1\001" +
425        "\002\000\052\002\uffc0\034\uffc0\035\uffc0\052\uffc0\053\uffc0" +
426        "\055\uffc0\056\165\057\164\060\170\067\uffc0\073\uffc0\101" +
427        "\uffc0\113\172\114\173\115\166\117\uffc0\120\uffc0\122\uffc0" +
428        "\123\uffc0\124\uffc0\001\002\000\022\055\167\056\165\057" +
429        "\164\060\170\067\205\113\172\114\173\115\166\001\002" +
430        "\000\052\002\uffa8\034\uffa8\035\uffa8\052\uffa8\053\uffa8\055" +
431        "\uffa8\056\uffa8\057\uffa8\060\uffa8\067\uffa8\073\uffa8\101\uffa8" +
432        "\113\uffa8\114\uffa8\115\uffa8\117\uffa8\120\uffa8\122\uffa8\123" +
433        "\uffa8\124\uffa8\001\002\000\052\002\uffa6\034\uffa6\035\uffa6" +
434        "\052\uffa6\053\uffa6\055\uffa6\056\uffa6\057\uffa6\060\uffa6\067" +
435        "\uffa6\073\uffa6\101\uffa6\113\uffa6\114\uffa6\115\uffa6\117\uffa6" +
436        "\120\uffa6\122\uffa6\123\uffa6\124\uffa6\001\002\000\004\066" +
437        "\215\001\002\000\006\066\uffaa\102\213\001\002\000\004" +
438        "\112\211\001\002\000\026\004\114\005\125\006\121\007" +
439        "\117\010\124\011\123\012\115\070\127\105\120\107\113" +
440        "\001\002\000\006\066\uffab\102\uffab\001\002\000\004\070" +
441        "\210\001\002\000\004\066\uffa9\001\002\000\102\013\uffa7" +
442        "\014\uffa7\015\uffa7\016\uffa7\017\uffa7\020\uffa7\021\uffa7\022" +
443        "\uffa7\023\uffa7\024\uffa7\025\uffa7\026\uffa7\027\uffa7\030\uffa7" +
444        "\031\uffa7\032\uffa7\033\uffa7\037\uffa7\040\uffa7\041\uffa7\042" +
445        "\uffa7\043\uffa7\044\uffa7\045\uffa7\046\uffa7\047\uffa7\050\uffa7" +
446        "\065\uffa7\070\uffa7\071\uffa7\072\uffa7\100\uffa7\001\002\000" +
447        "\004\070\217\001\002\000\006\100\221\102\uffb3\001\002" +
448        "\000\004\102\224\001\002\000\030\004\114\005\125\006" +
449        "\121\007\117\010\124\011\123\012\115\070\127\101\ufff1" +
450        "\105\120\107\113\001\002\000\004\101\223\001\002\000" +
451        "\054\002\uffb4\034\uffb4\035\uffb4\052\uffb4\053\uffb4\055\uffb4" +
452        "\056\uffb4\057\uffb4\060\uffb4\067\uffb4\073\uffb4\101\uffb4\102" +
453        "\uffb4\113\uffb4\114\uffb4\115\uffb4\117\uffb4\120\uffb4\122\uffb4" +
454        "\123\uffb4\124\uffb4\001\002\000\004\070\226\001\002\000" +
455        "\004\101\227\001\002\000\004\111\130\001\002\000\062" +
456        "\002\uffce\034\uffce\035\uffce\052\uffce\053\uffce\055\uffce\056" +
457        "\uffce\057\uffce\060\uffce\061\uffce\062\uffce\063\uffce\064\uffce" +
458        "\067\uffce\073\uffce\101\uffce\113\uffce\114\uffce\115\uffce\117" +
459        "\uffce\120\uffce\122\uffce\123\uffce\124\uffce\001\002\000\026" +
460        "\004\114\005\125\006\121\007\117\010\124\011\123\012" +
461        "\115\070\127\105\120\107\113\001\002\000\004\102\232" +
462        "\001\002\000\026\004\114\005\125\006\121\007\117\010" +
463        "\124\011\123\012\115\070\127\105\120\107\113\001\002" +
464        "\000\004\101\234\001\002\000\062\002\uffd3\034\uffd3\035" +
465        "\uffd3\052\uffd3\053\uffd3\055\uffd3\056\uffd3\057\uffd3\060\uffd3" +
466        "\061\uffd3\062\uffd3\063\uffd3\064\uffd3\067\uffd3\073\uffd3\101" +
467        "\uffd3\113\uffd3\114\uffd3\115\uffd3\117\uffd3\120\uffd3\122\uffd3" +
468        "\123\uffd3\124\uffd3\001\002\000\030\004\114\005\125\006" +
469        "\121\007\117\010\124\011\123\012\115\070\127\101\ufff1" +
470        "\105\120\107\113\001\002\000\004\101\237\001\002\000" +
471        "\062\002\uffcc\034\uffcc\035\uffcc\052\uffcc\053\uffcc\055\uffcc" +
472        "\056\uffcc\057\uffcc\060\uffcc\061\uffcc\062\uffcc\063\uffcc\064" +
473        "\uffcc\067\uffcc\073\uffcc\101\uffcc\113\uffcc\114\uffcc\115\uffcc" +
474        "\117\uffcc\120\uffcc\122\uffcc\123\uffcc\124\uffcc\001\002\000" +
475        "\030\004\114\005\125\006\121\007\117\010\124\011\123" +
476        "\012\115\070\127\101\ufff1\105\120\107\113\001\002\000" +
477        "\004\101\242\001\002\000\062\002\uffe5\034\uffe5\035\uffe5" +
478        "\052\uffe5\053\uffe5\055\uffe5\056\uffe5\057\uffe5\060\uffe5\061" +
479        "\uffe5\062\uffe5\063\uffe5\064\uffe5\067\uffe5\073\uffe5\101\uffe5" +
480        "\113\uffe5\114\uffe5\115\uffe5\117\uffe5\120\uffe5\122\uffe5\123" +
481        "\uffe5\124\uffe5\001\002\000\026\004\114\005\125\006\121" +
482        "\007\117\010\124\011\123\012\115\070\127\105\120\107" +
483        "\113\001\002\000\004\101\245\001\002\000\062\002\uffe0" +
484        "\034\uffe0\035\uffe0\052\uffe0\053\uffe0\055\uffe0\056\uffe0\057" +
485        "\uffe0\060\uffe0\061\uffe0\062\uffe0\063\uffe0\064\uffe0\067\uffe0" +
486        "\073\uffe0\101\uffe0\113\uffe0\114\uffe0\115\uffe0\117\uffe0\120" +
487        "\uffe0\122\uffe0\123\uffe0\124\uffe0\001\002\000\026\004\114" +
488        "\005\125\006\121\007\117\010\124\011\123\012\115\070" +
489        "\127\105\120\107\113\001\002\000\004\102\250\001\002" +
490        "\000\026\004\114\005\125\006\121\007\117\010\124\011" +
491        "\123\012\115\070\127\105\120\107\113\001\002\000\004" +
492        "\101\252\001\002\000\062\002\uffd9\034\uffd9\035\uffd9\052" +
493        "\uffd9\053\uffd9\055\uffd9\056\uffd9\057\uffd9\060\uffd9\061\uffd9" +
494        "\062\uffd9\063\uffd9\064\uffd9\067\uffd9\073\uffd9\101\uffd9\113" +
495        "\uffd9\114\uffd9\115\uffd9\117\uffd9\120\uffd9\122\uffd9\123\uffd9" +
496        "\124\uffd9\001\002\000\052\002\uffb5\034\uffb5\035\uffb5\052" +
497        "\uffb5\053\uffb5\055\uffb5\056\uffb5\057\uffb5\060\uffb5\067\uffb5" +
498        "\073\uffb5\101\uffb5\113\uffb5\114\uffb5\115\uffb5\117\uffb5\120" +
499        "\uffb5\122\uffb5\123\uffb5\124\uffb5\001\002\000\026\004\114" +
500        "\005\125\006\121\007\117\010\124\011\123\012\115\070" +
501        "\127\105\120\107\113\001\002\000\062\002\uffca\034\uffca" +
502        "\035\uffca\052\uffca\053\uffca\055\uffca\056\uffca\057\uffca\060" +
503        "\uffca\061\uffca\062\uffca\063\uffca\064\uffca\067\uffca\073\uffca" +
504        "\101\uffca\113\uffca\114\uffca\115\uffca\117\uffca\120\uffca\122" +
505        "\uffca\123\uffca\124\uffca\001\002\000\030\004\114\005\125" +
506        "\006\121\007\117\010\124\011\123\012\115\070\127\101" +
507        "\ufff1\105\120\107\113\001\002\000\004\101\260\001\002" +
508        "\000\062\002\uffcd\034\uffcd\035\uffcd\052\uffcd\053\uffcd\055" +
509        "\uffcd\056\uffcd\057\uffcd\060\uffcd\061\uffcd\062\uffcd\063\uffcd" +
510        "\064\uffcd\067\uffcd\073\uffcd\101\uffcd\113\uffcd\114\uffcd\115" +
511        "\uffcd\117\uffcd\120\uffcd\122\uffcd\123\uffcd\124\uffcd\001\002" +
512        "\000\026\004\114\005\125\006\121\007\117\010\124\011" +
513        "\123\012\115\070\127\105\120\107\113\001\002\000\004" +
514        "\101\263\001\002\000\062\002\uffe4\034\uffe4\035\uffe4\052" +
515        "\uffe4\053\uffe4\055\uffe4\056\uffe4\057\uffe4\060\uffe4\061\uffe4" +
516        "\062\uffe4\063\uffe4\064\uffe4\067\uffe4\073\uffe4\101\uffe4\113" +
517        "\uffe4\114\uffe4\115\uffe4\117\uffe4\120\uffe4\122\uffe4\123\uffe4" +
518        "\124\uffe4\001\002\000\026\004\114\005\125\006\121\007" +
519        "\117\010\124\011\123\012\115\070\127\105\120\107\113" +
520        "\001\002\000\004\102\266\001\002\000\026\004\114\005" +
521        "\125\006\121\007\117\010\124\011\123\012\115\070\127" +
522        "\105\120\107\113\001\002\000\004\101\270\001\002\000" +
523        "\062\002\uffdb\034\uffdb\035\uffdb\052\uffdb\053\uffdb\055\uffdb" +
524        "\056\uffdb\057\uffdb\060\uffdb\061\uffdb\062\uffdb\063\uffdb\064" +
525        "\uffdb\067\uffdb\073\uffdb\101\uffdb\113\uffdb\114\uffdb\115\uffdb" +
526        "\117\uffdb\120\uffdb\122\uffdb\123\uffdb\124\uffdb\001\002\000" +
527        "\026\004\114\005\125\006\121\007\117\010\124\011\123" +
528        "\012\115\070\127\105\120\107\113\001\002\000\004\102" +
529        "\273\001\002\000\026\004\114\005\125\006\121\007\117" +
530        "\010\124\011\123\012\115\070\127\105\120\107\113\001" +
531        "\002\000\004\101\275\001\002\000\062\002\uffdc\034\uffdc" +
532        "\035\uffdc\052\uffdc\053\uffdc\055\uffdc\056\uffdc\057\uffdc\060" +
533        "\uffdc\061\uffdc\062\uffdc\063\uffdc\064\uffdc\067\uffdc\073\uffdc" +
534        "\101\uffdc\113\uffdc\114\uffdc\115\uffdc\117\uffdc\120\uffdc\122" +
535        "\uffdc\123\uffdc\124\uffdc\001\002\000\026\004\114\005\125" +
536        "\006\121\007\117\010\124\011\123\012\115\070\127\105" +
537        "\120\107\113\001\002\000\004\101\300\001\002\000\062" +
538        "\002\uffe2\034\uffe2\035\uffe2\052\uffe2\053\uffe2\055\uffe2\056" +
539        "\uffe2\057\uffe2\060\uffe2\061\uffe2\062\uffe2\063\uffe2\064\uffe2" +
540        "\067\uffe2\073\uffe2\101\uffe2\113\uffe2\114\uffe2\115\uffe2\117" +
541        "\uffe2\120\uffe2\122\uffe2\123\uffe2\124\uffe2\001\002\000\026" +
542        "\004\114\005\125\006\121\007\117\010\124\011\123\012" +
543        "\115\070\127\105\120\107\113\001\002\000\004\102\303" +
544        "\001\002\000\026\004\114\005\125\006\121\007\117\010" +
545        "\124\011\123\012\115\070\127\105\120\107\113\001\002" +
546        "\000\004\101\305\001\002\000\062\002\uffd8\034\uffd8\035" +
547        "\uffd8\052\uffd8\053\uffd8\055\uffd8\056\uffd8\057\uffd8\060\uffd8" +
548        "\061\uffd8\062\uffd8\063\uffd8\064\uffd8\067\uffd8\073\uffd8\101" +
549        "\uffd8\113\uffd8\114\uffd8\115\uffd8\117\uffd8\120\uffd8\122\uffd8" +
550        "\123\uffd8\124\uffd8\001\002\000\026\004\114\005\125\006" +
551        "\121\007\117\010\124\011\123\012\115\070\127\105\120" +
552        "\107\113\001\002\000\004\101\310\001\002\000\062\002" +
553        "\uffd5\034\uffd5\035\uffd5\052\uffd5\053\uffd5\055\uffd5\056\uffd5" +
554        "\057\uffd5\060\uffd5\061\uffd5\062\uffd5\063\uffd5\064\uffd5\067" +
555        "\uffd5\073\uffd5\101\uffd5\113\uffd5\114\uffd5\115\uffd5\117\uffd5" +
556        "\120\uffd5\122\uffd5\123\uffd5\124\uffd5\001\002\000\004\051" +
557        "\312\001\002\000\102\013\040\014\073\015\062\016\106" +
558        "\017\072\020\066\021\107\022\067\023\074\024\065\025" +
559        "\104\026\071\027\061\030\042\031\075\032\053\033\054" +
560        "\037\076\040\111\041\052\042\047\043\044\044\063\045" +
561        "\041\046\060\047\051\050\057\065\077\070\070\071\101" +
562        "\072\045\100\103\001\002\000\024\052\315\053\314\055" +
563        "\167\056\165\057\164\060\170\113\172\114\173\115\166" +
564        "\001\002\000\052\002\uffb8\034\uffb8\035\uffb8\052\uffb8\053" +
565        "\uffb8\055\uffb8\056\uffb8\057\uffb8\060\uffb8\067\uffb8\073\uffb8" +
566        "\101\uffb8\113\uffb8\114\uffb8\115\uffb8\117\uffb8\120\uffb8\122" +
567        "\uffb8\123\uffb8\124\uffb8\001\002\000\102\013\040\014\073" +
568        "\015\062\016\106\017\072\020\066\021\107\022\067\023" +
569        "\074\024\065\025\104\026\071\027\061\030\042\031\075" +
570        "\032\053\033\054\037\076\040\111\041\052\042\047\043" +
571        "\044\044\063\045\041\046\060\047\051\050\057\065\077" +
572        "\070\070\071\101\072\045\100\103\001\002\000\022\053" +
573        "\317\055\167\056\165\057\164\060\170\113\172\114\173" +
574        "\115\166\001\002\000\052\002\uffb7\034\uffb7\035\uffb7\052" +
575        "\uffb7\053\uffb7\055\uffb7\056\uffb7\057\uffb7\060\uffb7\067\uffb7" +
576        "\073\uffb7\101\uffb7\113\uffb7\114\uffb7\115\uffb7\117\uffb7\120" +
577        "\uffb7\122\uffb7\123\uffb7\124\uffb7\001\002\000\026\004\114" +
578        "\005\125\006\121\007\117\010\124\011\123\012\115\070" +
579        "\127\105\120\107\113\001\002\000\004\102\322\001\002" +
580        "\000\026\004\114\005\125\006\121\007\117\010\124\011" +
581        "\123\012\115\070\127\105\120\107\113\001\002\000\004" +
582        "\101\324\001\002\000\062\002\uffd1\034\uffd1\035\uffd1\052" +
583        "\uffd1\053\uffd1\055\uffd1\056\uffd1\057\uffd1\060\uffd1\061\uffd1" +
584        "\062\uffd1\063\uffd1\064\uffd1\067\uffd1\073\uffd1\101\uffd1\113" +
585        "\uffd1\114\uffd1\115\uffd1\117\uffd1\120\uffd1\122\uffd1\123\uffd1" +
586        "\124\uffd1\001\002\000\026\004\114\005\125\006\121\007" +
587        "\117\010\124\011\123\012\115\070\127\105\120\107\113" +
588        "\001\002\000\004\102\327\001\002\000\026\004\114\005" +
589        "\125\006\121\007\117\010\124\011\123\012\115\070\127" +
590        "\105\120\107\113\001\002\000\004\101\331\001\002\000" +
591        "\062\002\uffd2\034\uffd2\035\uffd2\052\uffd2\053\uffd2\055\uffd2" +
592        "\056\uffd2\057\uffd2\060\uffd2\061\uffd2\062\uffd2\063\uffd2\064" +
593        "\uffd2\067\uffd2\073\uffd2\101\uffd2\113\uffd2\114\uffd2\115\uffd2" +
594        "\117\uffd2\120\uffd2\122\uffd2\123\uffd2\124\uffd2\001\002\000" +
595        "\026\004\114\005\125\006\121\007\117\010\124\011\123" +
596        "\012\115\070\127\105\120\107\113\001\002\000\004\101" +
597        "\334\001\002\000\062\002\uffde\034\uffde\035\uffde\052\uffde" +
598        "\053\uffde\055\uffde\056\uffde\057\uffde\060\uffde\061\uffde\062" +
599        "\uffde\063\uffde\064\uffde\067\uffde\073\uffde\101\uffde\113\uffde" +
600        "\114\uffde\115\uffde\117\uffde\120\uffde\122\uffde\123\uffde\124" +
601        "\uffde\001\002\000\026\004\114\005\125\006\121\007\117" +
602        "\010\124\011\123\012\115\070\127\105\120\107\113\001" +
603        "\002\000\004\102\337\001\002\000\026\004\114\005\125" +
604        "\006\121\007\117\010\124\011\123\012\115\070\127\105" +
605        "\120\107\113\001\002\000\004\101\341\001\002\000\062" +
606        "\002\uffd4\034\uffd4\035\uffd4\052\uffd4\053\uffd4\055\uffd4\056" +
607        "\uffd4\057\uffd4\060\uffd4\061\uffd4\062\uffd4\063\uffd4\064\uffd4" +
608        "\067\uffd4\073\uffd4\101\uffd4\113\uffd4\114\uffd4\115\uffd4\117" +
609        "\uffd4\120\uffd4\122\uffd4\123\uffd4\124\uffd4\001\002\000\026" +
610        "\004\114\005\125\006\121\007\117\010\124\011\123\012" +
611        "\115\070\127\105\120\107\113\001\002\000\004\102\344" +
612        "\001\002\000\026\004\114\005\125\006\121\007\117\010" +
613        "\124\011\123\012\115\070\127\105\120\107\113\001\002" +
614        "\000\004\101\346\001\002\000\052\002\uffb6\034\uffb6\035" +
615        "\uffb6\052\uffb6\053\uffb6\055\uffb6\056\uffb6\057\uffb6\060\uffb6" +
616        "\067\uffb6\073\uffb6\101\uffb6\113\uffb6\114\uffb6\115\uffb6\117" +
617        "\uffb6\120\uffb6\122\uffb6\123\uffb6\124\uffb6\001\002\000\026" +
618        "\004\114\005\125\006\121\007\117\010\124\011\123\012" +
619        "\115\070\127\105\120\107\113\001\002\000\004\102\351" +
620        "\001\002\000\026\004\114\005\125\006\121\007\117\010" +
621        "\124\011\123\012\115\070\127\105\120\107\113\001\002" +
622        "\000\004\101\353\001\002\000\062\002\uffdd\034\uffdd\035" +
623        "\uffdd\052\uffdd\053\uffdd\055\uffdd\056\uffdd\057\uffdd\060\uffdd" +
624        "\061\uffdd\062\uffdd\063\uffdd\064\uffdd\067\uffdd\073\uffdd\101" +
625        "\uffdd\113\uffdd\114\uffdd\115\uffdd\117\uffdd\120\uffdd\122\uffdd" +
626        "\123\uffdd\124\uffdd\001\002\000\026\004\114\005\125\006" +
627        "\121\007\117\010\124\011\123\012\115\070\127\105\120" +
628        "\107\113\001\002\000\004\102\356\001\002\000\026\004" +
629        "\114\005\125\006\121\007\117\010\124\011\123\012\115" +
630        "\070\127\105\120\107\113\001\002\000\004\101\360\001" +
631        "\002\000\062\002\uffd6\034\uffd6\035\uffd6\052\uffd6\053\uffd6" +
632        "\055\uffd6\056\uffd6\057\uffd6\060\uffd6\061\uffd6\062\uffd6\063" +
633        "\uffd6\064\uffd6\067\uffd6\073\uffd6\101\uffd6\113\uffd6\114\uffd6" +
634        "\115\uffd6\117\uffd6\120\uffd6\122\uffd6\123\uffd6\124\uffd6\001" +
635        "\002\000\026\004\114\005\125\006\121\007\117\010\124" +
636        "\011\123\012\115\070\127\105\120\107\113\001\002\000" +
637        "\004\101\363\001\002\000\062\002\uffcb\034\uffcb\035\uffcb" +
638        "\052\uffcb\053\uffcb\055\uffcb\056\uffcb\057\uffcb\060\uffcb\061" +
639        "\uffcb\062\uffcb\063\uffcb\064\uffcb\067\uffcb\073\uffcb\101\uffcb" +
640        "\113\uffcb\114\uffcb\115\uffcb\117\uffcb\120\uffcb\122\uffcb\123" +
641        "\uffcb\124\uffcb\001\002\000\030\004\114\005\125\006\121" +
642        "\007\117\010\124\011\123\012\115\070\127\101\ufff1\105" +
643        "\120\107\113\001\002\000\004\101\366\001\002\000\062" +
644        "\002\uffe6\034\uffe6\035\uffe6\052\uffe6\053\uffe6\055\uffe6\056" +
645        "\uffe6\057\uffe6\060\uffe6\061\uffe6\062\uffe6\063\uffe6\064\uffe6" +
646        "\067\uffe6\073\uffe6\101\uffe6\113\uffe6\114\uffe6\115\uffe6\117" +
647        "\uffe6\120\uffe6\122\uffe6\123\uffe6\124\uffe6\001\002\000\004" +
648        "\100\u010c\001\002\000\004\100\u0109\001\002\000\004\100" +
649        "\u0102\001\002\000\004\100\373\001\002\000\030\004\114" +
650        "\005\125\006\121\007\117\010\124\011\123\012\115\070" +
651        "\127\101\ufff1\105\120\107\113\001\002\000\004\101\375" +
652        "\001\002\000\054\002\uffc5\034\uffc5\035\uffc5\052\uffc5\053" +
653        "\uffc5\055\uffc5\056\uffc5\057\uffc5\060\uffc5\064\376\067\uffc5" +
654        "\073\uffc5\101\uffc5\113\uffc5\114\uffc5\115\uffc5\117\uffc5\120" +
655        "\uffc5\122\uffc5\123\uffc5\124\uffc5\001\002\000\004\100\377" +
656        "\001\002\000\030\004\114\005\125\006\121\007\117\010" +
657        "\124\011\123\012\115\070\127\101\ufff1\105\120\107\113" +
658        "\001\002\000\004\101\u0101\001\002\000\052\002\uffc4\034" +
659        "\uffc4\035\uffc4\052\uffc4\053\uffc4\055\uffc4\056\uffc4\057\uffc4" +
660        "\060\uffc4\067\uffc4\073\uffc4\101\uffc4\113\uffc4\114\uffc4\115" +
661        "\uffc4\117\uffc4\120\uffc4\122\uffc4\123\uffc4\124\uffc4\001\002" +
662        "\000\026\004\114\005\125\006\121\007\117\010\124\011" +
663        "\123\012\115\070\127\105\120\107\113\001\002\000\004" +
664        "\101\u0104\001\002\000\054\002\uffc8\034\uffc8\035\uffc8\052" +
665        "\uffc8\053\uffc8\055\uffc8\056\uffc8\057\uffc8\060\uffc8\063\u0105" +
666        "\067\uffc8\073\uffc8\101\uffc8\113\uffc8\114\uffc8\115\uffc8\117" +
667        "\uffc8\120\uffc8\122\uffc8\123\uffc8\124\uffc8\001\002\000\004" +
668        "\100\u0106\001\002\000\026\004\114\005\125\006\121\007" +
669        "\117\010\124\011\123\012\115\070\127\105\120\107\113" +
670        "\001\002\000\004\101\u0108\001\002\000\052\002\uffc6\034" +
671        "\uffc6\035\uffc6\052\uffc6\053\uffc6\055\uffc6\056\uffc6\057\uffc6" +
672        "\060\uffc6\067\uffc6\073\uffc6\101\uffc6\113\uffc6\114\uffc6\115" +
673        "\uffc6\117\uffc6\120\uffc6\122\uffc6\123\uffc6\124\uffc6\001\002" +
674        "\000\030\004\114\005\125\006\121\007\117\010\124\011" +
675        "\123\012\115\070\127\101\ufff1\105\120\107\113\001\002" +
676        "\000\004\101\u010b\001\002\000\052\002\uffc3\034\uffc3\035" +
677        "\uffc3\052\uffc3\053\uffc3\055\uffc3\056\uffc3\057\uffc3\060\uffc3" +
678        "\067\uffc3\073\uffc3\101\uffc3\113\uffc3\114\uffc3\115\uffc3\117" +
679        "\uffc3\120\uffc3\122\uffc3\123\uffc3\124\uffc3\001\002\000\026" +
680        "\004\114\005\125\006\121\007\117\010\124\011\123\012" +
681        "\115\070\127\105\120\107\113\001\002\000\004\101\u010e" +
682        "\001\002\000\052\002\uffc7\034\uffc7\035\uffc7\052\uffc7\053" +
683        "\uffc7\055\uffc7\056\uffc7\057\uffc7\060\uffc7\067\uffc7\073\uffc7" +
684        "\101\uffc7\113\uffc7\114\uffc7\115\uffc7\117\uffc7\120\uffc7\122" +
685        "\uffc7\123\uffc7\124\uffc7\001\002\000\006\101\uffae\102\u0116" +
686        "\001\002\000\004\112\u0113\001\002\000\004\101\u0112\001" +
687        "\002\000\004\036\uffb2\001\002\000\026\004\114\005\125" +
688        "\006\121\007\117\010\124\011\123\012\115\070\127\105" +
689        "\120\107\113\001\002\000\010\101\uffb0\102\uffb0\111\u0115" +
690        "\001\002\000\006\101\uffaf\102\uffaf\001\002\000\004\070" +
691        "\u0110\001\002\000\004\101\uffad\001\002\000\004\002\000" +
692        "\001\002\000\024\002\uff8e\034\uff8e\035\uff8e\073\uff8e\117" +
693        "\uff8e\120\uff8e\122\uff8e\123\uff8e\124\uff8e\001\002\000\006" +
694        "\002\uff99\124\uff99\001\002\000\004\036\u011c\001\002\000" +
695        "\004\103\u011d\001\002\000\014\074\uffa0\075\u011e\076\uffa0" +
696        "\077\uffa0\104\uffa0\001\002\000\004\116\u012d\001\002\000" +
697        "\012\074\u0121\076\uffa2\077\uffa2\104\uffa2\001\002\000\010" +
698        "\076\u0124\077\uff9e\104\uff9e\001\002\000\004\116\u0122\001" +
699        "\002\000\004\006\u0123\001\002\000\010\076\uffa3\077\uffa3" +
700        "\104\uffa3\001\002\000\004\116\u012b\001\002\000\006\077" +
701        "\u0126\104\uff9c\001\002\000\004\116\u0129\001\002\000\004" +
702        "\104\u0128\001\002\000\024\002\uff9b\034\uff9b\035\uff9b\073" +
703        "\uff9b\117\uff9b\120\uff9b\122\uff9b\123\uff9b\124\uff9b\001\002" +
704        "\000\004\006\u012a\001\002\000\004\104\uff9d\001\002\000" +
705        "\004\006\u012c\001\002\000\006\077\uff9f\104\uff9f\001\002" +
706        "\000\004\006\u012e\001\002\000\012\074\uffa1\076\uffa1\077" +
707        "\uffa1\104\uffa1\001\002\000\006\002\uff95\124\uff95\001\002" +
708        "\000\006\002\uff94\124\uff94\001\002\000\006\002\uff98\124" +
709        "\uff98\001\002\000\006\002\uff97\124\uff97\001\002\000\050" +
710        "\002\uff8d\004\114\005\125\006\121\007\117\010\124\011" +
711        "\123\012\115\034\uff8d\035\uff8d\070\127\073\uff8d\105\120" +
712        "\107\113\117\uff8d\120\uff8d\122\uff8d\123\uff8d\124\uff8d\001" +
713        "\002\000\024\002\uff8c\034\uff8c\035\uff8c\073\uff8c\117\uff8c" +
714        "\120\uff8c\122\uff8c\123\uff8c\124\uff8c\001\002\000\004\070" +
715        "\u0137\001\002\000\004\101\u013c\001\002\000\010\100\221" +
716        "\101\uffb3\102\uffb3\001\002\000\006\101\uff92\102\u0139\001" +
717        "\002\000\004\070\u0137\001\002\000\004\101\uff91\001\002" +
718        "\000\006\101\uff93\102\uff93\001\002\000\024\002\uff90\034" +
719        "\uff90\035\uff90\073\uff90\117\uff90\120\uff90\122\uff90\123\uff90" +
720        "\124\uff90\001\002\000\022\034\uff8b\035\uff8b\073\uff8b\117" +
721        "\uff8b\120\uff8b\122\uff8b\123\uff8b\124\uff8b\001\002\000\006" +
722        "\002\uff96\124\uff96\001\002" });
723    
724      /** Access to parse-action table. */
725      public short[][] action_table() {return _action_table;}
726    
727      /** <code>reduce_goto</code> table. */
728      protected static final short[][] _reduce_table = 
729        unpackFromStrings(new String[] {
730        "\000\u013c\000\026\034\015\041\010\042\014\045\007\046" +
731        "\023\047\017\050\012\051\003\052\021\053\011\001\001" +
732        "\000\024\034\015\041\010\042\u013d\045\007\046\023\050" +
733        "\012\051\003\052\021\053\011\001\001\000\002\001\001" +
734        "\000\002\001\001\000\002\001\001\000\024\034\015\041" +
735        "\010\042\u0131\045\007\046\023\050\012\051\003\052\021" +
736        "\053\011\001\001\000\024\034\015\041\010\042\u0130\045" +
737        "\007\046\023\050\012\051\003\052\021\053\011\001\001" +
738        "\000\024\034\015\041\010\042\u012f\045\007\046\023\050" +
739        "\012\051\003\052\021\053\011\001\001\000\024\034\015" +
740        "\041\010\042\u012e\045\007\046\023\050\012\051\003\052" +
741        "\021\053\011\001\001\000\002\001\001\000\002\001\001" +
742        "\000\024\034\015\041\010\042\u0119\045\007\046\023\050" +
743        "\012\051\003\052\021\053\011\001\001\000\002\001\001" +
744        "\000\002\001\001\000\004\033\027\001\001\000\024\034" +
745        "\015\041\010\042\025\045\007\046\023\050\012\051\003" +
746        "\052\021\053\011\001\001\000\002\001\001\000\002\001" +
747        "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
748        "\000\004\023\032\001\001\000\002\001\001\000\006\024" +
749        "\u010e\025\u0110\001\001\000\002\001\001\000\034\006\034" +
750        "\007\054\010\107\011\042\012\077\013\045\014\055\015" +
751        "\104\016\036\017\063\020\035\021\047\031\101\001\001" +
752        "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
753        "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
754        "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
755        "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
756        "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
757        "\002\001\001\000\002\001\001\000\010\002\310\003\121" +
758        "\004\125\001\001\000\002\001\001\000\002\001\001\000" +
759        "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
760        "\001\001\000\002\001\001\000\002\001\001\000\004\022" +
761        "\252\001\001\000\002\001\001\000\002\001\001\000\002" +
762        "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
763        "\001\000\006\027\206\030\205\001\001\000\002\001\001" +
764        "\000\002\001\001\000\036\006\034\007\054\010\107\011" +
765        "\042\012\077\013\045\014\055\015\104\016\036\017\202" +
766        "\020\035\021\047\031\101\032\203\001\001\000\034\006" +
767        "\034\007\054\010\107\011\042\012\077\013\045\014\055" +
768        "\015\104\016\036\017\162\020\035\021\047\031\101\001" +
769        "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
770        "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
771        "\010\002\115\003\121\004\125\001\001\000\012\002\135" +
772        "\003\121\004\125\005\142\001\001\000\002\001\001\000" +
773        "\002\001\001\000\002\001\001\000\002\001\001\000\012" +
774        "\002\130\003\121\004\125\026\131\001\001\000\002\001" +
775        "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
776        "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
777        "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
778        "\001\001\000\002\001\001\000\012\002\135\003\121\004" +
779        "\125\005\136\001\001\000\002\001\001\000\002\001\001" +
780        "\000\002\001\001\000\012\002\135\003\121\004\125\005" +
781        "\141\001\001\000\002\001\001\000\002\001\001\000\002" +
782        "\001\001\000\010\002\145\003\121\004\125\001\001\000" +
783        "\002\001\001\000\002\001\001\000\010\002\150\003\121" +
784        "\004\125\001\001\000\002\001\001\000\002\001\001\000" +
785        "\010\002\153\003\121\004\125\001\001\000\002\001\001" +
786        "\000\010\002\155\003\121\004\125\001\001\000\002\001" +
787        "\001\000\010\002\160\003\121\004\125\001\001\000\002" +
788        "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
789        "\001\000\034\006\034\007\054\010\107\011\042\012\077" +
790        "\013\045\014\055\015\104\016\036\017\201\020\035\021" +
791        "\047\031\101\001\001\000\034\006\034\007\054\010\107" +
792        "\011\042\012\077\013\045\014\055\015\104\016\036\017" +
793        "\200\020\035\021\047\031\101\001\001\000\034\006\034" +
794        "\007\054\010\107\011\042\012\077\013\045\014\055\015" +
795        "\104\016\036\017\177\020\035\021\047\031\101\001\001" +
796        "\000\034\006\034\007\054\010\107\011\042\012\077\013" +
797        "\045\014\055\015\104\016\036\017\176\020\035\021\047" +
798        "\031\101\001\001\000\034\006\034\007\054\010\107\011" +
799        "\042\012\077\013\045\014\055\015\104\016\036\017\175" +
800        "\020\035\021\047\031\101\001\001\000\002\001\001\000" +
801        "\034\006\034\007\054\010\107\011\042\012\077\013\045" +
802        "\014\055\015\104\016\036\017\174\020\035\021\047\031" +
803        "\101\001\001\000\034\006\034\007\054\010\107\011\042" +
804        "\012\077\013\045\014\055\015\104\016\036\017\173\020" +
805        "\035\021\047\031\101\001\001\000\002\001\001\000\002" +
806        "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
807        "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
808        "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
809        "\002\001\001\000\002\001\001\000\012\002\130\003\121" +
810        "\004\125\026\211\001\001\000\002\001\001\000\006\027" +
811        "\206\030\213\001\001\000\002\001\001\000\002\001\001" +
812        "\000\002\001\001\000\004\022\217\001\001\000\002\001" +
813        "\001\000\012\002\135\003\121\004\125\005\221\001\001" +
814        "\000\002\001\001\000\002\001\001\000\004\003\224\001" +
815        "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
816        "\000\010\002\230\003\121\004\125\001\001\000\002\001" +
817        "\001\000\010\002\232\003\121\004\125\001\001\000\002" +
818        "\001\001\000\002\001\001\000\012\002\135\003\121\004" +
819        "\125\005\235\001\001\000\002\001\001\000\002\001\001" +
820        "\000\012\002\135\003\121\004\125\005\240\001\001\000" +
821        "\002\001\001\000\002\001\001\000\010\002\243\003\121" +
822        "\004\125\001\001\000\002\001\001\000\002\001\001\000" +
823        "\010\002\246\003\121\004\125\001\001\000\002\001\001" +
824        "\000\010\002\250\003\121\004\125\001\001\000\002\001" +
825        "\001\000\002\001\001\000\002\001\001\000\010\002\254" +
826        "\003\121\004\125\001\001\000\002\001\001\000\012\002" +
827        "\135\003\121\004\125\005\256\001\001\000\002\001\001" +
828        "\000\002\001\001\000\010\002\261\003\121\004\125\001" +
829        "\001\000\002\001\001\000\002\001\001\000\010\002\264" +
830        "\003\121\004\125\001\001\000\002\001\001\000\010\002" +
831        "\266\003\121\004\125\001\001\000\002\001\001\000\002" +
832        "\001\001\000\010\002\271\003\121\004\125\001\001\000" +
833        "\002\001\001\000\010\002\273\003\121\004\125\001\001" +
834        "\000\002\001\001\000\002\001\001\000\010\002\276\003" +
835        "\121\004\125\001\001\000\002\001\001\000\002\001\001" +
836        "\000\010\002\301\003\121\004\125\001\001\000\002\001" +
837        "\001\000\010\002\303\003\121\004\125\001\001\000\002" +
838        "\001\001\000\002\001\001\000\010\002\306\003\121\004" +
839        "\125\001\001\000\002\001\001\000\002\001\001\000\002" +
840        "\001\001\000\034\006\034\007\054\010\107\011\042\012" +
841        "\077\013\045\014\055\015\104\016\036\017\312\020\035" +
842        "\021\047\031\101\001\001\000\002\001\001\000\002\001" +
843        "\001\000\034\006\034\007\054\010\107\011\042\012\077" +
844        "\013\045\014\055\015\104\016\036\017\315\020\035\021" +
845        "\047\031\101\001\001\000\002\001\001\000\002\001\001" +
846        "\000\010\002\320\003\121\004\125\001\001\000\002\001" +
847        "\001\000\010\002\322\003\121\004\125\001\001\000\002" +
848        "\001\001\000\002\001\001\000\010\002\325\003\121\004" +
849        "\125\001\001\000\002\001\001\000\010\002\327\003\121" +
850        "\004\125\001\001\000\002\001\001\000\002\001\001\000" +
851        "\010\002\332\003\121\004\125\001\001\000\002\001\001" +
852        "\000\002\001\001\000\010\002\335\003\121\004\125\001" +
853        "\001\000\002\001\001\000\010\002\337\003\121\004\125" +
854        "\001\001\000\002\001\001\000\002\001\001\000\010\002" +
855        "\342\003\121\004\125\001\001\000\002\001\001\000\010" +
856        "\002\344\003\121\004\125\001\001\000\002\001\001\000" +
857        "\002\001\001\000\010\002\347\003\121\004\125\001\001" +
858        "\000\002\001\001\000\010\002\351\003\121\004\125\001" +
859        "\001\000\002\001\001\000\002\001\001\000\010\002\354" +
860        "\003\121\004\125\001\001\000\002\001\001\000\010\002" +
861        "\356\003\121\004\125\001\001\000\002\001\001\000\002" +
862        "\001\001\000\010\002\361\003\121\004\125\001\001\000" +
863        "\002\001\001\000\002\001\001\000\012\002\135\003\121" +
864        "\004\125\005\364\001\001\000\002\001\001\000\002\001" +
865        "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
866        "\000\002\001\001\000\012\002\135\003\121\004\125\005" +
867        "\373\001\001\000\002\001\001\000\002\001\001\000\002" +
868        "\001\001\000\012\002\135\003\121\004\125\005\377\001" +
869        "\001\000\002\001\001\000\002\001\001\000\010\002\u0102" +
870        "\003\121\004\125\001\001\000\002\001\001\000\002\001" +
871        "\001\000\002\001\001\000\010\002\u0106\003\121\004\125" +
872        "\001\001\000\002\001\001\000\002\001\001\000\012\002" +
873        "\135\003\121\004\125\005\u0109\001\001\000\002\001\001" +
874        "\000\002\001\001\000\010\002\u010c\003\121\004\125\001" +
875        "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
876        "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
877        "\012\002\130\003\121\004\125\026\u0113\001\001\000\002" +
878        "\001\001\000\002\001\001\000\006\024\u010e\025\u0116\001" +
879        "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
880        "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
881        "\004\036\u011e\001\001\000\002\001\001\000\004\035\u011f" +
882        "\001\001\000\004\037\u0124\001\001\000\002\001\001\000" +
883        "\002\001\001\000\002\001\001\000\002\001\001\000\004" +
884        "\040\u0126\001\001\000\002\001\001\000\002\001\001\000" +
885        "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
886        "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
887        "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
888        "\000\002\001\001\000\010\002\u0133\003\121\004\125\001" +
889        "\001\000\002\001\001\000\006\043\u0137\044\u0135\001\001" +
890        "\000\002\001\001\000\004\022\u013a\001\001\000\002\001" +
891        "\001\000\006\043\u0137\044\u0139\001\001\000\002\001\001" +
892        "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
893        "\002\001\001" });
894    
895      /** Access to <code>reduce_goto</code> table. */
896      public short[][] reduce_table() {return _reduce_table;}
897    
898      /** Instance of action encapsulation class. */
899      protected CUP$parser$actions action_obj;
900    
901      /** Action encapsulation object initializer. */
902      protected void init_actions()
903        {
904          action_obj = new CUP$parser$actions(this);
905        }
906    
907      /** Invoke a user supplied parse action. */
908      public java_cup.runtime.Symbol do_action(
909        int                        act_num,
910        java_cup.runtime.lr_parser parser,
911        java.util.Stack            stack,
912        int                        top)
913        throws java.lang.Exception
914      {
915        /* call code in generated class */
916        return action_obj.CUP$parser$do_action(act_num, parser, stack, top);
917      }
918    
919      /** Indicates start state. */
920      public int start_state() {return 0;}
921      /** Indicates start production. */
922      public int start_production() {return 1;}
923    
924      /** <code>EOF</code> Symbol index. */
925      public int EOF_sym() {return 0;}
926    
927      /** <code>error</code> Symbol index. */
928      public int error_sym() {return 1;}
929    
930    
931    
932    
933            protected ToolBus toolbus;
934            protected TBTermFactory tbfactory;
935            protected String fileName;
936            protected String processName = "";
937            private HashSet<String> includedFiles = new HashSet<String>();
938            protected List<ATerm> toolbusProcessCalls = new ArrayList<ATerm>();
939            
940            protected HashMap<String, ATerm> declaredVaribles = new HashMap<String, ATerm>();
941            private boolean parseIncludes = true;
942            
943            protected Stack<Boolean> ifdefStack;
944            
945            /** ToolBus specific constructor */
946            public parser(HashSet<String> includedFiles, List<ATerm> toolbusProcessCalls, String filename, Reader input, ToolBus tb){
947                    super(new Lexer(input));
948                    
949                    this.includedFiles = includedFiles;
950                    this.toolbusProcessCalls = toolbusProcessCalls;
951                    this.fileName = filename;
952                    
953                    includedFiles.add(filename);
954                    
955                    toolbus = tb;
956                    tbfactory = toolbus.getTBTermFactory();
957                    
958                    ifdefStack = new Stack<Boolean>();
959                    ifdefStack.push(Boolean.TRUE);
960            }
961            
962            /** ToolBus specific constructor */
963            public parser(ToolBus tb, String filename) throws FileNotFoundException{
964                    this(new HashSet<String>(), new ArrayList<ATerm>(), filename, new FileReader(filename), tb);
965            }
966            
967            /** ToolBus specific constructor */
968            public parser(ToolBus tb, String filename, Reader input){
969                    this(new HashSet<String>(), new ArrayList<ATerm>(), filename, input, tb);
970            }
971            
972            public void parseIncludes(boolean parseIncludes){
973                    this.parseIncludes = parseIncludes;
974            }
975            
976            public String[] scriptsNames(){
977                    List<String> scriptNamesList = new ArrayList<String>();
978                    Iterator<String> scriptNamesIterator = includedFiles.iterator();
979                    while(scriptNamesIterator.hasNext()){
980                            scriptNamesList.add(scriptNamesIterator.next());
981                    }
982                    
983                    String[] scriptNames = new String[scriptNamesList.size()];
984                    return scriptNamesList.toArray(scriptNames);
985            }
986       
987            protected void enterIfdef (boolean yesOrno){
988                    ifdefStack.push(new Boolean(yesOrno));
989            }
990            
991            protected void leaveIfdef(){
992                    ifdefStack.pop();
993            }
994            
995            protected boolean generating() {
996            return ifdefStack.peek().booleanValue();
997            }
998            
999            protected void doParseInclude(String filename) throws ToolBusException{
1000                    if(!parseIncludes) return;
1001                    
1002                    if(filename.length() > 0 && filename.charAt(0) == File.separatorChar){
1003                            File f = new File(filename);
1004                            if(f.exists()){
1005                                    doParse(filename);
1006                                    return;
1007                            }
1008                    }else{
1009                            String path = toolbus.getProperty("include.path", ".");
1010                            LoggerFactory.log("unknown", "doParseInclude: path = " + path, IToolBusLoggerConstants.PARSING);
1011                            
1012                            String[] elems = path.split("[ ,\t\n\r]+");
1013                            for(int i = 0; i < elems.length; i++){
1014                                    String dir = elems[i];
1015                                    
1016                                    if(dir.length() > 0){
1017                                            String absoluteName = dir + File.separator + filename;
1018                                            File f = new File(absoluteName);
1019                                            if(f.exists()){
1020                                                    doParse(absoluteName);
1021                                                    return;
1022                                            }
1023                                    }
1024                            }
1025                    }
1026                    throw new ToolBusException("Cannot resolve include file '" + filename + "'");
1027            }
1028            
1029            private void doParse(String filename) throws ToolBusException{
1030                    if(includedFiles.contains(filename)){
1031                            //System.err.println("Skipping include of " + filename);
1032                            return;
1033                    }
1034                    
1035                    includedFiles.add(filename);
1036                    //System.err.println("Parse: " + filename);
1037                    toolbus.parsecup1(includedFiles, toolbusProcessCalls, filename);
1038            //System.err.println("Parse: back to " + filename);
1039            }
1040            
1041            public void generateInitialProcessCalls() throws ToolBusException {
1042                for(ATerm call: toolbusProcessCalls){
1043                   toolbus.addProcess(new ProcessCall(call, tbfactory, null));
1044                }
1045            }
1046        
1047        public void syntax_error(java_cup.runtime.Symbol badToken){
1048            throw new SyntaxErrorException(fileName, badToken.left + 1, badToken.right + 1, ((Lexer) getScanner()).getPosition() + 1, badToken.sym);
1049        }
1050            
1051            public void undeclaredVariableError(java_cup.runtime.Symbol badToken){
1052                    throw new UndeclaredVariableException(fileName, badToken.left + 1, badToken.right + 1, ((Lexer) getScanner()).getPosition() + 1, badToken.toString());
1053            }
1054            
1055            public static class UndeclaredVariableException extends RuntimeException{
1056                    private static final long serialVersionUID = 1485650590025885587L;
1057    
1058                    public final String filename;
1059                    public final int line;
1060                    public final int column;
1061                    public final int position;
1062                    public final String var;
1063    
1064                    public UndeclaredVariableException(String filename, int line, int column, int position, String var){
1065                            super();
1066                            
1067                            this.filename = filename;
1068                            this.line = line;
1069                            this.column = column;
1070                            this.position = position;
1071                            this.var = var;
1072                    }
1073                    
1074                    public String getMessage(){
1075                            return "Undeclared variable in "+filename+", at line: "+line+", column: "+column+", symbol id: "+var;
1076                    }
1077            }
1078            
1079             public void report_error(String message, Object info) {
1080               if (info instanceof java_cup.runtime.Symbol) {
1081                 syntax_error((java_cup.runtime.Symbol) info);
1082               }
1083             }
1084             
1085             public int getPosition() {
1086               return ((Lexer) getScanner()).getPreviousPosition();
1087             }
1088    
1089    }
1090    
1091    /** Cup generated class to encapsulate user supplied action code.*/
1092    class CUP$parser$actions {
1093    
1094    
1095      private PositionInformation makePosInfo(java_cup.runtime.Symbol beginSymbol, java_cup.runtime.Symbol endSymbol){
1096        return new PositionInformation(parser.fileName, parser.getPosition(), beginSymbol.left, beginSymbol.right, endSymbol.left, endSymbol.right);
1097      }
1098      
1099      private PositionInformation makePosInfoWithEndColumnOffset(java_cup.runtime.Symbol beginSymbol, java_cup.runtime.Symbol endSymbol, int endColumnOffset){
1100        return new PositionInformation(parser.fileName, parser.getPosition(), beginSymbol.left, beginSymbol.right, endSymbol.left, endSymbol.right + endColumnOffset);
1101      }
1102    
1103      private final parser parser;
1104    
1105      /** Constructor */
1106      CUP$parser$actions(parser parser) {
1107        this.parser = parser;
1108      }
1109    
1110      /** Method with the actual generated action code. */
1111      public final java_cup.runtime.Symbol CUP$parser$do_action(
1112        int                        CUP$parser$act_num,
1113        java_cup.runtime.lr_parser CUP$parser$parser,
1114        java.util.Stack            CUP$parser$stack,
1115        int                        CUP$parser$top)
1116        throws java.lang.Exception
1117        {
1118          /* Symbol object for return from actions */
1119          java_cup.runtime.Symbol CUP$parser$result;
1120    
1121          /* select the action based on the action number */
1122          switch (CUP$parser$act_num)
1123            {
1124              /*. . . . . . . . . . . . . . . . . . . .*/
1125              case 120: // ifdef ::= ifdef_head def_list ENDIF 
1126                {
1127                  Object RESULT =null;
1128                     
1129                                                   parser.leaveIfdef();
1130                                                
1131                  CUP$parser$result = parser.getSymbolFactory().newSymbol("ifdef",41, RESULT);
1132                }
1133              return CUP$parser$result;
1134    
1135              /*. . . . . . . . . . . . . . . . . . . .*/
1136              case 119: // ifdef_head ::= IFNDEF NAME 
1137                {
1138                  Object RESULT =null;
1139                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1140                     //System.err.println("ifndef " + nm);
1141                                                   if(parser.generating()){
1142                                                     boolean yes = parser.toolbus.getProperty(nm) == null;
1143                                                     parser.enterIfdef(yes);
1144                                                   }
1145                                                
1146                  CUP$parser$result = parser.getSymbolFactory().newSymbol("ifdef_head",40, RESULT);
1147                }
1148              return CUP$parser$result;
1149    
1150              /*. . . . . . . . . . . . . . . . . . . .*/
1151              case 118: // ifdef_head ::= IFDEF NAME 
1152                {
1153                  Object RESULT =null;
1154                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1155                     //System.err.println("ifdef " + nm);
1156                                                    if(parser.generating()){
1157                                                                                          boolean yes = parser.toolbus.getProperty(nm) != null;
1158                                                      parser.enterIfdef(yes);
1159                                                    }
1160                                                
1161                  CUP$parser$result = parser.getSymbolFactory().newSymbol("ifdef_head",40, RESULT);
1162                }
1163              return CUP$parser$result;
1164    
1165              /*. . . . . . . . . . . . . . . . . . . .*/
1166              case 117: // define ::= DEFINE NAME term 
1167                {
1168                  Object RESULT =null;
1169                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1170                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1171                     if(parser.generating()){
1172                                                                                               //System.err.println("define " + nm + " = " + t);
1173                                                                                               parser.toolbus.setProperty(nm, t.toString()); 
1174                                                                                            }
1175                                                                                    
1176                  CUP$parser$result = parser.getSymbolFactory().newSymbol("define",38, RESULT);
1177                }
1178              return CUP$parser$result;
1179    
1180              /*. . . . . . . . . . . . . . . . . . . .*/
1181              case 116: // define ::= DEFINE NAME 
1182                {
1183                  Object RESULT =null;
1184                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1185                     if(parser.generating()){
1186                                                                                               //System.err.println("define " + nm);
1187                                                                                               parser.toolbus.setProperty(nm, ""); 
1188                                                                                       }
1189                                                                                    
1190                  CUP$parser$result = parser.getSymbolFactory().newSymbol("define",38, RESULT);
1191                }
1192              return CUP$parser$result;
1193    
1194              /*. . . . . . . . . . . . . . . . . . . .*/
1195              case 115: // include ::= INCLUDE FILENAME 
1196                {
1197                  Object RESULT =null;
1198                    String fn = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1199                                    if(parser.generating()){
1200                                            parser.doParseInclude(fn);
1201                                    }
1202                                                
1203                  CUP$parser$result = parser.getSymbolFactory().newSymbol("include",39, RESULT);
1204                }
1205              return CUP$parser$result;
1206    
1207              /*. . . . . . . . . . . . . . . . . . . .*/
1208              case 114: // toolbus_def ::= toolbus 
1209                {
1210                  Object RESULT =null;
1211    
1212                  CUP$parser$result = parser.getSymbolFactory().newSymbol("toolbus_def",35, RESULT);
1213                }
1214              return CUP$parser$result;
1215    
1216              /*. . . . . . . . . . . . . . . . . . . .*/
1217              case 113: // toolbus ::= TOOLBUS LPAR proc_call_in_tb_list RPAR 
1218                {
1219                  Object RESULT =null;
1220    
1221                  CUP$parser$result = parser.getSymbolFactory().newSymbol("toolbus",36, RESULT);
1222                }
1223              return CUP$parser$result;
1224    
1225              /*. . . . . . . . . . . . . . . . . . . .*/
1226              case 112: // proc_call_in_tb_list ::= proc_call_in_tb COMMA proc_call_in_tb_list 
1227                {
1228                  Object RESULT =null;
1229    
1230                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc_call_in_tb_list",34, RESULT);
1231                }
1232              return CUP$parser$result;
1233    
1234              /*. . . . . . . . . . . . . . . . . . . .*/
1235              case 111: // proc_call_in_tb_list ::= proc_call_in_tb 
1236                {
1237                  Object RESULT =null;
1238    
1239                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc_call_in_tb_list",34, RESULT);
1240                }
1241              return CUP$parser$result;
1242    
1243              /*. . . . . . . . . . . . . . . . . . . .*/
1244              case 110: // proc_call_in_tb ::= NAME actuals 
1245                {
1246                  Object RESULT =null;
1247                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1248                    ATermList act = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1249                     if(parser.generating()){
1250                                                                                              AFun af = parser.tbfactory.makeAFun(nm.toString(), act.getLength(), false);
1251                                                                                          ATerm call = parser.tbfactory.makeApplList(af, act);
1252                                                                                          parser.toolbusProcessCalls.add(call);
1253                                                                                          //System.err.println("add to toolbusProcessCalls " + call);
1254                                                                                       }
1255                                                                                    
1256                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc_call_in_tb",33, RESULT);
1257                }
1258              return CUP$parser$result;
1259    
1260              /*. . . . . . . . . . . . . . . . . . . .*/
1261              case 109: // def_list ::= ifdef def_list 
1262                {
1263                  Object RESULT =null;
1264    
1265                  CUP$parser$result = parser.getSymbolFactory().newSymbol("def_list",32, RESULT);
1266                }
1267              return CUP$parser$result;
1268    
1269              /*. . . . . . . . . . . . . . . . . . . .*/
1270              case 108: // def_list ::= define def_list 
1271                {
1272                  Object RESULT =null;
1273    
1274                  CUP$parser$result = parser.getSymbolFactory().newSymbol("def_list",32, RESULT);
1275                }
1276              return CUP$parser$result;
1277    
1278              /*. . . . . . . . . . . . . . . . . . . .*/
1279              case 107: // def_list ::= include def_list 
1280                {
1281                  Object RESULT =null;
1282    
1283                  CUP$parser$result = parser.getSymbolFactory().newSymbol("def_list",32, RESULT);
1284                }
1285              return CUP$parser$result;
1286    
1287              /*. . . . . . . . . . . . . . . . . . . .*/
1288              case 106: // def_list ::= toolbus_def def_list 
1289                {
1290                  Object RESULT =null;
1291    
1292                  CUP$parser$result = parser.getSymbolFactory().newSymbol("def_list",32, RESULT);
1293                }
1294              return CUP$parser$result;
1295    
1296              /*. . . . . . . . . . . . . . . . . . . .*/
1297              case 105: // def_list ::= tool_def def_list 
1298                {
1299                  Object RESULT =null;
1300    
1301                  CUP$parser$result = parser.getSymbolFactory().newSymbol("def_list",32, RESULT);
1302                }
1303              return CUP$parser$result;
1304    
1305              /*. . . . . . . . . . . . . . . . . . . .*/
1306              case 104: // def_list ::= proc_def def_list 
1307                {
1308                  Object RESULT =null;
1309    
1310                  CUP$parser$result = parser.getSymbolFactory().newSymbol("def_list",32, RESULT);
1311                }
1312              return CUP$parser$result;
1313    
1314              /*. . . . . . . . . . . . . . . . . . . .*/
1315              case 103: // def_list ::= 
1316                {
1317                  Object RESULT =null;
1318    
1319                  CUP$parser$result = parser.getSymbolFactory().newSymbol("def_list",32, RESULT);
1320                }
1321              return CUP$parser$result;
1322    
1323              /*. . . . . . . . . . . . . . . . . . . .*/
1324              case 102: // tool_def ::= TOOL IDENT IS LBRACE host kind command class RBRACE 
1325                {
1326                  Object RESULT =null;
1327                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value;
1328                    String h = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
1329                    String k = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1330                    String cmd = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1331                    String cls = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1332                     if(parser.generating()){
1333                                                         ToolDefinition td = new ToolDefinition(nm, h, k, cmd, cls, parser.toolbus);
1334                                                         //System.err.println("Adding: " + td);
1335                                                         parser.toolbus.addToolDefinition(td);
1336                                                      }
1337                                                   
1338                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_def",31, RESULT);
1339                }
1340              return CUP$parser$result;
1341    
1342              /*. . . . . . . . . . . . . . . . . . . .*/
1343              case 101: // class ::= 
1344                {
1345                  String RESULT =null;
1346                  CUP$parser$result = parser.getSymbolFactory().newSymbol("class",30, RESULT);
1347                }
1348              return CUP$parser$result;
1349    
1350              /*. . . . . . . . . . . . . . . . . . . .*/
1351              case 100: // class ::= CLASS EQUALS STRING 
1352                {
1353                  String RESULT =null;
1354                    String s = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1355                     RESULT = s; 
1356                  CUP$parser$result = parser.getSymbolFactory().newSymbol("class",30, RESULT);
1357                }
1358              return CUP$parser$result;
1359    
1360              /*. . . . . . . . . . . . . . . . . . . .*/
1361              case 99: // command ::= 
1362                {
1363                  String RESULT =null;
1364                  CUP$parser$result = parser.getSymbolFactory().newSymbol("command",29, RESULT);
1365                }
1366              return CUP$parser$result;
1367    
1368              /*. . . . . . . . . . . . . . . . . . . .*/
1369              case 98: // command ::= COMMAND EQUALS STRING 
1370                {
1371                  String RESULT =null;
1372                    String s = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1373                     RESULT = s; 
1374                  CUP$parser$result = parser.getSymbolFactory().newSymbol("command",29, RESULT);
1375                }
1376              return CUP$parser$result;
1377    
1378              /*. . . . . . . . . . . . . . . . . . . .*/
1379              case 97: // host ::= 
1380                {
1381                  String RESULT =null;
1382                  CUP$parser$result = parser.getSymbolFactory().newSymbol("host",28, RESULT);
1383                }
1384              return CUP$parser$result;
1385    
1386              /*. . . . . . . . . . . . . . . . . . . .*/
1387              case 96: // host ::= HOST EQUALS STRING 
1388                {
1389                  String RESULT =null;
1390                    String s = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1391                     RESULT = s; 
1392                  CUP$parser$result = parser.getSymbolFactory().newSymbol("host",28, RESULT);
1393                }
1394              return CUP$parser$result;
1395    
1396              /*. . . . . . . . . . . . . . . . . . . .*/
1397              case 95: // kind ::= 
1398                {
1399                  String RESULT =null;
1400                  CUP$parser$result = parser.getSymbolFactory().newSymbol("kind",27, RESULT);
1401                }
1402              return CUP$parser$result;
1403    
1404              /*. . . . . . . . . . . . . . . . . . . .*/
1405              case 94: // kind ::= KIND EQUALS STRING 
1406                {
1407                  String RESULT =null;
1408                    String s = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1409                     RESULT = s; 
1410                  CUP$parser$result = parser.getSymbolFactory().newSymbol("kind",27, RESULT);
1411                }
1412              return CUP$parser$result;
1413    
1414              /*. . . . . . . . . . . . . . . . . . . .*/
1415              case 93: // proc_def ::= PROCESS proc_def_name formals IS proc 
1416                {
1417                  ProcessDefinition RESULT =null;
1418                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1419                    ATermList fml = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1420                    ProcessExpression p = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1421                     if(parser.generating()){
1422                                                      ProcessDefinition pd = new ProcessDefinition(nm, fml, p, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)));
1423                                                      try{
1424                                                              parser.toolbus.addProcessDefinition(pd);
1425                                                      }catch(ToolBusError tbe){
1426                                                          throw new ToolBusExecutionException(tbe.getMessage(), makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)));
1427                                                      }
1428                                                      parser.processName = "";
1429                                                              parser.declaredVaribles.clear();
1430                                                    }
1431                                                 
1432                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc_def",26, RESULT);
1433                }
1434              return CUP$parser$result;
1435    
1436              /*. . . . . . . . . . . . . . . . . . . .*/
1437              case 92: // proc_def_name ::= NAME 
1438                {
1439                  String RESULT =null;
1440                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1441                     parser.processName = nm;
1442                                                    RESULT = nm; 
1443                                                 
1444                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc_def_name",25, RESULT);
1445                }
1446              return CUP$parser$result;
1447    
1448              /*. . . . . . . . . . . . . . . . . . . .*/
1449              case 91: // let_tail ::= proc ENDLET 
1450                {
1451                  ProcessExpression RESULT =null;
1452                    ProcessExpression p = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1453                     RESULT = p; 
1454                  CUP$parser$result = parser.getSymbolFactory().newSymbol("let_tail",24, RESULT);
1455                }
1456              return CUP$parser$result;
1457    
1458              /*. . . . . . . . . . . . . . . . . . . .*/
1459              case 90: // let_head ::= LET var_list IN 
1460                {
1461                  ATermList RESULT =null;
1462                    ATermList vl = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1463                     RESULT = vl; 
1464                  CUP$parser$result = parser.getSymbolFactory().newSymbol("let_head",23, RESULT);
1465                }
1466              return CUP$parser$result;
1467    
1468              /*. . . . . . . . . . . . . . . . . . . .*/
1469              case 89: // let ::= let_head let_tail 
1470                {
1471                  ProcessExpression RESULT =null;
1472                    ATermList vl = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1473                    ProcessExpression p = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1474                     RESULT = new LetDefinition(vl, p, parser.tbfactory, null); 
1475                  CUP$parser$result = parser.getSymbolFactory().newSymbol("let",15, RESULT);
1476                }
1477              return CUP$parser$result;
1478    
1479              /*. . . . . . . . . . . . . . . . . . . .*/
1480              case 88: // var_list ::= var_decl COMMA var_list 
1481                {
1482                  ATermList RESULT =null;
1483                    ATerm vd = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1484                    ATermList vl = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1485                     RESULT = parser.tbfactory.makeList(vd, vl); 
1486                  CUP$parser$result = parser.getSymbolFactory().newSymbol("var_list",22, RESULT);
1487                }
1488              return CUP$parser$result;
1489    
1490              /*. . . . . . . . . . . . . . . . . . . .*/
1491              case 87: // var_list ::= var_decl 
1492                {
1493                  ATermList RESULT =null;
1494                    ATerm vd = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1495                     RESULT = parser.tbfactory.makeList(vd); 
1496                  CUP$parser$result = parser.getSymbolFactory().newSymbol("var_list",22, RESULT);
1497                }
1498              return CUP$parser$result;
1499    
1500              /*. . . . . . . . . . . . . . . . . . . .*/
1501              case 86: // var_decl ::= NAME COLON type 
1502                {
1503                  ATerm RESULT =null;
1504                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1505                    ATerm tp = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1506                     AFun af = parser.tbfactory.makeAFun(nm.toString(), 0, false);
1507                                                                                            parser.declaredVaribles.put(nm, tp);
1508                                                    RESULT = parser.tbfactory.mkVar(af, parser.processName, tp);
1509                                                 
1510                  CUP$parser$result = parser.getSymbolFactory().newSymbol("var_decl",21, RESULT);
1511                }
1512              return CUP$parser$result;
1513    
1514              /*. . . . . . . . . . . . . . . . . . . .*/
1515              case 85: // type ::= term 
1516                {
1517                  ATerm RESULT =null;
1518                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1519                     RESULT = t; 
1520                  CUP$parser$result = parser.getSymbolFactory().newSymbol("type",20, RESULT);
1521                }
1522              return CUP$parser$result;
1523    
1524              /*. . . . . . . . . . . . . . . . . . . .*/
1525              case 84: // form_list ::= form_decl COMMA form_list 
1526                {
1527                  ATermList RESULT =null;
1528                    ATerm fd = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1529                    ATermList fdl = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1530                     RESULT = parser.tbfactory.makeList(fd, fdl); 
1531                  CUP$parser$result = parser.getSymbolFactory().newSymbol("form_list",19, RESULT);
1532                }
1533              return CUP$parser$result;
1534    
1535              /*. . . . . . . . . . . . . . . . . . . .*/
1536              case 83: // form_list ::= form_decl 
1537                {
1538                  ATermList RESULT =null;
1539                    ATerm fd = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1540                     RESULT = parser.tbfactory.makeList(fd); 
1541                  CUP$parser$result = parser.getSymbolFactory().newSymbol("form_list",19, RESULT);
1542                }
1543              return CUP$parser$result;
1544    
1545              /*. . . . . . . . . . . . . . . . . . . .*/
1546              case 82: // form_decl ::= NAME COLON type QUESTION 
1547                {
1548                  ATerm RESULT =null;
1549                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1550                    ATerm tp = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1551                     AFun af = parser.tbfactory.makeAFun(nm, 0, false);
1552                                                    parser.declaredVaribles.put(nm, tp);
1553                                                    RESULT = parser.tbfactory.mkResVar(af, parser.processName, tp);
1554                                                 
1555                  CUP$parser$result = parser.getSymbolFactory().newSymbol("form_decl",18, RESULT);
1556                }
1557              return CUP$parser$result;
1558    
1559              /*. . . . . . . . . . . . . . . . . . . .*/
1560              case 81: // form_decl ::= NAME COLON type 
1561                {
1562                  ATerm RESULT =null;
1563                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1564                    ATerm tp = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1565                     AFun af = parser.tbfactory.makeAFun(nm, 0, false);
1566                                                    parser.declaredVaribles.put(nm, tp);
1567                                                    RESULT = parser.tbfactory.mkVar(af, parser.processName, tp);
1568                                                 
1569                  CUP$parser$result = parser.getSymbolFactory().newSymbol("form_decl",18, RESULT);
1570                }
1571              return CUP$parser$result;
1572    
1573              /*. . . . . . . . . . . . . . . . . . . .*/
1574              case 80: // formals ::= 
1575                {
1576                  ATermList RESULT =null;
1577                     RESULT = parser.tbfactory.makeList(); 
1578                  CUP$parser$result = parser.getSymbolFactory().newSymbol("formals",17, RESULT);
1579                }
1580              return CUP$parser$result;
1581    
1582              /*. . . . . . . . . . . . . . . . . . . .*/
1583              case 79: // formals ::= LPAR form_list RPAR 
1584                {
1585                  ATermList RESULT =null;
1586                    ATermList fml = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1587                     RESULT = fml; 
1588                  CUP$parser$result = parser.getSymbolFactory().newSymbol("formals",17, RESULT);
1589                }
1590              return CUP$parser$result;
1591    
1592              /*. . . . . . . . . . . . . . . . . . . .*/
1593              case 78: // actuals ::= 
1594                {
1595                  ATermList RESULT =null;
1596                     RESULT = parser.tbfactory.makeList(); 
1597                  CUP$parser$result = parser.getSymbolFactory().newSymbol("actuals",16, RESULT);
1598                }
1599              return CUP$parser$result;
1600    
1601              /*. . . . . . . . . . . . . . . . . . . .*/
1602              case 77: // actuals ::= LPAR term_list RPAR 
1603                {
1604                  ATermList RESULT =null;
1605                    ATermList tl = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1606                     RESULT = tl; 
1607                  CUP$parser$result = parser.getSymbolFactory().newSymbol("actuals",16, RESULT);
1608                }
1609              return CUP$parser$result;
1610    
1611              /*. . . . . . . . . . . . . . . . . . . .*/
1612              case 76: // proc_call ::= NAME actuals 
1613                {
1614                  ProcessExpression RESULT =null;
1615                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1616                    ATermList act = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1617                     PositionInformation posInfo = makePosInfoWithEndColumnOffset((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1), nm.length());
1618                                                   if(parser.declaredVaribles.get(nm) != parser.tbfactory.StrType) RESULT = new ProcessCall(nm, act, parser.tbfactory, posInfo);
1619                                                   else RESULT = new DynamicProcessCall(nm, act, parser.tbfactory, posInfo);
1620                                                
1621                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc_call",14, RESULT);
1622                }
1623              return CUP$parser$result;
1624    
1625              /*. . . . . . . . . . . . . . . . . . . .*/
1626              case 75: // proc ::= EXECUTE LPAR term COMMA term RPAR 
1627                {
1628                  ProcessExpression RESULT =null;
1629                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1630                    ATerm rv = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1631                     Execute ex = new Execute(t, rv, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top)));
1632                                                                   Connect con = new Connect(rv, parser.tbfactory, null, true);
1633                                                                   RESULT = new Sequence(ex, con, parser.tbfactory, null);
1634                                                                
1635                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1636                }
1637              return CUP$parser$result;
1638    
1639              /*. . . . . . . . . . . . . . . . . . . .*/
1640              case 74: // proc ::= IF term THEN proc ELSE proc FI 
1641                {
1642                  ProcessExpression RESULT =null;
1643                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
1644                    ProcessExpression p1 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1645                    ProcessExpression p2 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1646                     RESULT= new IfElse(t, p1, p2, parser.tbfactory, null); 
1647                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1648                }
1649              return CUP$parser$result;
1650    
1651              /*. . . . . . . . . . . . . . . . . . . .*/
1652              case 73: // proc ::= IF term THEN proc FI 
1653                {
1654                  ProcessExpression RESULT =null;
1655                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1656                    ProcessExpression p = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1657                     RESULT = new IfThen(t, p, parser.tbfactory, null); 
1658                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1659                }
1660              return CUP$parser$result;
1661    
1662              /*. . . . . . . . . . . . . . . . . . . .*/
1663              case 72: // proc ::= let 
1664                {
1665                  ProcessExpression RESULT =null;
1666                    ProcessExpression p = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1667                     RESULT = p; 
1668                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1669                }
1670              return CUP$parser$result;
1671    
1672              /*. . . . . . . . . . . . . . . . . . . .*/
1673              case 71: // proc ::= proc_call 
1674                {
1675                  ProcessExpression RESULT =null;
1676                    ProcessExpression p = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1677                     RESULT = p; 
1678                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1679                }
1680              return CUP$parser$result;
1681    
1682              /*. . . . . . . . . . . . . . . . . . . .*/
1683              case 70: // proc ::= LPAR proc RPAR 
1684                {
1685                  ProcessExpression RESULT =null;
1686                    ProcessExpression p = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1687                     RESULT = p; 
1688                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1689                }
1690              return CUP$parser$result;
1691    
1692              /*. . . . . . . . . . . . . . . . . . . .*/
1693              case 69: // proc ::= proc DISRUPT proc 
1694                {
1695                  ProcessExpression RESULT =null;
1696                    ProcessExpression p1 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1697                    ProcessExpression p2 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1698                     RESULT = new Disrupt(p1, p2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1))); 
1699                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1700                }
1701              return CUP$parser$result;
1702    
1703              /*. . . . . . . . . . . . . . . . . . . .*/
1704              case 68: // proc ::= proc FMERGE proc 
1705                {
1706                  ProcessExpression RESULT =null;
1707                    ProcessExpression p1 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1708                    ProcessExpression p2 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1709                     RESULT = new Merge(p1, p2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1))); 
1710                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1711                }
1712              return CUP$parser$result;
1713    
1714              /*. . . . . . . . . . . . . . . . . . . .*/
1715              case 67: // proc ::= proc ITER proc 
1716                {
1717                  ProcessExpression RESULT =null;
1718                    ProcessExpression p1 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1719                    ProcessExpression p2 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1720                     RESULT = new Sequence(new Tau(parser.tbfactory, null),
1721                                                                           new Iteration(p1, p2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1))),
1722                                                                           parser.tbfactory,
1723                                                                           null
1724                                                                          );
1725                                                
1726                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1727                }
1728              return CUP$parser$result;
1729    
1730              /*. . . . . . . . . . . . . . . . . . . .*/
1731              case 66: // proc ::= proc SEQ proc 
1732                {
1733                  ProcessExpression RESULT =null;
1734                    ProcessExpression p1 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1735                    ProcessExpression p2 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1736                     RESULT = new Sequence(p1, p2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1))); 
1737                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1738                }
1739              return CUP$parser$result;
1740    
1741              /*. . . . . . . . . . . . . . . . . . . .*/
1742              case 65: // proc ::= proc RIGHTCHOICE proc 
1743                {
1744                  ProcessExpression RESULT =null;
1745                    ProcessExpression p1 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1746                    ProcessExpression p2 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1747                     RESULT = new RightBiasedAlternative(p1, p2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1))); 
1748                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1749                }
1750              return CUP$parser$result;
1751    
1752              /*. . . . . . . . . . . . . . . . . . . .*/
1753              case 64: // proc ::= proc LEFTCHOICE proc 
1754                {
1755                  ProcessExpression RESULT =null;
1756                    ProcessExpression p1 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1757                    ProcessExpression p2 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1758                     RESULT = new LeftBiasedAlternative(p1, p2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1))); 
1759                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1760                }
1761              return CUP$parser$result;
1762    
1763              /*. . . . . . . . . . . . . . . . . . . .*/
1764              case 63: // proc ::= proc CHOICE proc 
1765                {
1766                  ProcessExpression RESULT =null;
1767                    ProcessExpression p1 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1768                    ProcessExpression p2 = (ProcessExpression)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1769                     RESULT = new Alternative(p1, p2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1))); 
1770                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1771                }
1772              return CUP$parser$result;
1773    
1774              /*. . . . . . . . . . . . . . . . . . . .*/
1775              case 62: // proc ::= atom ABS_TIMEOUT LPAR term_list RPAR 
1776                {
1777                  ProcessExpression RESULT =null;
1778                    Atom a = (Atom)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
1779                    ATermList tl = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1780                            a.setAbsoluteTimeout(tl);
1781                                                                                                    RESULT = a; 
1782                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1783                }
1784              return CUP$parser$result;
1785    
1786              /*. . . . . . . . . . . . . . . . . . . .*/
1787              case 61: // proc ::= atom ABS_DELAY LPAR term_list RPAR ABS_TIMEOUT LPAR term_list RPAR 
1788                {
1789                  ProcessExpression RESULT =null;
1790                    Atom a = (Atom)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-8)).value;
1791                    ATermList dl = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
1792                    ATermList tl = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1793                            a.setAbsoluteDelay(dl);
1794                                                                                                                                                                            a.setAbsoluteTimeout(tl);
1795                                                                                                                                                                            RESULT = a; 
1796                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1797                }
1798              return CUP$parser$result;
1799    
1800              /*. . . . . . . . . . . . . . . . . . . .*/
1801              case 60: // proc ::= atom ABS_DELAY LPAR term_list RPAR 
1802                {
1803                  ProcessExpression RESULT =null;
1804                    Atom a = (Atom)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
1805                    ATermList dl = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1806                            a.setAbsoluteDelay(dl);
1807                                                                                                    RESULT = a; 
1808                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1809                }
1810              return CUP$parser$result;
1811    
1812              /*. . . . . . . . . . . . . . . . . . . .*/
1813              case 59: // proc ::= atom REL_DELAY LPAR term RPAR REL_TIMEOUT LPAR term RPAR 
1814                {
1815                  ProcessExpression RESULT =null;
1816                    Atom a = (Atom)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-8)).value;
1817                    ATerm d = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
1818                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1819                            a.setDelay(d);
1820                                                                                                                                                            a.setTimeout(t);
1821                                                                                                                                                            RESULT = a; 
1822                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1823                }
1824              return CUP$parser$result;
1825    
1826              /*. . . . . . . . . . . . . . . . . . . .*/
1827              case 58: // proc ::= atom REL_TIMEOUT LPAR term RPAR 
1828                {
1829                  ProcessExpression RESULT =null;
1830                    Atom a = (Atom)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
1831                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1832                            a.setTimeout(t);
1833                                                                                                    RESULT = a; 
1834                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1835                }
1836              return CUP$parser$result;
1837    
1838              /*. . . . . . . . . . . . . . . . . . . .*/
1839              case 57: // proc ::= atom REL_DELAY LPAR term RPAR 
1840                {
1841                  ProcessExpression RESULT =null;
1842                    Atom a = (Atom)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
1843                    ATerm d = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1844                            a.setDelay(d);
1845                                                                                            RESULT = a; 
1846                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1847                }
1848              return CUP$parser$result;
1849    
1850              /*. . . . . . . . . . . . . . . . . . . .*/
1851              case 56: // proc ::= atom 
1852                {
1853                  ProcessExpression RESULT =null;
1854                    Atom a = (Atom)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1855                     RESULT = a; 
1856                  CUP$parser$result = parser.getSymbolFactory().newSymbol("proc",13, RESULT);
1857                }
1858              return CUP$parser$result;
1859    
1860              /*. . . . . . . . . . . . . . . . . . . .*/
1861              case 55: // assign ::= NAME ASSIGN term 
1862                {
1863                  Atom RESULT =null;
1864                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
1865                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
1866                     ATerm tnm = parser.tbfactory.make(nm);
1867                                                   ATerm type = parser.declaredVaribles.get(nm);
1868                                                                                   if(type == null) parser.undeclaredVariableError((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2));
1869                                                                                       RESULT = new Assign(
1870                                                                                                               parser.tbfactory.mkVar(tnm, parser.processName, type),
1871                                                                                                   t,
1872                                                                                                   parser.tbfactory, 
1873                                                                                                   makePosInfoWithEndColumnOffset((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1), 2));
1874                                                                                
1875                  CUP$parser$result = parser.getSymbolFactory().newSymbol("assign",11, RESULT);
1876                }
1877              return CUP$parser$result;
1878    
1879              /*. . . . . . . . . . . . . . . . . . . .*/
1880              case 54: // shutdown ::= SHUTDOWN LPAR term RPAR 
1881                {
1882                  Atom RESULT =null;
1883                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1884                     RESULT = new ShutDown(t, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
1885                  CUP$parser$result = parser.getSymbolFactory().newSymbol("shutdown",12, RESULT);
1886                }
1887              return CUP$parser$result;
1888    
1889              /*. . . . . . . . . . . . . . . . . . . .*/
1890              case 53: // read_print ::= READ LPAR term_list RPAR 
1891                {
1892                  Atom RESULT =null;
1893    
1894                  CUP$parser$result = parser.getSymbolFactory().newSymbol("read_print",10, RESULT);
1895                }
1896              return CUP$parser$result;
1897    
1898              /*. . . . . . . . . . . . . . . . . . . .*/
1899              case 52: // read_print ::= PRINTF LPAR term_list RPAR 
1900                {
1901                  Atom RESULT =null;
1902                    ATermList tl = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1903                     RESULT = new Print(tl, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
1904                  CUP$parser$result = parser.getSymbolFactory().newSymbol("read_print",10, RESULT);
1905                }
1906              return CUP$parser$result;
1907    
1908              /*. . . . . . . . . . . . . . . . . . . .*/
1909              case 51: // create ::= CREATE LPAR NAME actuals COMMA result_var RPAR 
1910                {
1911                  Atom RESULT =null;
1912                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
1913                    ATermList act = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1914                    ATerm rv = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1915                     AFun af = parser.tbfactory.makeAFun(nm.toString(), act.getLength(), false);
1916                                                                                       ATerm call = parser.tbfactory.makeApplList(af, act);
1917                                                                                       RESULT= new Create(call, rv, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-6), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
1918                                                                                    
1919                  CUP$parser$result = parser.getSymbolFactory().newSymbol("create",9, RESULT);
1920                }
1921              return CUP$parser$result;
1922    
1923              /*. . . . . . . . . . . . . . . . . . . .*/
1924              case 50: // delta_tau ::= TAU 
1925                {
1926                  Atom RESULT =null;
1927                     RESULT = new Tau(parser.tbfactory, makePosInfoWithEndColumnOffset((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top), 2)); 
1928                  CUP$parser$result = parser.getSymbolFactory().newSymbol("delta_tau",8, RESULT);
1929                }
1930              return CUP$parser$result;
1931    
1932              /*. . . . . . . . . . . . . . . . . . . .*/
1933              case 49: // delta_tau ::= DELTA 
1934                {
1935                  Atom RESULT =null;
1936                     RESULT = new Delta(parser.tbfactory, makePosInfoWithEndColumnOffset((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top), 4)); 
1937                  CUP$parser$result = parser.getSymbolFactory().newSymbol("delta_tau",8, RESULT);
1938                }
1939              return CUP$parser$result;
1940    
1941              /*. . . . . . . . . . . . . . . . . . . .*/
1942              case 48: // tool_atom ::= REC_VALUE LPAR term COMMA term RPAR 
1943                {
1944                  Atom RESULT =null;
1945                    ATerm t1 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1946                    ATerm t2 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1947                     RESULT= new RecVal(t1, t2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
1948                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_atom",7, RESULT);
1949                }
1950              return CUP$parser$result;
1951    
1952              /*. . . . . . . . . . . . . . . . . . . .*/
1953              case 47: // tool_atom ::= SND_DO LPAR term COMMA term RPAR 
1954                {
1955                  Atom RESULT =null;
1956                    ATerm t1 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1957                    ATerm t2 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1958                     RESULT= new Do(t1, t2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
1959                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_atom",7, RESULT);
1960                }
1961              return CUP$parser$result;
1962    
1963              /*. . . . . . . . . . . . . . . . . . . .*/
1964              case 46: // tool_atom ::= SND_CANCEL LPAR term COMMA term RPAR 
1965                {
1966                  Atom RESULT =null;
1967                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_atom",7, RESULT);
1968                }
1969              return CUP$parser$result;
1970    
1971              /*. . . . . . . . . . . . . . . . . . . .*/
1972              case 45: // tool_atom ::= REC_PERF_STATS LPAR term COMMA term RPAR 
1973                {
1974                  Atom RESULT =null;
1975                    ATerm t1 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1976                    ATerm t2 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1977                     RESULT= new RecPerfStats(t1, t2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
1978                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_atom",7, RESULT);
1979                }
1980              return CUP$parser$result;
1981    
1982              /*. . . . . . . . . . . . . . . . . . . .*/
1983              case 44: // tool_atom ::= GET_PERF_STATS LPAR term RPAR 
1984                {
1985                  Atom RESULT =null;
1986                    ATerm t1 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1987                     RESULT= new GetPerfStats(t1, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
1988                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_atom",7, RESULT);
1989                }
1990              return CUP$parser$result;
1991    
1992              /*. . . . . . . . . . . . . . . . . . . .*/
1993              case 43: // tool_atom ::= SND_EVAL LPAR term COMMA term RPAR 
1994                {
1995                  Atom RESULT =null;
1996                    ATerm t1 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
1997                    ATerm t2 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
1998                     RESULT= new Eval(t1, t2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
1999                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_atom",7, RESULT);
2000                }
2001              return CUP$parser$result;
2002    
2003              /*. . . . . . . . . . . . . . . . . . . .*/
2004              case 42: // tool_atom ::= SND_ACK_EVENT LPAR term COMMA term COMMA term RPAR 
2005                {
2006                  Atom RESULT =null;
2007                    ATerm t1 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
2008                    ATerm t2 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
2009                    ATerm t3 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2010                     RESULT= new AckEvent(t1, t2, t3, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
2011                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_atom",7, RESULT);
2012                }
2013              return CUP$parser$result;
2014    
2015              /*. . . . . . . . . . . . . . . . . . . .*/
2016              case 41: // tool_atom ::= SND_RESPONSE LPAR term COMMA term RPAR 
2017                {
2018                  Atom RESULT =null;
2019                    ATerm t1 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
2020                    ATerm t2 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2021                     RESULT= new SndResponse(t1, t2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
2022                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_atom",7, RESULT);
2023                }
2024              return CUP$parser$result;
2025    
2026              /*. . . . . . . . . . . . . . . . . . . .*/
2027              case 40: // tool_atom ::= REC_REQUEST LPAR term COMMA term RPAR 
2028                {
2029                  Atom RESULT =null;
2030                    ATerm t1 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
2031                    ATerm t2 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2032                     RESULT= new RecRequest(t1, t2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
2033                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_atom",7, RESULT);
2034                }
2035              return CUP$parser$result;
2036    
2037              /*. . . . . . . . . . . . . . . . . . . .*/
2038              case 39: // tool_atom ::= SND_ACK_EVENT LPAR term COMMA term RPAR 
2039                {
2040                  Atom RESULT =null;
2041                    ATerm t1 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
2042                    ATerm t2 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2043                     RESULT= new AckEvent(t1, t2, null, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
2044                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_atom",7, RESULT);
2045                }
2046              return CUP$parser$result;
2047    
2048              /*. . . . . . . . . . . . . . . . . . . .*/
2049              case 38: // tool_atom ::= REC_EVENT LPAR term COMMA term RPAR 
2050                {
2051                  Atom RESULT =null;
2052                    ATerm t1 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
2053                    ATerm t2 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2054                     RESULT= new Event(t1, t2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
2055                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_atom",7, RESULT);
2056                }
2057              return CUP$parser$result;
2058    
2059              /*. . . . . . . . . . . . . . . . . . . .*/
2060              case 37: // tool_atom ::= SND_KILL LPAR term COMMA term RPAR 
2061                {
2062                  Atom RESULT =null;
2063                    ATerm t1 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
2064                    ATerm t2 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2065                     RESULT= new SndKill(t1, t2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
2066                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_atom",7, RESULT);
2067                }
2068              return CUP$parser$result;
2069    
2070              /*. . . . . . . . . . . . . . . . . . . .*/
2071              case 36: // tool_atom ::= SND_TERMINATE LPAR term COMMA term RPAR 
2072                {
2073                  Atom RESULT =null;
2074                    ATerm t1 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
2075                    ATerm t2 = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2076                     RESULT= new Terminate(t1, t2, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
2077                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_atom",7, RESULT);
2078                }
2079              return CUP$parser$result;
2080    
2081              /*. . . . . . . . . . . . . . . . . . . .*/
2082              case 35: // tool_atom ::= REC_DISCONNECT LPAR term RPAR 
2083                {
2084                  Atom RESULT =null;
2085                    ATerm rv = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2086                     RESULT = new DisConnect(rv, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
2087                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_atom",7, RESULT);
2088                }
2089              return CUP$parser$result;
2090    
2091              /*. . . . . . . . . . . . . . . . . . . .*/
2092              case 34: // tool_atom ::= REC_CONNECT LPAR term RPAR 
2093                {
2094                  Atom RESULT =null;
2095                    ATerm rv = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2096                     RESULT = new Connect(rv, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top)), false); 
2097                  CUP$parser$result = parser.getSymbolFactory().newSymbol("tool_atom",7, RESULT);
2098                }
2099              return CUP$parser$result;
2100    
2101              /*. . . . . . . . . . . . . . . . . . . .*/
2102              case 33: // note_atom ::= NO_NOTE LPAR term RPAR 
2103                {
2104                  Atom RESULT =null;
2105                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2106                     RESULT= new NoNote(t, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
2107                  CUP$parser$result = parser.getSymbolFactory().newSymbol("note_atom",6, RESULT);
2108                }
2109              return CUP$parser$result;
2110    
2111              /*. . . . . . . . . . . . . . . . . . . .*/
2112              case 32: // note_atom ::= REC_NOTE LPAR term RPAR 
2113                {
2114                  Atom RESULT =null;
2115                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2116                     RESULT= new RecNote(t, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
2117                  CUP$parser$result = parser.getSymbolFactory().newSymbol("note_atom",6, RESULT);
2118                }
2119              return CUP$parser$result;
2120    
2121              /*. . . . . . . . . . . . . . . . . . . .*/
2122              case 31: // note_atom ::= SND_NOTE LPAR term RPAR 
2123                {
2124                  Atom RESULT =null;
2125                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2126                     RESULT= new SndNote(t, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
2127                  CUP$parser$result = parser.getSymbolFactory().newSymbol("note_atom",6, RESULT);
2128                }
2129              return CUP$parser$result;
2130    
2131              /*. . . . . . . . . . . . . . . . . . . .*/
2132              case 30: // note_atom ::= UNSUBSCRIBE LPAR term RPAR 
2133                {
2134                  Atom RESULT =null;
2135                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2136                     RESULT= new UnSubscribe(t, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
2137                  CUP$parser$result = parser.getSymbolFactory().newSymbol("note_atom",6, RESULT);
2138                }
2139              return CUP$parser$result;
2140    
2141              /*. . . . . . . . . . . . . . . . . . . .*/
2142              case 29: // note_atom ::= SUBSCRIBE LPAR term RPAR 
2143                {
2144                  Atom RESULT =null;
2145                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2146                     RESULT= new Subscribe(t, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
2147                  CUP$parser$result = parser.getSymbolFactory().newSymbol("note_atom",6, RESULT);
2148                }
2149              return CUP$parser$result;
2150    
2151              /*. . . . . . . . . . . . . . . . . . . .*/
2152              case 28: // comm_atom ::= REC_MSG LPAR term_list RPAR 
2153                {
2154                  Atom RESULT =null;
2155                    ATermList tl = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2156                     RESULT =  new RecMsg(tl, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
2157                  CUP$parser$result = parser.getSymbolFactory().newSymbol("comm_atom",5, RESULT);
2158                }
2159              return CUP$parser$result;
2160    
2161              /*. . . . . . . . . . . . . . . . . . . .*/
2162              case 27: // comm_atom ::= SND_MSG LPAR term_list RPAR 
2163                {
2164                  Atom RESULT =null;
2165                    ATermList tl = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2166                     RESULT =  new SndMsg(tl, parser.tbfactory, makePosInfo((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3), (java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top))); 
2167                  CUP$parser$result = parser.getSymbolFactory().newSymbol("comm_atom",5, RESULT);
2168                }
2169              return CUP$parser$result;
2170    
2171              /*. . . . . . . . . . . . . . . . . . . .*/
2172              case 26: // atom ::= shutdown 
2173                {
2174                  Atom RESULT =null;
2175                    Atom a = (Atom)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2176                     RESULT = a; 
2177                  CUP$parser$result = parser.getSymbolFactory().newSymbol("atom",4, RESULT);
2178                }
2179              return CUP$parser$result;
2180    
2181              /*. . . . . . . . . . . . . . . . . . . .*/
2182              case 25: // atom ::= assign 
2183                {
2184                  Atom RESULT =null;
2185                    Atom a = (Atom)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2186                     RESULT = a; 
2187                  CUP$parser$result = parser.getSymbolFactory().newSymbol("atom",4, RESULT);
2188                }
2189              return CUP$parser$result;
2190    
2191              /*. . . . . . . . . . . . . . . . . . . .*/
2192              case 24: // atom ::= read_print 
2193                {
2194                  Atom RESULT =null;
2195                    Atom a = (Atom)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2196                     RESULT = a; 
2197                  CUP$parser$result = parser.getSymbolFactory().newSymbol("atom",4, RESULT);
2198                }
2199              return CUP$parser$result;
2200    
2201              /*. . . . . . . . . . . . . . . . . . . .*/
2202              case 23: // atom ::= create 
2203                {
2204                  Atom RESULT =null;
2205                    Atom a = (Atom)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2206                     RESULT = a; 
2207                  CUP$parser$result = parser.getSymbolFactory().newSymbol("atom",4, RESULT);
2208                }
2209              return CUP$parser$result;
2210    
2211              /*. . . . . . . . . . . . . . . . . . . .*/
2212              case 22: // atom ::= delta_tau 
2213                {
2214                  Atom RESULT =null;
2215                    Atom a = (Atom)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2216                     RESULT = a; 
2217                  CUP$parser$result = parser.getSymbolFactory().newSymbol("atom",4, RESULT);
2218                }
2219              return CUP$parser$result;
2220    
2221              /*. . . . . . . . . . . . . . . . . . . .*/
2222              case 21: // atom ::= tool_atom 
2223                {
2224                  Atom RESULT =null;
2225                    Atom a = (Atom)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2226                     RESULT = a; 
2227                  CUP$parser$result = parser.getSymbolFactory().newSymbol("atom",4, RESULT);
2228                }
2229              return CUP$parser$result;
2230    
2231              /*. . . . . . . . . . . . . . . . . . . .*/
2232              case 20: // atom ::= note_atom 
2233                {
2234                  Atom RESULT =null;
2235                    Atom a = (Atom)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2236                     RESULT = a; 
2237                  CUP$parser$result = parser.getSymbolFactory().newSymbol("atom",4, RESULT);
2238                }
2239              return CUP$parser$result;
2240    
2241              /*. . . . . . . . . . . . . . . . . . . .*/
2242              case 19: // atom ::= comm_atom 
2243                {
2244                  Atom RESULT =null;
2245                    Atom a = (Atom)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2246                     RESULT = a; 
2247                  CUP$parser$result = parser.getSymbolFactory().newSymbol("atom",4, RESULT);
2248                }
2249              return CUP$parser$result;
2250    
2251              /*. . . . . . . . . . . . . . . . . . . .*/
2252              case 18: // term_list ::= term COMMA term_list 
2253                {
2254                  ATermList RESULT =null;
2255                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
2256                    ATermList tl = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2257                     RESULT = parser.tbfactory.makeList(t, tl); 
2258                  CUP$parser$result = parser.getSymbolFactory().newSymbol("term_list",3, RESULT);
2259                }
2260              return CUP$parser$result;
2261    
2262              /*. . . . . . . . . . . . . . . . . . . .*/
2263              case 17: // term_list ::= term 
2264                {
2265                  ATermList RESULT =null;
2266                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2267                     RESULT = parser.tbfactory.makeList(t); 
2268                  CUP$parser$result = parser.getSymbolFactory().newSymbol("term_list",3, RESULT);
2269                }
2270              return CUP$parser$result;
2271    
2272              /*. . . . . . . . . . . . . . . . . . . .*/
2273              case 16: // term_list ::= 
2274                {
2275                  ATermList RESULT =null;
2276                     RESULT = parser.tbfactory.makeList(); 
2277                  CUP$parser$result = parser.getSymbolFactory().newSymbol("term_list",3, RESULT);
2278                }
2279              return CUP$parser$result;
2280    
2281              /*. . . . . . . . . . . . . . . . . . . .*/
2282              case 15: // var ::= NAME 
2283                {
2284                  ATerm RESULT =null;
2285                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2286                     AFun af = parser.tbfactory.makeAFun(nm, 0, false);
2287                                                                                  ATerm at = parser.tbfactory.makeAppl(af);
2288                                                                                  String replacement = parser.toolbus.getProperty(nm);
2289                                                                  if(replacement != null){
2290                                                                                                    RESULT = parser.tbfactory.make(replacement);
2291                                                                                          } else {
2292                                                                                            ATerm type = parser.declaredVaribles.get(nm);
2293                                                                                    if(type == null) parser.undeclaredVariableError((java_cup.runtime.Symbol) CUP$parser$stack.peek());
2294                                                                                    RESULT = parser.tbfactory.mkVar(at, parser.processName, type);
2295                                                                                  }
2296                                                                               
2297                  CUP$parser$result = parser.getSymbolFactory().newSymbol("var",2, RESULT);
2298                }
2299              return CUP$parser$result;
2300    
2301              /*. . . . . . . . . . . . . . . . . . . .*/
2302              case 14: // result_var ::= NAME QUESTION 
2303                {
2304                  ATerm RESULT =null;
2305                    String nm = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2306                     AFun af = parser.tbfactory.makeAFun(nm, 0, false);
2307                                                                                  ATerm at = parser.tbfactory.makeAppl(af);
2308                                                                                  ATerm type = parser.declaredVaribles.get(nm);
2309                                                                                  if(type == null) parser.undeclaredVariableError((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1));
2310                                                                                  RESULT = parser.tbfactory.mkResVar(at, parser.processName, type);
2311                                                                               
2312                  CUP$parser$result = parser.getSymbolFactory().newSymbol("result_var",1, RESULT);
2313                }
2314              return CUP$parser$result;
2315    
2316              /*. . . . . . . . . . . . . . . . . . . .*/
2317              case 13: // term ::= LANGLE type RANGLE 
2318                {
2319                  ATerm RESULT =null;
2320                    ATerm t = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2321                     RESULT = parser.tbfactory.makePlaceholder(t); 
2322                  CUP$parser$result = parser.getSymbolFactory().newSymbol("term",0, RESULT);
2323                }
2324              return CUP$parser$result;
2325    
2326              /*. . . . . . . . . . . . . . . . . . . .*/
2327              case 12: // term ::= LSQUARE term_list RSQUARE 
2328                {
2329                  ATerm RESULT =null;
2330                    ATermList tl = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2331                     RESULT = tl; 
2332                  CUP$parser$result = parser.getSymbolFactory().newSymbol("term",0, RESULT);
2333                }
2334              return CUP$parser$result;
2335    
2336              /*. . . . . . . . . . . . . . . . . . . .*/
2337              case 11: // term ::= IDENT LPAR term_list RPAR 
2338                {
2339                  ATerm RESULT =null;
2340                    String id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
2341                    ATermList tl = (ATermList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2342                     AFun af = parser.tbfactory.makeAFun(id.toString(), tl.getLength(), false);
2343                                                                                      RESULT = parser.tbfactory.makeApplList(af, tl);
2344                                                                               
2345                  CUP$parser$result = parser.getSymbolFactory().newSymbol("term",0, RESULT);
2346                }
2347              return CUP$parser$result;
2348    
2349              /*. . . . . . . . . . . . . . . . . . . .*/
2350              case 10: // term ::= IDENT 
2351                {
2352                  ATerm RESULT =null;
2353                    String id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2354                     AFun af = parser.tbfactory.makeAFun(id.toString(), 0, false);
2355                                                                                  RESULT = parser.tbfactory.makeAppl(af);
2356                                                                               
2357                  CUP$parser$result = parser.getSymbolFactory().newSymbol("term",0, RESULT);
2358                }
2359              return CUP$parser$result;
2360    
2361              /*. . . . . . . . . . . . . . . . . . . .*/
2362              case 9: // term ::= UNDEFINED 
2363                {
2364                  ATerm RESULT =null;
2365                     RESULT = parser.tbfactory.Undefined; 
2366                  CUP$parser$result = parser.getSymbolFactory().newSymbol("term",0, RESULT);
2367                }
2368              return CUP$parser$result;
2369    
2370              /*. . . . . . . . . . . . . . . . . . . .*/
2371              case 8: // term ::= FALSE 
2372                {
2373                  ATerm RESULT =null;
2374                     RESULT = parser.tbfactory.False; 
2375                  CUP$parser$result = parser.getSymbolFactory().newSymbol("term",0, RESULT);
2376                }
2377              return CUP$parser$result;
2378    
2379              /*. . . . . . . . . . . . . . . . . . . .*/
2380              case 7: // term ::= TRUE 
2381                {
2382                  ATerm RESULT =null;
2383                     RESULT = parser.tbfactory.True; 
2384                  CUP$parser$result = parser.getSymbolFactory().newSymbol("term",0, RESULT);
2385                }
2386              return CUP$parser$result;
2387    
2388              /*. . . . . . . . . . . . . . . . . . . .*/
2389              case 6: // term ::= result_var 
2390                {
2391                  ATerm RESULT =null;
2392                    ATerm rv = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2393                     RESULT = rv; 
2394                  CUP$parser$result = parser.getSymbolFactory().newSymbol("term",0, RESULT);
2395                }
2396              return CUP$parser$result;
2397    
2398              /*. . . . . . . . . . . . . . . . . . . .*/
2399              case 5: // term ::= var 
2400                {
2401                  ATerm RESULT =null;
2402                    ATerm v = (ATerm)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2403                     RESULT = v; 
2404                  CUP$parser$result = parser.getSymbolFactory().newSymbol("term",0, RESULT);
2405                }
2406              return CUP$parser$result;
2407    
2408              /*. . . . . . . . . . . . . . . . . . . .*/
2409              case 4: // term ::= STRING 
2410                {
2411                  ATerm RESULT =null;
2412                    String s = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2413                     AFun afun = parser.tbfactory.makeAFun(s.toString(), 0, true);
2414                                                                                      RESULT = parser.tbfactory.makeAppl(afun); 
2415                                                                               
2416                  CUP$parser$result = parser.getSymbolFactory().newSymbol("term",0, RESULT);
2417                }
2418              return CUP$parser$result;
2419    
2420              /*. . . . . . . . . . . . . . . . . . . .*/
2421              case 3: // term ::= REAL 
2422                {
2423                  ATerm RESULT =null;
2424                    String s = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2425                     RESULT = parser.tbfactory.makeReal(new Double(s).doubleValue()); 
2426                  CUP$parser$result = parser.getSymbolFactory().newSymbol("term",0, RESULT);
2427                }
2428              return CUP$parser$result;
2429    
2430              /*. . . . . . . . . . . . . . . . . . . .*/
2431              case 2: // term ::= INT 
2432                {
2433                  ATerm RESULT =null;
2434                    Integer i = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
2435                     RESULT = parser.tbfactory.makeInt(i.intValue()); 
2436                  CUP$parser$result = parser.getSymbolFactory().newSymbol("term",0, RESULT);
2437                }
2438              return CUP$parser$result;
2439    
2440              /*. . . . . . . . . . . . . . . . . . . .*/
2441              case 1: // $START ::= script EOF 
2442                {
2443                  Object RESULT =null;
2444                    Object start_val = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
2445                    RESULT = start_val;
2446                  CUP$parser$result = parser.getSymbolFactory().newSymbol("$START",0, RESULT);
2447                }
2448              /* ACCEPT */
2449              CUP$parser$parser.done_parsing();
2450              return CUP$parser$result;
2451    
2452              /*. . . . . . . . . . . . . . . . . . . .*/
2453              case 0: // script ::= def_list 
2454                {
2455                  Object RESULT =null;
2456    
2457                  CUP$parser$result = parser.getSymbolFactory().newSymbol("script",37, RESULT);
2458                }
2459              return CUP$parser$result;
2460    
2461              /* . . . . . .*/
2462              default:
2463                throw new Exception(
2464                   "Invalid action number found in internal parse table");
2465    
2466            }
2467        }
2468    }
2469