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