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