cmdgram.cc 92 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271
  1. //-----------------------------------------------------------------------------
  2. // Copyright (c) 2013 GarageGames, LLC
  3. //
  4. // Permission is hereby granted, free of charge, to any person obtaining a copy
  5. // of this software and associated documentation files (the "Software"), to
  6. // deal in the Software without restriction, including without limitation the
  7. // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
  8. // sell copies of the Software, and to permit persons to whom the Software is
  9. // furnished to do so, subject to the following conditions:
  10. //
  11. // The above copyright notice and this permission notice shall be included in
  12. // all copies or substantial portions of the Software.
  13. //
  14. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  17. // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18. // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  19. // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
  20. // IN THE SOFTWARE.
  21. //-----------------------------------------------------------------------------
  22. /* A Bison parser, made from cmdgram.y with Bison version GNU Bison version 1.24
  23. */
  24. #define YYBISON 1 /* Identify Bison output. */
  25. #define yyparse CMDparse
  26. #define yylex CMDlex
  27. #define yyerror CMDerror
  28. #define yylval CMDlval
  29. #define yychar CMDchar
  30. #define yydebug CMDdebug
  31. #define yynerrs CMDnerrs
  32. #define rwDEFINE 258
  33. #define rwENDDEF 259
  34. #define rwDECLARE 260
  35. #define rwBREAK 261
  36. #define rwELSE 262
  37. #define rwCONTINUE 263
  38. #define rwGLOBAL 264
  39. #define rwIF 265
  40. #define rwNIL 266
  41. #define rwRETURN 267
  42. #define rwWHILE 268
  43. #define rwDO 269
  44. #define rwENDIF 270
  45. #define rwENDWHILE 271
  46. #define rwENDFOR 272
  47. #define rwDEFAULT 273
  48. #define rwFOR 274
  49. #define rwDATABLOCK 275
  50. #define rwSWITCH 276
  51. #define rwCASE 277
  52. #define rwSWITCHSTR 278
  53. #define rwCASEOR 279
  54. #define rwPACKAGE 280
  55. #define rwNAMESPACE 281
  56. #define rwCLASS 282
  57. #define rwMESSAGE 283
  58. #define ILLEGAL_TOKEN 284
  59. #define CHRCONST 285
  60. #define INTCONST 286
  61. #define TTAG 287
  62. #define VAR 288
  63. #define IDENT 289
  64. #define DOCBLOCK 290
  65. #define STRATOM 291
  66. #define TAGATOM 292
  67. #define FLTCONST 293
  68. #define opINTNAME 294
  69. #define opINTNAMER 295
  70. #define opMINUSMINUS 296
  71. #define opPLUSPLUS 297
  72. #define STMT_SEP 298
  73. #define opSHL 299
  74. #define opSHR 300
  75. #define opPLASN 301
  76. #define opMIASN 302
  77. #define opMLASN 303
  78. #define opDVASN 304
  79. #define opMODASN 305
  80. #define opANDASN 306
  81. #define opXORASN 307
  82. #define opORASN 308
  83. #define opSLASN 309
  84. #define opSRASN 310
  85. #define opCAT 311
  86. #define opEQ 312
  87. #define opNE 313
  88. #define opGE 314
  89. #define opLE 315
  90. #define opAND 316
  91. #define opOR 317
  92. #define opSTREQ 318
  93. #define opCOLONCOLON 319
  94. #define opMDASN 320
  95. #define opNDASN 321
  96. #define opNTASN 322
  97. #define opSTRNE 323
  98. #define UNARY 324
  99. #line 1 "cmdgram.y"
  100. // Make sure we don't get gram.h twice.
  101. #define _CMDGRAM_H_
  102. #include <stdlib.h>
  103. #include <stdio.h>
  104. #include "console/console.h"
  105. #include "console/compiler.h"
  106. #include "console/consoleInternal.h"
  107. #ifndef YYDEBUG
  108. #define YYDEBUG 0
  109. #endif
  110. #define YYSSIZE 350
  111. int outtext(char *fmt, ...);
  112. extern int serrors;
  113. #define nil 0
  114. #undef YY_ARGS
  115. #define YY_ARGS(x) x
  116. int CMDlex();
  117. void CMDerror(char *, ...);
  118. #undef alloca
  119. #define alloca dMalloc
  120. #line 31 "cmdgram.y"
  121. /* Reserved Word Definitions */
  122. #line 41 "cmdgram.y"
  123. /* Constants and Identifier Definitions */
  124. #line 54 "cmdgram.y"
  125. /* Operator Definitions */
  126. #line 67 "cmdgram.y"
  127. typedef union {
  128. char c;
  129. int i;
  130. const char * s;
  131. char * str;
  132. double f;
  133. StmtNode * stmt;
  134. ExprNode * expr;
  135. SlotAssignNode * slist;
  136. VarNode * var;
  137. SlotDecl slot;
  138. InternalSlotDecl intslot;
  139. ObjectBlockDecl odcl;
  140. ObjectDeclNode * od;
  141. AssignDecl asn;
  142. IfStmtNode * ifnode;
  143. } YYSTYPE;
  144. #ifndef YYLTYPE
  145. typedef
  146. struct yyltype
  147. {
  148. int timestamp;
  149. int first_line;
  150. int first_column;
  151. int last_line;
  152. int last_column;
  153. char *text;
  154. }
  155. yyltype;
  156. #define YYLTYPE yyltype
  157. #endif
  158. #include <stdio.h>
  159. #ifndef __cplusplus
  160. #ifndef __STDC__
  161. #define const
  162. #endif
  163. #endif
  164. #define YYFINAL 346
  165. #define YYFLAG -32768
  166. #define YYNTBASE 95
  167. #define YYTRANSLATE(x) ((unsigned)(x) <= 324 ? yytranslate[x] : 134)
  168. static const char yytranslate[] = { 0,
  169. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  170. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  171. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  172. 2, 2, 59, 2, 2, 2, 49, 48, 2, 50,
  173. 51, 41, 39, 52, 40, 46, 42, 2, 2, 2,
  174. 2, 2, 2, 2, 2, 2, 2, 53, 54, 43,
  175. 45, 44, 91, 60, 2, 2, 2, 2, 2, 2,
  176. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  177. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  178. 87, 2, 94, 57, 2, 2, 2, 2, 2, 2,
  179. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  180. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  181. 2, 2, 55, 47, 56, 58, 2, 2, 2, 2,
  182. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  183. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  184. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  185. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  186. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  187. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  188. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  189. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  190. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  191. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  192. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  193. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  194. 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
  195. 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
  196. 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
  197. 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
  198. 36, 37, 38, 61, 62, 63, 64, 65, 66, 67,
  199. 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
  200. 78, 79, 80, 81, 82, 83, 84, 85, 86, 88,
  201. 89, 90, 92, 93
  202. };
  203. #if YYDEBUG != 0
  204. static const short yyprhs[] = { 0,
  205. 0, 2, 3, 6, 8, 10, 12, 19, 21, 24,
  206. 25, 28, 30, 32, 34, 36, 38, 41, 44, 47,
  207. 51, 54, 59, 66, 68, 77, 88, 89, 91, 93,
  208. 97, 108, 118, 125, 136, 144, 157, 167, 168, 171,
  209. 172, 174, 175, 178, 179, 181, 182, 184, 186, 189,
  210. 192, 196, 200, 202, 210, 218, 223, 231, 237, 239,
  211. 243, 249, 257, 263, 270, 280, 289, 298, 306, 315,
  212. 323, 331, 338, 340, 342, 346, 350, 354, 358, 362,
  213. 366, 370, 374, 378, 381, 384, 386, 392, 396, 400,
  214. 404, 408, 412, 416, 420, 424, 428, 432, 436, 440,
  215. 444, 447, 450, 452, 454, 456, 458, 460, 462, 464,
  216. 466, 468, 473, 477, 484, 488, 492, 494, 498, 500,
  217. 502, 505, 508, 511, 514, 517, 520, 523, 526, 529,
  218. 532, 534, 536, 538, 542, 549, 552, 558, 561, 565,
  219. 571, 576, 583, 590, 591, 593, 595, 599, 601, 604,
  220. 609, 614, 622, 624
  221. };
  222. static const short yyrhs[] = { 96,
  223. 0, 0, 96, 97, 0, 101, 0, 102, 0, 98,
  224. 0, 25, 34, 55, 99, 56, 54, 0, 102, 0,
  225. 99, 102, 0, 0, 100, 101, 0, 118, 0, 119,
  226. 0, 120, 0, 105, 0, 115, 0, 6, 54, 0,
  227. 8, 54, 0, 12, 54, 0, 12, 122, 54, 0,
  228. 121, 54, 0, 32, 45, 122, 54, 0, 32, 45,
  229. 122, 52, 122, 54, 0, 35, 0, 3, 34, 50,
  230. 103, 51, 55, 100, 56, 0, 3, 34, 86, 34,
  231. 50, 103, 51, 55, 100, 56, 0, 0, 104, 0,
  232. 33, 0, 104, 52, 33, 0, 20, 34, 50, 34,
  233. 108, 51, 55, 131, 56, 54, 0, 28, 125, 50,
  234. 109, 108, 51, 55, 111, 56, 0, 28, 125, 50,
  235. 109, 108, 51, 0, 5, 125, 50, 109, 108, 110,
  236. 51, 55, 112, 56, 0, 5, 125, 50, 109, 108,
  237. 110, 51, 0, 5, 125, 50, 87, 109, 94, 108,
  238. 110, 51, 55, 112, 56, 0, 5, 125, 50, 87,
  239. 109, 94, 108, 110, 51, 0, 0, 53, 34, 0,
  240. 0, 122, 0, 0, 52, 130, 0, 0, 131, 0,
  241. 0, 131, 0, 113, 0, 131, 113, 0, 107, 54,
  242. 0, 113, 107, 54, 0, 55, 100, 56, 0, 101,
  243. 0, 21, 50, 122, 51, 55, 116, 56, 0, 23,
  244. 50, 122, 51, 55, 116, 56, 0, 22, 117, 53,
  245. 100, 0, 22, 117, 53, 100, 18, 53, 100, 0,
  246. 22, 117, 53, 100, 116, 0, 122, 0, 117, 24,
  247. 122, 0, 10, 50, 122, 51, 114, 0, 10, 50,
  248. 122, 51, 114, 7, 114, 0, 13, 50, 122, 51,
  249. 114, 0, 14, 114, 13, 50, 122, 51, 0, 19,
  250. 50, 122, 54, 122, 54, 122, 51, 114, 0, 19,
  251. 50, 122, 54, 122, 54, 51, 114, 0, 19, 50,
  252. 122, 54, 54, 122, 51, 114, 0, 19, 50, 122,
  253. 54, 54, 51, 114, 0, 19, 50, 54, 122, 54,
  254. 122, 51, 114, 0, 19, 50, 54, 122, 54, 51,
  255. 114, 0, 19, 50, 54, 54, 122, 51, 114, 0,
  256. 19, 50, 54, 54, 51, 114, 0, 127, 0, 127,
  257. 0, 50, 122, 51, 0, 122, 57, 122, 0, 122,
  258. 49, 122, 0, 122, 48, 122, 0, 122, 47, 122,
  259. 0, 122, 39, 122, 0, 122, 40, 122, 0, 122,
  260. 41, 122, 0, 122, 42, 122, 0, 40, 122, 0,
  261. 41, 122, 0, 32, 0, 122, 91, 122, 53, 122,
  262. 0, 122, 43, 122, 0, 122, 44, 122, 0, 122,
  263. 81, 122, 0, 122, 82, 122, 0, 122, 79, 122,
  264. 0, 122, 80, 122, 0, 122, 84, 122, 0, 122,
  265. 66, 122, 0, 122, 67, 122, 0, 122, 83, 122,
  266. 0, 122, 85, 122, 0, 122, 92, 122, 0, 122,
  267. 60, 122, 0, 59, 122, 0, 58, 122, 0, 37,
  268. 0, 38, 0, 31, 0, 6, 0, 123, 0, 124,
  269. 0, 34, 0, 36, 0, 33, 0, 33, 87, 133,
  270. 94, 0, 122, 46, 34, 0, 122, 46, 34, 87,
  271. 133, 94, 0, 122, 61, 125, 0, 122, 62, 125,
  272. 0, 34, 0, 50, 122, 51, 0, 64, 0, 63,
  273. 0, 68, 122, 0, 69, 122, 0, 70, 122, 0,
  274. 71, 122, 0, 72, 122, 0, 73, 122, 0, 74,
  275. 122, 0, 75, 122, 0, 76, 122, 0, 77, 122,
  276. 0, 128, 0, 107, 0, 106, 0, 33, 45, 122,
  277. 0, 33, 87, 133, 94, 45, 122, 0, 33, 126,
  278. 0, 33, 87, 133, 94, 126, 0, 123, 126, 0,
  279. 123, 45, 122, 0, 123, 45, 55, 130, 56, 0,
  280. 34, 50, 129, 51, 0, 34, 86, 34, 50, 129,
  281. 51, 0, 122, 46, 34, 50, 129, 51, 0, 0,
  282. 130, 0, 122, 0, 130, 52, 122, 0, 132, 0,
  283. 131, 132, 0, 34, 45, 122, 54, 0, 20, 45,
  284. 122, 54, 0, 34, 87, 133, 94, 45, 122, 54,
  285. 0, 122, 0, 133, 52, 122, 0
  286. };
  287. #endif
  288. #if YYDEBUG != 0
  289. static const short yyrline[] = { 0,
  290. 145, 150, 152, 157, 159, 161, 166, 171, 173, 178,
  291. 180, 185, 186, 187, 188, 189, 190, 192, 194, 196,
  292. 198, 200, 202, 204, 209, 211, 216, 218, 223, 225,
  293. 230, 235, 237, 242, 244, 246, 248, 253, 255, 260,
  294. 262, 267, 269, 274, 276, 281, 283, 285, 287, 292,
  295. 294, 299, 301, 306, 308, 313, 315, 317, 322, 324,
  296. 329, 331, 336, 338, 343, 345, 347, 349, 351, 353,
  297. 355, 357, 362, 367, 369, 371, 373, 375, 377, 379,
  298. 381, 383, 385, 387, 389, 391, 393, 395, 397, 399,
  299. 401, 403, 405, 407, 409, 411, 413, 415, 417, 419,
  300. 421, 423, 425, 427, 429, 431, 433, 435, 437, 439,
  301. 441, 443, 448, 450, 455, 457, 462, 464, 469, 471,
  302. 473, 475, 477, 479, 481, 483, 485, 487, 489, 491,
  303. 496, 498, 500, 502, 504, 506, 508, 510, 512, 514,
  304. 519, 521, 523, 528, 530, 535, 537, 542, 544, 549,
  305. 551, 553, 558, 560
  306. };
  307. static const char * const yytname[] = { "$","error","$undefined.","rwDEFINE",
  308. "rwENDDEF","rwDECLARE","rwBREAK","rwELSE","rwCONTINUE","rwGLOBAL","rwIF","rwNIL",
  309. "rwRETURN","rwWHILE","rwDO","rwENDIF","rwENDWHILE","rwENDFOR","rwDEFAULT","rwFOR",
  310. "rwDATABLOCK","rwSWITCH","rwCASE","rwSWITCHSTR","rwCASEOR","rwPACKAGE","rwNAMESPACE",
  311. "rwCLASS","rwMESSAGE","ILLEGAL_TOKEN","CHRCONST","INTCONST","TTAG","VAR","IDENT",
  312. "DOCBLOCK","STRATOM","TAGATOM","FLTCONST","'+'","'-'","'*'","'/'","'<'","'>'",
  313. "'='","'.'","'|'","'&'","'%'","'('","')'","','","':'","';'","'{'","'}'","'^'",
  314. "'~'","'!'","'@'","opINTNAME","opINTNAMER","opMINUSMINUS","opPLUSPLUS","STMT_SEP",
  315. "opSHL","opSHR","opPLASN","opMIASN","opMLASN","opDVASN","opMODASN","opANDASN",
  316. "opXORASN","opORASN","opSLASN","opSRASN","opCAT","opEQ","opNE","opGE","opLE",
  317. "opAND","opOR","opSTREQ","opCOLONCOLON","'['","opMDASN","opNDASN","opNTASN",
  318. "'?'","opSTRNE","UNARY","']'","start","decl_list","decl","package_decl","fn_decl_list",
  319. "statement_list","stmt","fn_decl_stmt","var_list_decl","var_list","datablock_decl",
  320. "message_decl","object_decl","parent_block","object_name","object_args","message_declare_block",
  321. "object_declare_block","object_decl_list","stmt_block","switch_stmt","case_block",
  322. "case_expr","if_stmt","while_stmt","for_stmt","expression_stmt","expr","slot_acc",
  323. "intslot_acc","class_name_expr","assign_op_struct","stmt_expr","funcall_expr",
  324. "expr_list_decl","expr_list","slot_assign_list","slot_assign","aidx_expr",""
  325. };
  326. #endif
  327. static const short yyr1[] = { 0,
  328. 95, 96, 96, 97, 97, 97, 98, 99, 99, 100,
  329. 100, 101, 101, 101, 101, 101, 101, 101, 101, 101,
  330. 101, 101, 101, 101, 102, 102, 103, 103, 104, 104,
  331. 105, 106, 106, 107, 107, 107, 107, 108, 108, 109,
  332. 109, 110, 110, 111, 111, 112, 112, 112, 112, 113,
  333. 113, 114, 114, 115, 115, 116, 116, 116, 117, 117,
  334. 118, 118, 119, 119, 120, 120, 120, 120, 120, 120,
  335. 120, 120, 121, 122, 122, 122, 122, 122, 122, 122,
  336. 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
  337. 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
  338. 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
  339. 122, 122, 123, 123, 124, 124, 125, 125, 126, 126,
  340. 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
  341. 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
  342. 128, 128, 128, 129, 129, 130, 130, 131, 131, 132,
  343. 132, 132, 133, 133
  344. };
  345. static const short yyr2[] = { 0,
  346. 1, 0, 2, 1, 1, 1, 6, 1, 2, 0,
  347. 2, 1, 1, 1, 1, 1, 2, 2, 2, 3,
  348. 2, 4, 6, 1, 8, 10, 0, 1, 1, 3,
  349. 10, 9, 6, 10, 7, 12, 9, 0, 2, 0,
  350. 1, 0, 2, 0, 1, 0, 1, 1, 2, 2,
  351. 3, 3, 1, 7, 7, 4, 7, 5, 1, 3,
  352. 5, 7, 5, 6, 9, 8, 8, 7, 8, 7,
  353. 7, 6, 1, 1, 3, 3, 3, 3, 3, 3,
  354. 3, 3, 3, 2, 2, 1, 5, 3, 3, 3,
  355. 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
  356. 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
  357. 1, 4, 3, 6, 3, 3, 1, 3, 1, 1,
  358. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  359. 1, 1, 1, 3, 6, 2, 5, 2, 3, 5,
  360. 4, 6, 6, 0, 1, 1, 3, 1, 2, 4,
  361. 4, 7, 1, 3
  362. };
  363. static const short yydefact[] = { 2,
  364. 1, 0, 0, 106, 0, 0, 0, 0, 0, 0,
  365. 0, 0, 0, 0, 0, 105, 86, 111, 109, 24,
  366. 110, 103, 104, 0, 0, 0, 0, 0, 3, 6,
  367. 4, 5, 15, 133, 132, 16, 12, 13, 14, 0,
  368. 0, 107, 108, 74, 131, 0, 117, 0, 0, 17,
  369. 18, 0, 106, 86, 19, 0, 74, 0, 10, 53,
  370. 0, 0, 0, 0, 0, 0, 0, 0, 0, 120,
  371. 119, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  372. 0, 0, 136, 144, 0, 84, 85, 0, 102, 101,
  373. 21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  374. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  375. 0, 0, 0, 0, 0, 0, 0, 138, 27, 0,
  376. 0, 40, 0, 20, 0, 0, 0, 0, 0, 0,
  377. 0, 0, 0, 40, 0, 134, 121, 122, 123, 124,
  378. 125, 126, 127, 128, 129, 130, 153, 0, 146, 0,
  379. 145, 0, 75, 80, 81, 82, 83, 88, 89, 113,
  380. 79, 78, 77, 76, 100, 115, 116, 95, 96, 92,
  381. 93, 90, 91, 97, 94, 98, 0, 99, 0, 139,
  382. 29, 0, 28, 0, 118, 40, 38, 41, 0, 0,
  383. 52, 11, 0, 0, 0, 0, 38, 0, 0, 0,
  384. 8, 38, 0, 22, 0, 112, 141, 0, 144, 144,
  385. 0, 0, 0, 0, 0, 27, 0, 0, 42, 61,
  386. 63, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  387. 0, 9, 0, 0, 154, 0, 137, 147, 0, 0,
  388. 0, 87, 140, 10, 30, 0, 38, 39, 0, 0,
  389. 0, 64, 72, 0, 0, 0, 0, 0, 0, 0,
  390. 0, 0, 0, 7, 33, 23, 135, 142, 143, 114,
  391. 0, 0, 42, 43, 35, 62, 71, 70, 0, 68,
  392. 0, 0, 0, 0, 0, 59, 54, 55, 44, 25,
  393. 10, 0, 46, 69, 67, 66, 0, 0, 0, 0,
  394. 148, 0, 10, 0, 45, 0, 37, 0, 0, 48,
  395. 47, 65, 0, 0, 0, 0, 149, 60, 56, 32,
  396. 26, 46, 50, 34, 0, 49, 0, 0, 0, 31,
  397. 0, 58, 0, 51, 151, 150, 0, 10, 36, 0,
  398. 57, 0, 152, 0, 0, 0
  399. };
  400. static const short yydefgoto[] = { 344,
  401. 1, 29, 30, 200, 126, 60, 32, 182, 183, 33,
  402. 34, 35, 219, 187, 250, 304, 309, 310, 61, 36,
  403. 262, 285, 37, 38, 39, 40, 41, 42, 43, 49,
  404. 83, 57, 45, 150, 151, 311, 301, 148
  405. };
  406. static const short yypact[] = {-32768,
  407. 109, -11, 56, -24, -21, -9, 414, -7, 403, -2,
  408. 21, 36, 47, 73, 56,-32768, 65, 252, -35,-32768,
  409. -32768,-32768,-32768, 949, 949, 949, 949, 949,-32768,-32768,
  410. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 66,
  411. 2104, 2299,-32768, 81,-32768, 6,-32768, 949, 101,-32768,
  412. -32768, 949,-32768,-32768,-32768, 1024,-32768, 949,-32768,-32768,
  413. 139, 701, 108, 949, 949, 106, 120, 949, 949,-32768,
  414. -32768, 949, 949, 949, 949, 949, 949, 949, 949, 949,
  415. 949, 949,-32768, 949, 130, 111, 111, 1078, 111, 111,
  416. -32768, 949, 949, 949, 949, 949, 949, 137, 949, 949,
  417. 949, 949, 949, 56, 56, 949, 949, 949, 949, 949,
  418. 949, 949, 949, 949, 949, 949, 712,-32768, 141, 143,
  419. 1132, 44, 1186,-32768, 1240, 494, 132, 751, 1294, 146,
  420. 1348, 1402, 181, 949, 970, 2104, 2104, 2104, 2104, 2104,
  421. 2104, 2104, 2104, 2104, 2104, 2104, 2104, -42, 2104, 147,
  422. 138, 149,-32768, 114, 114, 111, 111, 515, 515, -34,
  423. 2216, 2274, 111, 2245, 2354,-32768,-32768, 178, 178, 202,
  424. 202, 515, 515, 2187, 2158, 2354, 1456, 2354, 949, 2104,
  425. -32768, 151, 145, 150,-32768, 949, 159, 2104, 403, 403,
  426. -32768,-32768, 949, 788, 1510, 825, 159, 148, 160, 11,
  427. -32768, 159, 949,-32768, 949, 2315,-32768, 949, 949, 949,
  428. 949, 949, 52, 161, 188, 141, 131, 192, 176, 222,
  429. -32768, 1564, 403, 1618, 836, 875, 1672, 179, 211, 211,
  430. 180,-32768, 184, 1726, 2104, 949,-32768, 2104, 185, 186,
  431. -20, -22,-32768,-32768,-32768, 187, 159,-32768, 949, 196,
  432. 403,-32768,-32768, 403, 403, 1780, 403, 1834, 912, 194,
  433. 949, 199, 201,-32768, 197,-32768, 2104,-32768,-32768,-32768,
  434. 582, 203, 176, 138, 204,-32768,-32768,-32768, 403,-32768,
  435. 403, 403, 1888, 8, 63, 2104,-32768,-32768, 8,-32768,
  436. -32768, 209, 128,-32768,-32768,-32768, 403, 216, 1, 71,
  437. -32768, 949,-32768, 210, 8, 623, 212, 218, 217, 260,
  438. 128,-32768, 949, 949, 949, 220,-32768, 2104, 173,-32768,
  439. -32768, 128,-32768,-32768, 221, 260, 1942, 1996, -5,-32768,
  440. 223,-32768, 226,-32768,-32768,-32768, 232,-32768,-32768, 949,
  441. 664, 2050,-32768, 279, 285,-32768
  442. };
  443. static const short yypgoto[] = {-32768,
  444. -32768,-32768,-32768,-32768, -237, 0, -127, 70,-32768,-32768,
  445. -32768, -157, -168, -122, 15,-32768, -33, -19, -186,-32768,
  446. -219,-32768,-32768,-32768,-32768,-32768, 284,-32768,-32768, -6,
  447. -40, -1,-32768, -71, -166, -253, -187, -206
  448. };
  449. #define YYLAST 2421
  450. static const short yytable[] = { 44,
  451. 31, 118, 220, 221, 241, 201, 271, 44, 67, 205,
  452. 263, 202, 213, 2, 84, 210, 92, 93, 94, 95,
  453. 96, 97, 46, 98, 99, 100, 101, 298, 228, 50,
  454. 300, 205, 51, 233, 102, 305, 253, 103, 104, 105,
  455. 52, 299, 58, 106, 107, 314, 205, 62, 3, 53,
  456. 85, 206, 211, 306, 63, 119, 108, 109, 110, 111,
  457. 112, 113, 114, 217, 276, 319, 231, 277, 278, 116,
  458. 280, 15, 232, 270, 16, 54, 18, 19, 273, 21,
  459. 22, 23, 274, 24, 25, 64, 302, 315, 337, 47,
  460. 298, 120, 294, 26, 295, 296, 65, 166, 167, 332,
  461. 341, 27, 28, 208, 299, 48, 66, 243, 329, 68,
  462. 312, 2, 317, 3, 4, 303, 5, 317, 6, 91,
  463. 7, 8, 9, 317, 44, 192, 316, 10, 11, 12,
  464. 186, 13, 3, 14, -73, 308, 15, 239, 240, 16,
  465. 17, 18, 19, 20, 21, 22, 23, 298, 24, 25,
  466. 122, 127, 325, 308, 94, 95, 98, 130, 26, 98,
  467. 133, 299, 101, 152, 308, 237, 27, 28, 325, 134,
  468. 160, 104, 105, 181, 104, 105, 184, 3, 4, 197,
  469. 5, 193, 6, 2, 7, 8, 9, 44, 44, 208,
  470. 331, 10, 11, 12, 261, 13, 215, 207, 209, 216,
  471. 15, 214, 229, 16, 17, 18, 19, 20, 21, 22,
  472. 23, 218, 24, 25, 230, 244, 92, 93, 94, 95,
  473. 245, 44, 26, 98, 247, 248, 101, 249, 251, 260,
  474. 27, 28, 261, 264, 265, 268, 269, 272, 104, 105,
  475. 92, 93, 94, 95, 96, 97, 275, 98, 284, 44,
  476. 101, 289, 44, 44, 287, 44, 288, 291, 293, 307,
  477. 313, 103, 104, 105, 3, 320, 322, 106, 107, 44,
  478. 192, 323, 324, 330, 334, 338, 340, 44, 345, 44,
  479. 44, 339, 110, 111, 346, 246, 114, 292, 333, 0,
  480. 56, 326, 0, 116, 0, 44, 69, 0, 0, 0,
  481. 0, 0, 0, 0, 44, 192, 0, 86, 87, 88,
  482. 89, 90, 0, 0, 70, 71, 0, 44, 192, 72,
  483. 73, 74, 75, 76, 77, 78, 79, 80, 81, 0,
  484. 0, 121, 0, 0, 0, 123, 0, 0, 82, 44,
  485. 192, 125, 0, 0, 0, 129, 0, 131, 132, 0,
  486. 0, 135, 136, 0, 0, 137, 138, 139, 140, 141,
  487. 142, 143, 144, 145, 146, 147, 0, 149, 0, 0,
  488. 0, 0, 0, 0, 0, 154, 155, 156, 157, 158,
  489. 159, 0, 161, 162, 163, 164, 165, 0, 0, 168,
  490. 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
  491. 180, 0, 0, 0, 0, 188, 0, 3, 4, 0,
  492. 5, 195, 6, 0, 7, 8, 9, 188, 3, 53,
  493. 0, 10, 11, 12, 0, 13, 0, 0, 0, 0,
  494. 15, 0, 0, 16, 17, 18, 19, 20, 21, 22,
  495. 23, 15, 24, 25, 16, 54, 18, 19, 0, 21,
  496. 22, 23, 26, 24, 25, 0, 0, 59, 0, 0,
  497. 27, 28, 149, 26, 0, 0, 0, 55, 0, 188,
  498. 0, 27, 28, 0, 0, 0, 222, 224, 0, 227,
  499. 0, 0, 0, 0, 0, 0, 234, 0, 235, 0,
  500. 0, 238, 149, 149, 147, 242, 0, 0, 3, 4,
  501. 0, 5, 0, 6, 0, 7, 8, 9, 256, 258,
  502. 0, 0, 10, 11, 12, 0, 13, 0, 0, 267,
  503. 0, 15, 0, 0, 16, 17, 18, 19, 20, 21,
  504. 22, 23, 149, 24, 25, 0, 0, 0, 0, 0,
  505. 0, 0, 283, 26, 286, 0, 0, 0, 0, 191,
  506. 0, 27, 28, 92, 93, 94, 95, 0, 0, 0,
  507. 98, 0, 0, 101, 0, 0, 0, 0, 0, 0,
  508. 0, 0, 0, 0, 103, 104, 105, 0, 0, 0,
  509. 106, 107, 0, 0, 0, 318, 3, 4, 0, 5,
  510. 0, 6, 0, 7, 8, 9, 327, 328, 147, 114,
  511. 10, 11, 12, 0, 13, 0, 116, 0, 0, 15,
  512. 0, 0, 16, 17, 18, 19, 20, 21, 22, 23,
  513. 0, 24, 25, 342, 0, 0, 0, 3, 4, 0,
  514. 5, 26, 6, 0, 7, 8, 9, 290, 0, 27,
  515. 28, 10, 11, 12, 0, 13, 0, 0, 0, 0,
  516. 15, 0, 0, 16, 17, 18, 19, 20, 21, 22,
  517. 23, 0, 24, 25, 0, 0, 0, 0, 3, 4,
  518. 0, 5, 26, 6, 0, 7, 8, 9, 321, 0,
  519. 27, 28, 10, 11, 12, 0, 13, 0, 0, 0,
  520. 0, 15, 0, 0, 16, 17, 18, 19, 20, 21,
  521. 22, 23, 0, 24, 25, 3, 53, 0, 0, 0,
  522. 0, 0, 0, 26, 0, 0, 3, 53, 0, 0,
  523. 0, 27, 28, 0, 0, 0, 0, 0, 15, 0,
  524. 0, 16, 54, 18, 19, 0, 21, 22, 23, 15,
  525. 24, 25, 16, 54, 18, 19, 0, 21, 22, 23,
  526. 26, 24, 25, 0, 128, 3, 53, 0, 27, 28,
  527. 0, 26, 0, 0, 0, 0, 179, 0, 0, 27,
  528. 28, 0, 0, 0, 0, 0, 0, 0, 15, 0,
  529. 0, 16, 54, 18, 19, 0, 21, 22, 23, 0,
  530. 24, 25, 3, 53, 0, 0, 0, 0, 0, 0,
  531. 26, 0, 0, 0, 194, 0, 0, 0, 27, 28,
  532. 0, 0, 0, 0, 0, 15, 0, 0, 16, 54,
  533. 18, 19, 0, 21, 22, 23, 0, 24, 25, 3,
  534. 53, 0, 0, 0, 0, 0, 0, 26, 223, 0,
  535. 3, 53, 0, 0, 0, 27, 28, 0, 0, 0,
  536. 0, 0, 15, 0, 0, 16, 54, 18, 19, 0,
  537. 21, 22, 23, 15, 24, 25, 16, 54, 18, 19,
  538. 0, 21, 22, 23, 26, 24, 25, 0, 226, 3,
  539. 53, 0, 27, 28, 0, 26, 255, 0, 0, 0,
  540. 0, 0, 0, 27, 28, 0, 0, 0, 0, 0,
  541. 0, 0, 15, 0, 0, 16, 54, 18, 19, 0,
  542. 21, 22, 23, 0, 24, 25, 3, 53, 0, 0,
  543. 0, 0, 0, 0, 26, 257, 0, 0, 0, 0,
  544. 0, 0, 27, 28, 0, 0, 0, 0, 0, 15,
  545. 0, 0, 16, 54, 18, 19, 0, 21, 22, 23,
  546. 0, 24, 25, 3, 53, 0, 0, 0, 0, 0,
  547. 0, 26, 282, 0, 0, 0, 0, 0, 0, 27,
  548. 28, 0, 0, 0, 0, 0, 15, 0, 0, 16,
  549. 54, 18, 19, 0, 21, 22, 23, 0, 24, 25,
  550. 0, 0, 0, 0, 0, 0, 0, 0, 26, 0,
  551. 0, 0, 0, 0, 0, 0, 27, 28, 92, 93,
  552. 94, 95, 96, 97, 0, 98, 99, 100, 101, 0,
  553. 0, 203, 0, 204, 0, 0, 102, 0, 0, 103,
  554. 104, 105, 0, 0, 0, 106, 107, 0, 0, 0,
  555. 0, 0, 0, 0, 0, 0, 0, 0, 108, 109,
  556. 110, 111, 112, 113, 114, 0, 0, 0, 0, 0,
  557. 115, 116, 92, 93, 94, 95, 96, 97, 0, 98,
  558. 99, 100, 101, 0, 0, 0, 0, 124, 0, 0,
  559. 102, 0, 0, 103, 104, 105, 0, 0, 0, 106,
  560. 107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  561. 0, 0, 108, 109, 110, 111, 112, 113, 114, 0,
  562. 0, 0, 0, 0, 115, 116, 92, 93, 94, 95,
  563. 96, 97, 0, 98, 99, 100, 101, 0, 153, 0,
  564. 0, 0, 0, 0, 102, 0, 0, 103, 104, 105,
  565. 0, 0, 0, 106, 107, 0, 0, 0, 0, 0,
  566. 0, 0, 0, 0, 0, 0, 108, 109, 110, 111,
  567. 112, 113, 114, 0, 0, 0, 0, 0, 115, 116,
  568. 92, 93, 94, 95, 96, 97, 0, 98, 99, 100,
  569. 101, 0, 185, 0, 0, 0, 0, 0, 102, 0,
  570. 0, 103, 104, 105, 0, 0, 0, 106, 107, 0,
  571. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  572. 108, 109, 110, 111, 112, 113, 114, 0, 0, 0,
  573. 0, 0, 115, 116, 92, 93, 94, 95, 96, 97,
  574. 0, 98, 99, 100, 101, 0, 189, 0, 0, 0,
  575. 0, 0, 102, 0, 0, 103, 104, 105, 0, 0,
  576. 0, 106, 107, 0, 0, 0, 0, 0, 0, 0,
  577. 0, 0, 0, 0, 108, 109, 110, 111, 112, 113,
  578. 114, 0, 0, 0, 0, 0, 115, 116, 92, 93,
  579. 94, 95, 96, 97, 0, 98, 99, 100, 101, 0,
  580. 190, 0, 0, 0, 0, 0, 102, 0, 0, 103,
  581. 104, 105, 0, 0, 0, 106, 107, 0, 0, 0,
  582. 0, 0, 0, 0, 0, 0, 0, 0, 108, 109,
  583. 110, 111, 112, 113, 114, 0, 0, 0, 0, 0,
  584. 115, 116, 92, 93, 94, 95, 96, 97, 0, 98,
  585. 99, 100, 101, 0, 0, 0, 0, 196, 0, 0,
  586. 102, 0, 0, 103, 104, 105, 0, 0, 0, 106,
  587. 107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  588. 0, 0, 108, 109, 110, 111, 112, 113, 114, 0,
  589. 0, 0, 0, 0, 115, 116, 92, 93, 94, 95,
  590. 96, 97, 0, 98, 99, 100, 101, 0, 198, 0,
  591. 0, 0, 0, 0, 102, 0, 0, 103, 104, 105,
  592. 0, 0, 0, 106, 107, 0, 0, 0, 0, 0,
  593. 0, 0, 0, 0, 0, 0, 108, 109, 110, 111,
  594. 112, 113, 114, 0, 0, 0, 0, 0, 115, 116,
  595. 92, 93, 94, 95, 96, 97, 0, 98, 99, 100,
  596. 101, 0, 199, 0, 0, 0, 0, 0, 102, 0,
  597. 0, 103, 104, 105, 0, 0, 0, 106, 107, 0,
  598. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  599. 108, 109, 110, 111, 112, 113, 114, 0, 0, 0,
  600. 0, 0, 115, 116, 92, 93, 94, 95, 96, 97,
  601. 0, 98, 99, 100, 101, 0, 0, 0, 212, 0,
  602. 0, 0, 102, 0, 0, 103, 104, 105, 0, 0,
  603. 0, 106, 107, 0, 0, 0, 0, 0, 0, 0,
  604. 0, 0, 0, 0, 108, 109, 110, 111, 112, 113,
  605. 114, 0, 0, 0, 0, 0, 115, 116, 92, 93,
  606. 94, 95, 96, 97, 0, 98, 99, 100, 101, 0,
  607. 0, 0, 0, 225, 0, 0, 102, 0, 0, 103,
  608. 104, 105, 0, 0, 0, 106, 107, 0, 0, 0,
  609. 0, 0, 0, 0, 0, 0, 0, 0, 108, 109,
  610. 110, 111, 112, 113, 114, 0, 0, 0, 0, 0,
  611. 115, 116, 92, 93, 94, 95, 96, 97, 0, 98,
  612. 99, 100, 101, 0, 252, 0, 0, 0, 0, 0,
  613. 102, 0, 0, 103, 104, 105, 0, 0, 0, 106,
  614. 107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  615. 0, 0, 108, 109, 110, 111, 112, 113, 114, 0,
  616. 0, 0, 0, 0, 115, 116, 92, 93, 94, 95,
  617. 96, 97, 0, 98, 99, 100, 101, 0, 254, 0,
  618. 0, 0, 0, 0, 102, 0, 0, 103, 104, 105,
  619. 0, 0, 0, 106, 107, 0, 0, 0, 0, 0,
  620. 0, 0, 0, 0, 0, 0, 108, 109, 110, 111,
  621. 112, 113, 114, 0, 0, 0, 0, 0, 115, 116,
  622. 92, 93, 94, 95, 96, 97, 0, 98, 99, 100,
  623. 101, 0, 0, 0, 0, 259, 0, 0, 102, 0,
  624. 0, 103, 104, 105, 0, 0, 0, 106, 107, 0,
  625. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  626. 108, 109, 110, 111, 112, 113, 114, 0, 0, 0,
  627. 0, 0, 115, 116, 92, 93, 94, 95, 96, 97,
  628. 0, 98, 99, 100, 101, 0, 0, 0, 0, 266,
  629. 0, 0, 102, 0, 0, 103, 104, 105, 0, 0,
  630. 0, 106, 107, 0, 0, 0, 0, 0, 0, 0,
  631. 0, 0, 0, 0, 108, 109, 110, 111, 112, 113,
  632. 114, 0, 0, 0, 0, 0, 115, 116, 92, 93,
  633. 94, 95, 96, 97, 0, 98, 99, 100, 101, 0,
  634. 279, 0, 0, 0, 0, 0, 102, 0, 0, 103,
  635. 104, 105, 0, 0, 0, 106, 107, 0, 0, 0,
  636. 0, 0, 0, 0, 0, 0, 0, 0, 108, 109,
  637. 110, 111, 112, 113, 114, 0, 0, 0, 0, 0,
  638. 115, 116, 92, 93, 94, 95, 96, 97, 0, 98,
  639. 99, 100, 101, 0, 281, 0, 0, 0, 0, 0,
  640. 102, 0, 0, 103, 104, 105, 0, 0, 0, 106,
  641. 107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  642. 0, 0, 108, 109, 110, 111, 112, 113, 114, 0,
  643. 0, 0, 0, 0, 115, 116, 92, 93, 94, 95,
  644. 96, 97, 0, 98, 99, 100, 101, 0, 297, 0,
  645. 0, 0, 0, 0, 102, 0, 0, 103, 104, 105,
  646. 0, 0, 0, 106, 107, 0, 0, 0, 0, 0,
  647. 0, 0, 0, 0, 0, 0, 108, 109, 110, 111,
  648. 112, 113, 114, 0, 0, 0, 0, 0, 115, 116,
  649. 92, 93, 94, 95, 96, 97, 0, 98, 99, 100,
  650. 101, 0, 0, 0, 0, 335, 0, 0, 102, 0,
  651. 0, 103, 104, 105, 0, 0, 0, 106, 107, 0,
  652. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  653. 108, 109, 110, 111, 112, 113, 114, 0, 0, 0,
  654. 0, 0, 115, 116, 92, 93, 94, 95, 96, 97,
  655. 0, 98, 99, 100, 101, 0, 0, 0, 0, 336,
  656. 0, 0, 102, 0, 0, 103, 104, 105, 0, 0,
  657. 0, 106, 107, 0, 0, 0, 0, 0, 0, 0,
  658. 0, 0, 0, 0, 108, 109, 110, 111, 112, 113,
  659. 114, 0, 0, 0, 0, 0, 115, 116, 92, 93,
  660. 94, 95, 96, 97, 0, 98, 99, 100, 101, 0,
  661. 0, 0, 0, 343, 0, 0, 102, 0, 0, 103,
  662. 104, 105, 0, 0, 0, 106, 107, 0, 0, 0,
  663. 0, 0, 0, 0, 0, 0, 0, 0, 108, 109,
  664. 110, 111, 112, 113, 114, 0, 0, 0, 0, 0,
  665. 115, 116, 92, 93, 94, 95, 96, 97, 0, 98,
  666. 99, 100, 101, 0, 0, 0, 0, 0, 0, 0,
  667. 102, 0, 0, 103, 104, 105, 0, 0, 0, 106,
  668. 107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  669. 0, 0, 108, 109, 110, 111, 112, 113, 114, 0,
  670. 0, 0, 0, 0, 115, 116, 92, 93, 94, 95,
  671. 96, 97, 0, 98, 99, 100, 101, 0, 0, 0,
  672. 0, 0, 0, 0, 102, 0, 0, 103, 104, 105,
  673. 0, 0, 0, 106, 107, 92, 93, 94, 95, 96,
  674. 97, 0, 98, 99, 100, 101, 108, 109, 110, 111,
  675. 112, 0, 114, 102, 0, 0, 103, 104, 105, 116,
  676. 0, 0, 106, 107, 92, 93, 94, 95, 96, 97,
  677. 0, 98, 0, 100, 101, 108, 109, 110, 111, 0,
  678. 0, 114, 102, 0, 0, 103, 104, 105, 116, 0,
  679. 0, 106, 107, 92, 93, 94, 95, 96, 97, 0,
  680. 98, 0, 100, 101, 108, 109, 110, 111, 0, 0,
  681. 114, 0, 0, 0, 103, 104, 105, 116, 0, 0,
  682. 106, 107, 92, 93, 94, 95, 96, 97, 0, 98,
  683. 0, 0, 101, 108, 109, 110, 111, 0, 0, 114,
  684. 0, 0, 0, 103, 104, 105, 116, 0, 0, 106,
  685. 107, 0, 0, 117, 0, 0, 0, 0, 0, 0,
  686. 0, 0, 108, 109, 110, 111, 0, 0, 114, 236,
  687. 0, 70, 71, 0, 0, 116, 72, 73, 74, 75,
  688. 76, 77, 78, 79, 80, 81, 0, 70, 71, 0,
  689. 0, 0, 72, 73, 74, 75, 76, 77, 78, 79,
  690. 80, 81, 92, 93, 94, 95, 0, 0, 0, 98,
  691. 0, 0, 101, 0, 0, 0, 0, 0, 0, 0,
  692. 0, 0, 0, 0, 104, 105, 0, 0, 0, 106,
  693. 107
  694. };
  695. static const short yycheck[] = { 1,
  696. 1, 42, 189, 190, 211, 133, 244, 9, 15, 52,
  697. 230, 134, 179, 3, 50, 50, 39, 40, 41, 42,
  698. 43, 44, 34, 46, 47, 48, 49, 20, 197, 54,
  699. 284, 52, 54, 202, 57, 289, 223, 60, 61, 62,
  700. 50, 34, 50, 66, 67, 45, 52, 50, 5, 6,
  701. 86, 94, 87, 291, 34, 50, 79, 80, 81, 82,
  702. 83, 84, 85, 186, 251, 303, 56, 254, 255, 92,
  703. 257, 28, 200, 94, 31, 32, 33, 34, 247, 36,
  704. 37, 38, 249, 40, 41, 50, 24, 87, 94, 34,
  705. 20, 86, 279, 50, 281, 282, 50, 104, 105, 319,
  706. 338, 58, 59, 52, 34, 50, 34, 56, 315, 45,
  707. 297, 3, 300, 5, 6, 53, 8, 305, 10, 54,
  708. 12, 13, 14, 311, 126, 126, 56, 19, 20, 21,
  709. 87, 23, 5, 25, 54, 293, 28, 209, 210, 31,
  710. 32, 33, 34, 35, 36, 37, 38, 20, 40, 41,
  711. 50, 13, 310, 311, 41, 42, 46, 50, 50, 46,
  712. 55, 34, 49, 34, 322, 206, 58, 59, 326, 50,
  713. 34, 61, 62, 33, 61, 62, 34, 5, 6, 34,
  714. 8, 50, 10, 3, 12, 13, 14, 189, 190, 52,
  715. 18, 19, 20, 21, 22, 23, 52, 51, 50, 50,
  716. 28, 51, 55, 31, 32, 33, 34, 35, 36, 37,
  717. 38, 53, 40, 41, 55, 55, 39, 40, 41, 42,
  718. 33, 223, 50, 46, 94, 34, 49, 52, 7, 51,
  719. 58, 59, 22, 54, 51, 51, 51, 51, 61, 62,
  720. 39, 40, 41, 42, 43, 44, 51, 46, 55, 251,
  721. 49, 55, 254, 255, 56, 257, 56, 55, 55, 51,
  722. 45, 60, 61, 62, 5, 56, 55, 66, 67, 271,
  723. 271, 54, 56, 54, 54, 53, 45, 279, 0, 281,
  724. 282, 56, 81, 82, 0, 216, 85, 273, 322, -1,
  725. 7, 311, -1, 92, -1, 297, 45, -1, -1, -1,
  726. -1, -1, -1, -1, 306, 306, -1, 24, 25, 26,
  727. 27, 28, -1, -1, 63, 64, -1, 319, 319, 68,
  728. 69, 70, 71, 72, 73, 74, 75, 76, 77, -1,
  729. -1, 48, -1, -1, -1, 52, -1, -1, 87, 341,
  730. 341, 58, -1, -1, -1, 62, -1, 64, 65, -1,
  731. -1, 68, 69, -1, -1, 72, 73, 74, 75, 76,
  732. 77, 78, 79, 80, 81, 82, -1, 84, -1, -1,
  733. -1, -1, -1, -1, -1, 92, 93, 94, 95, 96,
  734. 97, -1, 99, 100, 101, 102, 103, -1, -1, 106,
  735. 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
  736. 117, -1, -1, -1, -1, 122, -1, 5, 6, -1,
  737. 8, 128, 10, -1, 12, 13, 14, 134, 5, 6,
  738. -1, 19, 20, 21, -1, 23, -1, -1, -1, -1,
  739. 28, -1, -1, 31, 32, 33, 34, 35, 36, 37,
  740. 38, 28, 40, 41, 31, 32, 33, 34, -1, 36,
  741. 37, 38, 50, 40, 41, -1, -1, 55, -1, -1,
  742. 58, 59, 179, 50, -1, -1, -1, 54, -1, 186,
  743. -1, 58, 59, -1, -1, -1, 193, 194, -1, 196,
  744. -1, -1, -1, -1, -1, -1, 203, -1, 205, -1,
  745. -1, 208, 209, 210, 211, 212, -1, -1, 5, 6,
  746. -1, 8, -1, 10, -1, 12, 13, 14, 225, 226,
  747. -1, -1, 19, 20, 21, -1, 23, -1, -1, 236,
  748. -1, 28, -1, -1, 31, 32, 33, 34, 35, 36,
  749. 37, 38, 249, 40, 41, -1, -1, -1, -1, -1,
  750. -1, -1, 259, 50, 261, -1, -1, -1, -1, 56,
  751. -1, 58, 59, 39, 40, 41, 42, -1, -1, -1,
  752. 46, -1, -1, 49, -1, -1, -1, -1, -1, -1,
  753. -1, -1, -1, -1, 60, 61, 62, -1, -1, -1,
  754. 66, 67, -1, -1, -1, 302, 5, 6, -1, 8,
  755. -1, 10, -1, 12, 13, 14, 313, 314, 315, 85,
  756. 19, 20, 21, -1, 23, -1, 92, -1, -1, 28,
  757. -1, -1, 31, 32, 33, 34, 35, 36, 37, 38,
  758. -1, 40, 41, 340, -1, -1, -1, 5, 6, -1,
  759. 8, 50, 10, -1, 12, 13, 14, 56, -1, 58,
  760. 59, 19, 20, 21, -1, 23, -1, -1, -1, -1,
  761. 28, -1, -1, 31, 32, 33, 34, 35, 36, 37,
  762. 38, -1, 40, 41, -1, -1, -1, -1, 5, 6,
  763. -1, 8, 50, 10, -1, 12, 13, 14, 56, -1,
  764. 58, 59, 19, 20, 21, -1, 23, -1, -1, -1,
  765. -1, 28, -1, -1, 31, 32, 33, 34, 35, 36,
  766. 37, 38, -1, 40, 41, 5, 6, -1, -1, -1,
  767. -1, -1, -1, 50, -1, -1, 5, 6, -1, -1,
  768. -1, 58, 59, -1, -1, -1, -1, -1, 28, -1,
  769. -1, 31, 32, 33, 34, -1, 36, 37, 38, 28,
  770. 40, 41, 31, 32, 33, 34, -1, 36, 37, 38,
  771. 50, 40, 41, -1, 54, 5, 6, -1, 58, 59,
  772. -1, 50, -1, -1, -1, -1, 55, -1, -1, 58,
  773. 59, -1, -1, -1, -1, -1, -1, -1, 28, -1,
  774. -1, 31, 32, 33, 34, -1, 36, 37, 38, -1,
  775. 40, 41, 5, 6, -1, -1, -1, -1, -1, -1,
  776. 50, -1, -1, -1, 54, -1, -1, -1, 58, 59,
  777. -1, -1, -1, -1, -1, 28, -1, -1, 31, 32,
  778. 33, 34, -1, 36, 37, 38, -1, 40, 41, 5,
  779. 6, -1, -1, -1, -1, -1, -1, 50, 51, -1,
  780. 5, 6, -1, -1, -1, 58, 59, -1, -1, -1,
  781. -1, -1, 28, -1, -1, 31, 32, 33, 34, -1,
  782. 36, 37, 38, 28, 40, 41, 31, 32, 33, 34,
  783. -1, 36, 37, 38, 50, 40, 41, -1, 54, 5,
  784. 6, -1, 58, 59, -1, 50, 51, -1, -1, -1,
  785. -1, -1, -1, 58, 59, -1, -1, -1, -1, -1,
  786. -1, -1, 28, -1, -1, 31, 32, 33, 34, -1,
  787. 36, 37, 38, -1, 40, 41, 5, 6, -1, -1,
  788. -1, -1, -1, -1, 50, 51, -1, -1, -1, -1,
  789. -1, -1, 58, 59, -1, -1, -1, -1, -1, 28,
  790. -1, -1, 31, 32, 33, 34, -1, 36, 37, 38,
  791. -1, 40, 41, 5, 6, -1, -1, -1, -1, -1,
  792. -1, 50, 51, -1, -1, -1, -1, -1, -1, 58,
  793. 59, -1, -1, -1, -1, -1, 28, -1, -1, 31,
  794. 32, 33, 34, -1, 36, 37, 38, -1, 40, 41,
  795. -1, -1, -1, -1, -1, -1, -1, -1, 50, -1,
  796. -1, -1, -1, -1, -1, -1, 58, 59, 39, 40,
  797. 41, 42, 43, 44, -1, 46, 47, 48, 49, -1,
  798. -1, 52, -1, 54, -1, -1, 57, -1, -1, 60,
  799. 61, 62, -1, -1, -1, 66, 67, -1, -1, -1,
  800. -1, -1, -1, -1, -1, -1, -1, -1, 79, 80,
  801. 81, 82, 83, 84, 85, -1, -1, -1, -1, -1,
  802. 91, 92, 39, 40, 41, 42, 43, 44, -1, 46,
  803. 47, 48, 49, -1, -1, -1, -1, 54, -1, -1,
  804. 57, -1, -1, 60, 61, 62, -1, -1, -1, 66,
  805. 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  806. -1, -1, 79, 80, 81, 82, 83, 84, 85, -1,
  807. -1, -1, -1, -1, 91, 92, 39, 40, 41, 42,
  808. 43, 44, -1, 46, 47, 48, 49, -1, 51, -1,
  809. -1, -1, -1, -1, 57, -1, -1, 60, 61, 62,
  810. -1, -1, -1, 66, 67, -1, -1, -1, -1, -1,
  811. -1, -1, -1, -1, -1, -1, 79, 80, 81, 82,
  812. 83, 84, 85, -1, -1, -1, -1, -1, 91, 92,
  813. 39, 40, 41, 42, 43, 44, -1, 46, 47, 48,
  814. 49, -1, 51, -1, -1, -1, -1, -1, 57, -1,
  815. -1, 60, 61, 62, -1, -1, -1, 66, 67, -1,
  816. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  817. 79, 80, 81, 82, 83, 84, 85, -1, -1, -1,
  818. -1, -1, 91, 92, 39, 40, 41, 42, 43, 44,
  819. -1, 46, 47, 48, 49, -1, 51, -1, -1, -1,
  820. -1, -1, 57, -1, -1, 60, 61, 62, -1, -1,
  821. -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
  822. -1, -1, -1, -1, 79, 80, 81, 82, 83, 84,
  823. 85, -1, -1, -1, -1, -1, 91, 92, 39, 40,
  824. 41, 42, 43, 44, -1, 46, 47, 48, 49, -1,
  825. 51, -1, -1, -1, -1, -1, 57, -1, -1, 60,
  826. 61, 62, -1, -1, -1, 66, 67, -1, -1, -1,
  827. -1, -1, -1, -1, -1, -1, -1, -1, 79, 80,
  828. 81, 82, 83, 84, 85, -1, -1, -1, -1, -1,
  829. 91, 92, 39, 40, 41, 42, 43, 44, -1, 46,
  830. 47, 48, 49, -1, -1, -1, -1, 54, -1, -1,
  831. 57, -1, -1, 60, 61, 62, -1, -1, -1, 66,
  832. 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  833. -1, -1, 79, 80, 81, 82, 83, 84, 85, -1,
  834. -1, -1, -1, -1, 91, 92, 39, 40, 41, 42,
  835. 43, 44, -1, 46, 47, 48, 49, -1, 51, -1,
  836. -1, -1, -1, -1, 57, -1, -1, 60, 61, 62,
  837. -1, -1, -1, 66, 67, -1, -1, -1, -1, -1,
  838. -1, -1, -1, -1, -1, -1, 79, 80, 81, 82,
  839. 83, 84, 85, -1, -1, -1, -1, -1, 91, 92,
  840. 39, 40, 41, 42, 43, 44, -1, 46, 47, 48,
  841. 49, -1, 51, -1, -1, -1, -1, -1, 57, -1,
  842. -1, 60, 61, 62, -1, -1, -1, 66, 67, -1,
  843. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  844. 79, 80, 81, 82, 83, 84, 85, -1, -1, -1,
  845. -1, -1, 91, 92, 39, 40, 41, 42, 43, 44,
  846. -1, 46, 47, 48, 49, -1, -1, -1, 53, -1,
  847. -1, -1, 57, -1, -1, 60, 61, 62, -1, -1,
  848. -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
  849. -1, -1, -1, -1, 79, 80, 81, 82, 83, 84,
  850. 85, -1, -1, -1, -1, -1, 91, 92, 39, 40,
  851. 41, 42, 43, 44, -1, 46, 47, 48, 49, -1,
  852. -1, -1, -1, 54, -1, -1, 57, -1, -1, 60,
  853. 61, 62, -1, -1, -1, 66, 67, -1, -1, -1,
  854. -1, -1, -1, -1, -1, -1, -1, -1, 79, 80,
  855. 81, 82, 83, 84, 85, -1, -1, -1, -1, -1,
  856. 91, 92, 39, 40, 41, 42, 43, 44, -1, 46,
  857. 47, 48, 49, -1, 51, -1, -1, -1, -1, -1,
  858. 57, -1, -1, 60, 61, 62, -1, -1, -1, 66,
  859. 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  860. -1, -1, 79, 80, 81, 82, 83, 84, 85, -1,
  861. -1, -1, -1, -1, 91, 92, 39, 40, 41, 42,
  862. 43, 44, -1, 46, 47, 48, 49, -1, 51, -1,
  863. -1, -1, -1, -1, 57, -1, -1, 60, 61, 62,
  864. -1, -1, -1, 66, 67, -1, -1, -1, -1, -1,
  865. -1, -1, -1, -1, -1, -1, 79, 80, 81, 82,
  866. 83, 84, 85, -1, -1, -1, -1, -1, 91, 92,
  867. 39, 40, 41, 42, 43, 44, -1, 46, 47, 48,
  868. 49, -1, -1, -1, -1, 54, -1, -1, 57, -1,
  869. -1, 60, 61, 62, -1, -1, -1, 66, 67, -1,
  870. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  871. 79, 80, 81, 82, 83, 84, 85, -1, -1, -1,
  872. -1, -1, 91, 92, 39, 40, 41, 42, 43, 44,
  873. -1, 46, 47, 48, 49, -1, -1, -1, -1, 54,
  874. -1, -1, 57, -1, -1, 60, 61, 62, -1, -1,
  875. -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
  876. -1, -1, -1, -1, 79, 80, 81, 82, 83, 84,
  877. 85, -1, -1, -1, -1, -1, 91, 92, 39, 40,
  878. 41, 42, 43, 44, -1, 46, 47, 48, 49, -1,
  879. 51, -1, -1, -1, -1, -1, 57, -1, -1, 60,
  880. 61, 62, -1, -1, -1, 66, 67, -1, -1, -1,
  881. -1, -1, -1, -1, -1, -1, -1, -1, 79, 80,
  882. 81, 82, 83, 84, 85, -1, -1, -1, -1, -1,
  883. 91, 92, 39, 40, 41, 42, 43, 44, -1, 46,
  884. 47, 48, 49, -1, 51, -1, -1, -1, -1, -1,
  885. 57, -1, -1, 60, 61, 62, -1, -1, -1, 66,
  886. 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  887. -1, -1, 79, 80, 81, 82, 83, 84, 85, -1,
  888. -1, -1, -1, -1, 91, 92, 39, 40, 41, 42,
  889. 43, 44, -1, 46, 47, 48, 49, -1, 51, -1,
  890. -1, -1, -1, -1, 57, -1, -1, 60, 61, 62,
  891. -1, -1, -1, 66, 67, -1, -1, -1, -1, -1,
  892. -1, -1, -1, -1, -1, -1, 79, 80, 81, 82,
  893. 83, 84, 85, -1, -1, -1, -1, -1, 91, 92,
  894. 39, 40, 41, 42, 43, 44, -1, 46, 47, 48,
  895. 49, -1, -1, -1, -1, 54, -1, -1, 57, -1,
  896. -1, 60, 61, 62, -1, -1, -1, 66, 67, -1,
  897. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  898. 79, 80, 81, 82, 83, 84, 85, -1, -1, -1,
  899. -1, -1, 91, 92, 39, 40, 41, 42, 43, 44,
  900. -1, 46, 47, 48, 49, -1, -1, -1, -1, 54,
  901. -1, -1, 57, -1, -1, 60, 61, 62, -1, -1,
  902. -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
  903. -1, -1, -1, -1, 79, 80, 81, 82, 83, 84,
  904. 85, -1, -1, -1, -1, -1, 91, 92, 39, 40,
  905. 41, 42, 43, 44, -1, 46, 47, 48, 49, -1,
  906. -1, -1, -1, 54, -1, -1, 57, -1, -1, 60,
  907. 61, 62, -1, -1, -1, 66, 67, -1, -1, -1,
  908. -1, -1, -1, -1, -1, -1, -1, -1, 79, 80,
  909. 81, 82, 83, 84, 85, -1, -1, -1, -1, -1,
  910. 91, 92, 39, 40, 41, 42, 43, 44, -1, 46,
  911. 47, 48, 49, -1, -1, -1, -1, -1, -1, -1,
  912. 57, -1, -1, 60, 61, 62, -1, -1, -1, 66,
  913. 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  914. -1, -1, 79, 80, 81, 82, 83, 84, 85, -1,
  915. -1, -1, -1, -1, 91, 92, 39, 40, 41, 42,
  916. 43, 44, -1, 46, 47, 48, 49, -1, -1, -1,
  917. -1, -1, -1, -1, 57, -1, -1, 60, 61, 62,
  918. -1, -1, -1, 66, 67, 39, 40, 41, 42, 43,
  919. 44, -1, 46, 47, 48, 49, 79, 80, 81, 82,
  920. 83, -1, 85, 57, -1, -1, 60, 61, 62, 92,
  921. -1, -1, 66, 67, 39, 40, 41, 42, 43, 44,
  922. -1, 46, -1, 48, 49, 79, 80, 81, 82, -1,
  923. -1, 85, 57, -1, -1, 60, 61, 62, 92, -1,
  924. -1, 66, 67, 39, 40, 41, 42, 43, 44, -1,
  925. 46, -1, 48, 49, 79, 80, 81, 82, -1, -1,
  926. 85, -1, -1, -1, 60, 61, 62, 92, -1, -1,
  927. 66, 67, 39, 40, 41, 42, 43, 44, -1, 46,
  928. -1, -1, 49, 79, 80, 81, 82, -1, -1, 85,
  929. -1, -1, -1, 60, 61, 62, 92, -1, -1, 66,
  930. 67, -1, -1, 45, -1, -1, -1, -1, -1, -1,
  931. -1, -1, 79, 80, 81, 82, -1, -1, 85, 45,
  932. -1, 63, 64, -1, -1, 92, 68, 69, 70, 71,
  933. 72, 73, 74, 75, 76, 77, -1, 63, 64, -1,
  934. -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
  935. 76, 77, 39, 40, 41, 42, -1, -1, -1, 46,
  936. -1, -1, 49, -1, -1, -1, -1, -1, -1, -1,
  937. -1, -1, -1, -1, 61, 62, -1, -1, -1, 66,
  938. 67
  939. };
  940. /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
  941. #line 3 "bison.simple"
  942. /* Skeleton output parser for bison,
  943. Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
  944. This program is free software; you can redistribute it and/or modify
  945. it under the terms of the GNU General Public License as published by
  946. the Free Software Foundation; either version 2, or (at your option)
  947. any later version.
  948. This program is distributed in the hope that it will be useful,
  949. but WITHOUT ANY WARRANTY; without even the implied warranty of
  950. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  951. GNU General Public License for more details.
  952. You should have received a copy of the GNU General Public License
  953. along with this program; if not, write to the Free Software
  954. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
  955. /* As a special exception, when this file is copied by Bison into a
  956. Bison output file, you may use that output file without restriction.
  957. This special exception was added by the Free Software Foundation
  958. in version 1.24 of Bison. */
  959. #ifndef alloca
  960. #ifdef __GNUC__
  961. #define alloca __builtin_alloca
  962. #else /* not GNU C. */
  963. #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
  964. #include <alloca.h>
  965. #else /* not sparc */
  966. #if defined (MSDOS) && !defined (__TURBOC__)
  967. #include <malloc.h>
  968. #else /* not MSDOS, or __TURBOC__ */
  969. #if defined(_AIX)
  970. #include <malloc.h>
  971. #pragma alloca
  972. #else /* not MSDOS, __TURBOC__, or _AIX */
  973. #ifdef __hpux
  974. #ifdef __cplusplus
  975. extern "C" {
  976. void *alloca (unsigned int);
  977. };
  978. #else /* not __cplusplus */
  979. void *alloca ();
  980. #endif /* not __cplusplus */
  981. #endif /* __hpux */
  982. #endif /* not _AIX */
  983. #endif /* not MSDOS, or __TURBOC__ */
  984. #endif /* not sparc. */
  985. #endif /* not GNU C. */
  986. #endif /* alloca not defined. */
  987. /* This is the parser code that is written into each bison parser
  988. when the %semantic_parser declaration is not specified in the grammar.
  989. It was written by Richard Stallman by simplifying the hairy parser
  990. used when %semantic_parser is specified. */
  991. /* Note: there must be only one dollar sign in this file.
  992. It is replaced by the list of actions, each action
  993. as one case of the switch. */
  994. #define yyerrok (yyerrstatus = 0)
  995. #define yyclearin (yychar = YYEMPTY)
  996. #define YYEMPTY -2
  997. #define YYEOF 0
  998. #define YYACCEPT return(0)
  999. #define YYABORT return(1)
  1000. #define YYERROR goto yyerrlab1
  1001. /* Like YYERROR except do call yyerror.
  1002. This remains here temporarily to ease the
  1003. transition to the new meaning of YYERROR, for GCC.
  1004. Once GCC version 2 has supplanted version 1, this can go. */
  1005. #define YYFAIL goto yyerrlab
  1006. #define YYRECOVERING() (!!yyerrstatus)
  1007. #define YYBACKUP(token, value) \
  1008. do \
  1009. if (yychar == YYEMPTY && yylen == 1) \
  1010. { yychar = (token), yylval = (value); \
  1011. yychar1 = YYTRANSLATE (yychar); \
  1012. YYPOPSTACK; \
  1013. goto yybackup; \
  1014. } \
  1015. else \
  1016. { yyerror ("syntax error: cannot back up"); YYERROR; } \
  1017. while (0)
  1018. #define YYTERROR 1
  1019. #define YYERRCODE 256
  1020. #ifndef YYPURE
  1021. #define YYLEX yylex()
  1022. #endif
  1023. #ifdef YYPURE
  1024. #ifdef YYLSP_NEEDED
  1025. #ifdef YYLEX_PARAM
  1026. #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
  1027. #else
  1028. #define YYLEX yylex(&yylval, &yylloc)
  1029. #endif
  1030. #else /* not YYLSP_NEEDED */
  1031. #ifdef YYLEX_PARAM
  1032. #define YYLEX yylex(&yylval, YYLEX_PARAM)
  1033. #else
  1034. #define YYLEX yylex(&yylval)
  1035. #endif
  1036. #endif /* not YYLSP_NEEDED */
  1037. #endif
  1038. /* If nonreentrant, generate the variables here */
  1039. #ifndef YYPURE
  1040. int yychar; /* the lookahead symbol */
  1041. YYSTYPE yylval; /* the semantic value of the */
  1042. /* lookahead symbol */
  1043. #ifdef YYLSP_NEEDED
  1044. YYLTYPE yylloc; /* location data for the lookahead */
  1045. /* symbol */
  1046. #endif
  1047. int yynerrs; /* number of parse errors so far */
  1048. #endif /* not YYPURE */
  1049. #if YYDEBUG != 0
  1050. int yydebug; /* nonzero means print parse trace */
  1051. /* Since this is uninitialized, it does not stop multiple parsers
  1052. from coexisting. */
  1053. #endif
  1054. /* YYINITDEPTH indicates the initial size of the parser's stacks */
  1055. #ifndef YYINITDEPTH
  1056. #define YYINITDEPTH 200
  1057. #endif
  1058. /* YYMAXDEPTH is the maximum size the stacks can grow to
  1059. (effective only if the built-in stack extension method is used). */
  1060. #if YYMAXDEPTH == 0
  1061. #undef YYMAXDEPTH
  1062. #endif
  1063. #ifndef YYMAXDEPTH
  1064. #define YYMAXDEPTH 10000
  1065. #endif
  1066. /* Prevent warning if -Wstrict-prototypes. */
  1067. #ifdef __GNUC__
  1068. int yyparse (void);
  1069. #endif
  1070. #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
  1071. #define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
  1072. #else /* not GNU C or C++ */
  1073. #ifndef __cplusplus
  1074. /* This is the most reliable way to avoid incompatibilities
  1075. in available built-in functions on various systems. */
  1076. static void
  1077. __yy_memcpy (from, to, count)
  1078. char *from;
  1079. char *to;
  1080. int count;
  1081. {
  1082. char *f = from;
  1083. char *t = to;
  1084. int i = count;
  1085. while (i-- > 0)
  1086. *t++ = *f++;
  1087. }
  1088. #else /* __cplusplus */
  1089. /* This is the most reliable way to avoid incompatibilities
  1090. in available built-in functions on various systems. */
  1091. static void
  1092. __yy_memcpy (char *from, char *to, int count)
  1093. {
  1094. char *f = from;
  1095. char *t = to;
  1096. int i = count;
  1097. while (i-- > 0)
  1098. *t++ = *f++;
  1099. }
  1100. #endif
  1101. #endif
  1102. #line 192 "bison.simple"
  1103. /* The user can define YYPARSE_PARAM as the name of an argument to be passed
  1104. into yyparse. The argument should have type void *.
  1105. It should actually point to an object.
  1106. Grammar actions can access the variable by casting it
  1107. to the proper pointer type. */
  1108. #ifdef YYPARSE_PARAM
  1109. #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
  1110. #else
  1111. #define YYPARSE_PARAM
  1112. #define YYPARSE_PARAM_DECL
  1113. #endif
  1114. int
  1115. yyparse(YYPARSE_PARAM)
  1116. YYPARSE_PARAM_DECL
  1117. {
  1118. int yystate;
  1119. int yyn;
  1120. short *yyssp;
  1121. YYSTYPE *yyvsp;
  1122. int yyerrstatus; /* number of tokens to shift before error messages enabled */
  1123. int yychar1 = 0; /* lookahead token as an internal (translated) token number */
  1124. short yyssa[YYINITDEPTH]; /* the state stack */
  1125. YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
  1126. short *yyss = yyssa; /* refer to the stacks thru separate pointers */
  1127. YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
  1128. #ifdef YYLSP_NEEDED
  1129. YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
  1130. YYLTYPE *yyls = yylsa;
  1131. YYLTYPE *yylsp;
  1132. #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
  1133. #else
  1134. #define YYPOPSTACK (yyvsp--, yyssp--)
  1135. #endif
  1136. int yystacksize = YYINITDEPTH;
  1137. #ifdef YYPURE
  1138. int yychar;
  1139. YYSTYPE yylval;
  1140. int yynerrs;
  1141. #ifdef YYLSP_NEEDED
  1142. YYLTYPE yylloc;
  1143. #endif
  1144. #endif
  1145. YYSTYPE yyval; /* the variable used to return */
  1146. /* semantic values from the action */
  1147. /* routines */
  1148. int yylen;
  1149. #if YYDEBUG != 0
  1150. if (yydebug)
  1151. fprintf(stderr, "Starting parse\n");
  1152. #endif
  1153. yystate = 0;
  1154. yyerrstatus = 0;
  1155. yynerrs = 0;
  1156. yychar = YYEMPTY; /* Cause a token to be read. */
  1157. /* Initialize stack pointers.
  1158. Waste one element of value and location stack
  1159. so that they stay on the same level as the state stack.
  1160. The wasted elements are never initialized. */
  1161. yyssp = yyss - 1;
  1162. yyvsp = yyvs;
  1163. #ifdef YYLSP_NEEDED
  1164. yylsp = yyls;
  1165. #endif
  1166. /* Push a new state, which is found in yystate . */
  1167. /* In all cases, when you get here, the value and location stacks
  1168. have just been pushed. so pushing a state here evens the stacks. */
  1169. yynewstate:
  1170. *++yyssp = yystate;
  1171. if (yyssp >= yyss + yystacksize - 1)
  1172. {
  1173. /* Give user a chance to reallocate the stack */
  1174. /* Use copies of these so that the &'s don't force the real ones into memory. */
  1175. YYSTYPE *yyvs1 = yyvs;
  1176. short *yyss1 = yyss;
  1177. #ifdef YYLSP_NEEDED
  1178. YYLTYPE *yyls1 = yyls;
  1179. #endif
  1180. /* Get the current used size of the three stacks, in elements. */
  1181. int size = yyssp - yyss + 1;
  1182. #ifdef yyoverflow
  1183. /* Each stack pointer address is followed by the size of
  1184. the data in use in that stack, in bytes. */
  1185. #ifdef YYLSP_NEEDED
  1186. /* This used to be a conditional around just the two extra args,
  1187. but that might be undefined if yyoverflow is a macro. */
  1188. yyoverflow("parser stack overflow",
  1189. &yyss1, size * sizeof (*yyssp),
  1190. &yyvs1, size * sizeof (*yyvsp),
  1191. &yyls1, size * sizeof (*yylsp),
  1192. &yystacksize);
  1193. #else
  1194. yyoverflow("parser stack overflow",
  1195. &yyss1, size * sizeof (*yyssp),
  1196. &yyvs1, size * sizeof (*yyvsp),
  1197. &yystacksize);
  1198. #endif
  1199. yyss = yyss1; yyvs = yyvs1;
  1200. #ifdef YYLSP_NEEDED
  1201. yyls = yyls1;
  1202. #endif
  1203. #else /* no yyoverflow */
  1204. /* Extend the stack our own way. */
  1205. if (yystacksize >= YYMAXDEPTH)
  1206. {
  1207. yyerror((char*)"parser stack overflow");
  1208. return 2;
  1209. }
  1210. yystacksize *= 2;
  1211. if (yystacksize > YYMAXDEPTH)
  1212. yystacksize = YYMAXDEPTH;
  1213. yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
  1214. __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
  1215. yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
  1216. __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
  1217. #ifdef YYLSP_NEEDED
  1218. yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
  1219. __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
  1220. #endif
  1221. #endif /* no yyoverflow */
  1222. yyssp = yyss + size - 1;
  1223. yyvsp = yyvs + size - 1;
  1224. #ifdef YYLSP_NEEDED
  1225. yylsp = yyls + size - 1;
  1226. #endif
  1227. #if YYDEBUG != 0
  1228. if (yydebug)
  1229. fprintf(stderr, "Stack size increased to %d\n", yystacksize);
  1230. #endif
  1231. if (yyssp >= yyss + yystacksize - 1)
  1232. YYABORT;
  1233. }
  1234. #if YYDEBUG != 0
  1235. if (yydebug)
  1236. fprintf(stderr, "Entering state %d\n", yystate);
  1237. #endif
  1238. goto yybackup;
  1239. yybackup:
  1240. /* Do appropriate processing given the current state. */
  1241. /* Read a lookahead token if we need one and don't already have one. */
  1242. /* yyresume: */
  1243. /* First try to decide what to do without reference to lookahead token. */
  1244. yyn = yypact[yystate];
  1245. if (yyn == YYFLAG)
  1246. goto yydefault;
  1247. /* Not known => get a lookahead token if don't already have one. */
  1248. /* yychar is either YYEMPTY or YYEOF
  1249. or a valid token in external form. */
  1250. if (yychar == YYEMPTY)
  1251. {
  1252. #if YYDEBUG != 0
  1253. if (yydebug)
  1254. fprintf(stderr, "Reading a token: ");
  1255. #endif
  1256. yychar = YYLEX;
  1257. }
  1258. /* Convert token to internal form (in yychar1) for indexing tables with */
  1259. if (yychar <= 0) /* This means end of input. */
  1260. {
  1261. yychar1 = 0;
  1262. yychar = YYEOF; /* Don't call YYLEX any more */
  1263. #if YYDEBUG != 0
  1264. if (yydebug)
  1265. fprintf(stderr, "Now at end of input.\n");
  1266. #endif
  1267. }
  1268. else
  1269. {
  1270. yychar1 = YYTRANSLATE(yychar);
  1271. #if YYDEBUG != 0
  1272. if (yydebug)
  1273. {
  1274. fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
  1275. /* Give the individual parser a way to print the precise meaning
  1276. of a token, for further debugging info. */
  1277. #ifdef YYPRINT
  1278. YYPRINT (stderr, yychar, yylval);
  1279. #endif
  1280. fprintf (stderr, ")\n");
  1281. }
  1282. #endif
  1283. }
  1284. yyn += yychar1;
  1285. if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
  1286. goto yydefault;
  1287. yyn = yytable[yyn];
  1288. /* yyn is what to do for this token type in this state.
  1289. Negative => reduce, -yyn is rule number.
  1290. Positive => shift, yyn is new state.
  1291. New state is final state => don't bother to shift,
  1292. just return success.
  1293. 0, or most negative number => error. */
  1294. if (yyn < 0)
  1295. {
  1296. if (yyn == YYFLAG)
  1297. goto yyerrlab;
  1298. yyn = -yyn;
  1299. goto yyreduce;
  1300. }
  1301. else if (yyn == 0)
  1302. goto yyerrlab;
  1303. if (yyn == YYFINAL)
  1304. YYACCEPT;
  1305. /* Shift the lookahead token. */
  1306. #if YYDEBUG != 0
  1307. if (yydebug)
  1308. fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
  1309. #endif
  1310. /* Discard the token being shifted unless it is eof. */
  1311. if (yychar != YYEOF)
  1312. yychar = YYEMPTY;
  1313. *++yyvsp = yylval;
  1314. #ifdef YYLSP_NEEDED
  1315. *++yylsp = yylloc;
  1316. #endif
  1317. /* count tokens shifted since error; after three, turn off error status. */
  1318. if (yyerrstatus) yyerrstatus--;
  1319. yystate = yyn;
  1320. goto yynewstate;
  1321. /* Do the default action for the current state. */
  1322. yydefault:
  1323. yyn = yydefact[yystate];
  1324. if (yyn == 0)
  1325. goto yyerrlab;
  1326. /* Do a reduction. yyn is the number of a rule to reduce with. */
  1327. yyreduce:
  1328. yylen = yyr2[yyn];
  1329. if (yylen > 0)
  1330. yyval = yyvsp[1-yylen]; /* implement default value of the action */
  1331. #if YYDEBUG != 0
  1332. if (yydebug)
  1333. {
  1334. int i;
  1335. fprintf (stderr, "Reducing via rule %d (line %d), ",
  1336. yyn, yyrline[yyn]);
  1337. /* Print the symbols being reduced, and their result. */
  1338. for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
  1339. fprintf (stderr, "%s ", yytname[yyrhs[i]]);
  1340. fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
  1341. }
  1342. #endif
  1343. switch (yyn) {
  1344. case 1:
  1345. #line 146 "cmdgram.y"
  1346. { ;
  1347. break;}
  1348. case 2:
  1349. #line 151 "cmdgram.y"
  1350. { yyval.stmt = nil; ;
  1351. break;}
  1352. case 3:
  1353. #line 153 "cmdgram.y"
  1354. { if(!statementList) { statementList = yyvsp[0].stmt; } else { statementList->append(yyvsp[0].stmt); } ;
  1355. break;}
  1356. case 4:
  1357. #line 158 "cmdgram.y"
  1358. { yyval.stmt = yyvsp[0].stmt; ;
  1359. break;}
  1360. case 5:
  1361. #line 160 "cmdgram.y"
  1362. { yyval.stmt = yyvsp[0].stmt; ;
  1363. break;}
  1364. case 6:
  1365. #line 162 "cmdgram.y"
  1366. { yyval.stmt = yyvsp[0].stmt; ;
  1367. break;}
  1368. case 7:
  1369. #line 167 "cmdgram.y"
  1370. { yyval.stmt = yyvsp[-2].stmt; for(StmtNode *walk = (yyvsp[-2].stmt);walk;walk = walk->getNext() ) walk->setPackage(yyvsp[-4].s); ;
  1371. break;}
  1372. case 8:
  1373. #line 172 "cmdgram.y"
  1374. { yyval.stmt = yyvsp[0].stmt; ;
  1375. break;}
  1376. case 9:
  1377. #line 174 "cmdgram.y"
  1378. { yyval.stmt = yyvsp[-1].stmt; (yyvsp[-1].stmt)->append(yyvsp[0].stmt); ;
  1379. break;}
  1380. case 10:
  1381. #line 179 "cmdgram.y"
  1382. { yyval.stmt = nil; ;
  1383. break;}
  1384. case 11:
  1385. #line 181 "cmdgram.y"
  1386. { if(!yyvsp[-1].stmt) { yyval.stmt = yyvsp[0].stmt; } else { (yyvsp[-1].stmt)->append(yyvsp[0].stmt); yyval.stmt = yyvsp[-1].stmt; } ;
  1387. break;}
  1388. case 17:
  1389. #line 191 "cmdgram.y"
  1390. { yyval.stmt = BreakStmtNode::alloc(); ;
  1391. break;}
  1392. case 18:
  1393. #line 193 "cmdgram.y"
  1394. { yyval.stmt = ContinueStmtNode::alloc(); ;
  1395. break;}
  1396. case 19:
  1397. #line 195 "cmdgram.y"
  1398. { yyval.stmt = ReturnStmtNode::alloc(NULL); ;
  1399. break;}
  1400. case 20:
  1401. #line 197 "cmdgram.y"
  1402. { yyval.stmt = ReturnStmtNode::alloc(yyvsp[-1].expr); ;
  1403. break;}
  1404. case 21:
  1405. #line 199 "cmdgram.y"
  1406. { yyval.stmt = yyvsp[-1].stmt; ;
  1407. break;}
  1408. case 22:
  1409. #line 201 "cmdgram.y"
  1410. { yyval.stmt = TTagSetStmtNode::alloc(yyvsp[-3].s, yyvsp[-1].expr, NULL); ;
  1411. break;}
  1412. case 23:
  1413. #line 203 "cmdgram.y"
  1414. { yyval.stmt = TTagSetStmtNode::alloc(yyvsp[-5].s, yyvsp[-3].expr, yyvsp[-1].expr); ;
  1415. break;}
  1416. case 24:
  1417. #line 205 "cmdgram.y"
  1418. { yyval.stmt = StrConstNode::alloc(yyvsp[0].str, false, true); ;
  1419. break;}
  1420. case 25:
  1421. #line 210 "cmdgram.y"
  1422. { yyval.stmt = FunctionDeclStmtNode::alloc(yyvsp[-6].s, NULL, yyvsp[-4].var, yyvsp[-1].stmt); ;
  1423. break;}
  1424. case 26:
  1425. #line 212 "cmdgram.y"
  1426. { yyval.stmt = FunctionDeclStmtNode::alloc(yyvsp[-6].s, yyvsp[-8].s, yyvsp[-4].var, yyvsp[-1].stmt); ;
  1427. break;}
  1428. case 27:
  1429. #line 217 "cmdgram.y"
  1430. { yyval.var = NULL; ;
  1431. break;}
  1432. case 28:
  1433. #line 219 "cmdgram.y"
  1434. { yyval.var = yyvsp[0].var; ;
  1435. break;}
  1436. case 29:
  1437. #line 224 "cmdgram.y"
  1438. { yyval.var = VarNode::alloc(yyvsp[0].s, NULL); ;
  1439. break;}
  1440. case 30:
  1441. #line 226 "cmdgram.y"
  1442. { yyval.var = yyvsp[-2].var; ((StmtNode*)(yyvsp[-2].var))->append((StmtNode*)VarNode::alloc(yyvsp[0].s, NULL)); ;
  1443. break;}
  1444. case 31:
  1445. #line 231 "cmdgram.y"
  1446. { yyval.stmt = ObjectDeclNode::alloc(ConstantNode::alloc(yyvsp[-8].s), ConstantNode::alloc(yyvsp[-6].s), NULL, yyvsp[-5].s, yyvsp[-2].slist, NULL, true, false, false); ;
  1447. break;}
  1448. case 32:
  1449. #line 236 "cmdgram.y"
  1450. { yyval.od = ObjectDeclNode::alloc(yyvsp[-7].expr, yyvsp[-5].expr, NULL, yyvsp[-4].s, yyvsp[-1].odcl.slots, yyvsp[-1].odcl.decls, false, false, true); ;
  1451. break;}
  1452. case 33:
  1453. #line 238 "cmdgram.y"
  1454. { yyval.od = ObjectDeclNode::alloc(yyvsp[-4].expr, yyvsp[-2].expr, NULL, yyvsp[-1].s, NULL, NULL, false, false, true); ;
  1455. break;}
  1456. case 34:
  1457. #line 243 "cmdgram.y"
  1458. { yyval.od = ObjectDeclNode::alloc(yyvsp[-8].expr, yyvsp[-6].expr, yyvsp[-4].expr, yyvsp[-5].s, yyvsp[-1].odcl.slots, yyvsp[-1].odcl.decls, false, false, false); ;
  1459. break;}
  1460. case 35:
  1461. #line 245 "cmdgram.y"
  1462. { yyval.od = ObjectDeclNode::alloc(yyvsp[-5].expr, yyvsp[-3].expr, yyvsp[-1].expr, yyvsp[-2].s, NULL, NULL, false, false, false); ;
  1463. break;}
  1464. case 36:
  1465. #line 247 "cmdgram.y"
  1466. { yyval.od = ObjectDeclNode::alloc(yyvsp[-10].expr, yyvsp[-7].expr, yyvsp[-4].expr, yyvsp[-5].s, yyvsp[-1].odcl.slots, yyvsp[-1].odcl.decls, false, true, false); ;
  1467. break;}
  1468. case 37:
  1469. #line 249 "cmdgram.y"
  1470. { yyval.od = ObjectDeclNode::alloc(yyvsp[-7].expr, yyvsp[-4].expr, yyvsp[-1].expr, yyvsp[-2].s, NULL, NULL, false, true, false); ;
  1471. break;}
  1472. case 38:
  1473. #line 254 "cmdgram.y"
  1474. { yyval.s = NULL; ;
  1475. break;}
  1476. case 39:
  1477. #line 256 "cmdgram.y"
  1478. { yyval.s = yyvsp[0].s; ;
  1479. break;}
  1480. case 40:
  1481. #line 261 "cmdgram.y"
  1482. { yyval.expr = StrConstNode::alloc((char*)"", false); ;
  1483. break;}
  1484. case 41:
  1485. #line 263 "cmdgram.y"
  1486. { yyval.expr = yyvsp[0].expr; ;
  1487. break;}
  1488. case 42:
  1489. #line 268 "cmdgram.y"
  1490. { yyval.expr = NULL; ;
  1491. break;}
  1492. case 43:
  1493. #line 270 "cmdgram.y"
  1494. { yyval.expr = yyvsp[0].expr; ;
  1495. break;}
  1496. case 44:
  1497. #line 275 "cmdgram.y"
  1498. { yyval.odcl.slots = NULL; yyval.odcl.decls = NULL; ;
  1499. break;}
  1500. case 45:
  1501. #line 277 "cmdgram.y"
  1502. { yyval.odcl.slots = yyvsp[0].slist; yyval.odcl.decls = NULL; ;
  1503. break;}
  1504. case 46:
  1505. #line 282 "cmdgram.y"
  1506. { yyval.odcl.slots = NULL; yyval.odcl.decls = NULL; ;
  1507. break;}
  1508. case 47:
  1509. #line 284 "cmdgram.y"
  1510. { yyval.odcl.slots = yyvsp[0].slist; yyval.odcl.decls = NULL; ;
  1511. break;}
  1512. case 48:
  1513. #line 286 "cmdgram.y"
  1514. { yyval.odcl.slots = NULL; yyval.odcl.decls = yyvsp[0].od; ;
  1515. break;}
  1516. case 49:
  1517. #line 288 "cmdgram.y"
  1518. { yyval.odcl.slots = yyvsp[-1].slist; yyval.odcl.decls = yyvsp[0].od; ;
  1519. break;}
  1520. case 50:
  1521. #line 293 "cmdgram.y"
  1522. { yyval.od = yyvsp[-1].od; ;
  1523. break;}
  1524. case 51:
  1525. #line 295 "cmdgram.y"
  1526. { yyvsp[-2].od->append(yyvsp[-1].od); yyval.od = yyvsp[-2].od; ;
  1527. break;}
  1528. case 52:
  1529. #line 300 "cmdgram.y"
  1530. { yyval.stmt = yyvsp[-1].stmt; ;
  1531. break;}
  1532. case 53:
  1533. #line 302 "cmdgram.y"
  1534. { yyval.stmt = yyvsp[0].stmt; ;
  1535. break;}
  1536. case 54:
  1537. #line 307 "cmdgram.y"
  1538. { yyval.stmt = yyvsp[-1].ifnode; yyvsp[-1].ifnode->propagateSwitchExpr(yyvsp[-4].expr, false); ;
  1539. break;}
  1540. case 55:
  1541. #line 309 "cmdgram.y"
  1542. { yyval.stmt = yyvsp[-1].ifnode; yyvsp[-1].ifnode->propagateSwitchExpr(yyvsp[-4].expr, true); ;
  1543. break;}
  1544. case 56:
  1545. #line 314 "cmdgram.y"
  1546. { yyval.ifnode = IfStmtNode::alloc(yyvsp[-3].i, yyvsp[-2].expr, yyvsp[0].stmt, NULL, false); ;
  1547. break;}
  1548. case 57:
  1549. #line 316 "cmdgram.y"
  1550. { yyval.ifnode = IfStmtNode::alloc(yyvsp[-6].i, yyvsp[-5].expr, yyvsp[-3].stmt, yyvsp[0].stmt, false); ;
  1551. break;}
  1552. case 58:
  1553. #line 318 "cmdgram.y"
  1554. { yyval.ifnode = IfStmtNode::alloc(yyvsp[-4].i, yyvsp[-3].expr, yyvsp[-1].stmt, yyvsp[0].ifnode, true); ;
  1555. break;}
  1556. case 59:
  1557. #line 323 "cmdgram.y"
  1558. { yyval.expr = yyvsp[0].expr;;
  1559. break;}
  1560. case 60:
  1561. #line 325 "cmdgram.y"
  1562. { (yyvsp[-2].expr)->append(yyvsp[0].expr); yyval.expr=yyvsp[-2].expr; ;
  1563. break;}
  1564. case 61:
  1565. #line 330 "cmdgram.y"
  1566. { yyval.stmt = IfStmtNode::alloc(yyvsp[-4].i, yyvsp[-2].expr, yyvsp[0].stmt, NULL, false); ;
  1567. break;}
  1568. case 62:
  1569. #line 332 "cmdgram.y"
  1570. { yyval.stmt = IfStmtNode::alloc(yyvsp[-6].i, yyvsp[-4].expr, yyvsp[-2].stmt, yyvsp[0].stmt, false); ;
  1571. break;}
  1572. case 63:
  1573. #line 337 "cmdgram.y"
  1574. { yyval.stmt = LoopStmtNode::alloc(yyvsp[-4].i, nil, yyvsp[-2].expr, nil, yyvsp[0].stmt, false); ;
  1575. break;}
  1576. case 64:
  1577. #line 339 "cmdgram.y"
  1578. { yyval.stmt = LoopStmtNode::alloc(yyvsp[-3].i, nil, yyvsp[-1].expr, nil, yyvsp[-4].stmt, true); ;
  1579. break;}
  1580. case 65:
  1581. #line 344 "cmdgram.y"
  1582. { yyval.stmt = LoopStmtNode::alloc(yyvsp[-8].i, yyvsp[-6].expr, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].stmt, false); ;
  1583. break;}
  1584. case 66:
  1585. #line 346 "cmdgram.y"
  1586. { yyval.stmt = LoopStmtNode::alloc(yyvsp[-7].i, yyvsp[-5].expr, yyvsp[-3].expr, NULL, yyvsp[0].stmt, false); ;
  1587. break;}
  1588. case 67:
  1589. #line 348 "cmdgram.y"
  1590. { yyval.stmt = LoopStmtNode::alloc(yyvsp[-7].i, yyvsp[-5].expr, NULL, yyvsp[-2].expr, yyvsp[0].stmt, false); ;
  1591. break;}
  1592. case 68:
  1593. #line 350 "cmdgram.y"
  1594. { yyval.stmt = LoopStmtNode::alloc(yyvsp[-6].i, yyvsp[-4].expr, NULL, NULL, yyvsp[0].stmt, false); ;
  1595. break;}
  1596. case 69:
  1597. #line 352 "cmdgram.y"
  1598. { yyval.stmt = LoopStmtNode::alloc(yyvsp[-7].i, NULL, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].stmt, false); ;
  1599. break;}
  1600. case 70:
  1601. #line 354 "cmdgram.y"
  1602. { yyval.stmt = LoopStmtNode::alloc(yyvsp[-6].i, NULL, yyvsp[-3].expr, NULL, yyvsp[0].stmt, false); ;
  1603. break;}
  1604. case 71:
  1605. #line 356 "cmdgram.y"
  1606. { yyval.stmt = LoopStmtNode::alloc(yyvsp[-6].i, NULL, NULL, yyvsp[-2].expr, yyvsp[0].stmt, false); ;
  1607. break;}
  1608. case 72:
  1609. #line 358 "cmdgram.y"
  1610. { yyval.stmt = LoopStmtNode::alloc(yyvsp[-5].i, NULL, NULL, NULL, yyvsp[0].stmt, false); ;
  1611. break;}
  1612. case 73:
  1613. #line 363 "cmdgram.y"
  1614. { yyval.stmt = yyvsp[0].expr; ;
  1615. break;}
  1616. case 74:
  1617. #line 368 "cmdgram.y"
  1618. { yyval.expr = yyvsp[0].expr; ;
  1619. break;}
  1620. case 75:
  1621. #line 370 "cmdgram.y"
  1622. { yyval.expr = yyvsp[-1].expr; ;
  1623. break;}
  1624. case 76:
  1625. #line 372 "cmdgram.y"
  1626. { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1627. break;}
  1628. case 77:
  1629. #line 374 "cmdgram.y"
  1630. { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1631. break;}
  1632. case 78:
  1633. #line 376 "cmdgram.y"
  1634. { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1635. break;}
  1636. case 79:
  1637. #line 378 "cmdgram.y"
  1638. { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1639. break;}
  1640. case 80:
  1641. #line 380 "cmdgram.y"
  1642. { yyval.expr = FloatBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1643. break;}
  1644. case 81:
  1645. #line 382 "cmdgram.y"
  1646. { yyval.expr = FloatBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1647. break;}
  1648. case 82:
  1649. #line 384 "cmdgram.y"
  1650. { yyval.expr = FloatBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1651. break;}
  1652. case 83:
  1653. #line 386 "cmdgram.y"
  1654. { yyval.expr = FloatBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1655. break;}
  1656. case 84:
  1657. #line 388 "cmdgram.y"
  1658. { yyval.expr = FloatUnaryExprNode::alloc(yyvsp[-1].i, yyvsp[0].expr); ;
  1659. break;}
  1660. case 85:
  1661. #line 390 "cmdgram.y"
  1662. { yyval.expr = TTagDerefNode::alloc(yyvsp[0].expr); ;
  1663. break;}
  1664. case 86:
  1665. #line 392 "cmdgram.y"
  1666. { yyval.expr = TTagExprNode::alloc(yyvsp[0].s); ;
  1667. break;}
  1668. case 87:
  1669. #line 394 "cmdgram.y"
  1670. { yyval.expr = ConditionalExprNode::alloc(yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].expr); ;
  1671. break;}
  1672. case 88:
  1673. #line 396 "cmdgram.y"
  1674. { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1675. break;}
  1676. case 89:
  1677. #line 398 "cmdgram.y"
  1678. { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1679. break;}
  1680. case 90:
  1681. #line 400 "cmdgram.y"
  1682. { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1683. break;}
  1684. case 91:
  1685. #line 402 "cmdgram.y"
  1686. { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1687. break;}
  1688. case 92:
  1689. #line 404 "cmdgram.y"
  1690. { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1691. break;}
  1692. case 93:
  1693. #line 406 "cmdgram.y"
  1694. { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1695. break;}
  1696. case 94:
  1697. #line 408 "cmdgram.y"
  1698. { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1699. break;}
  1700. case 95:
  1701. #line 410 "cmdgram.y"
  1702. { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1703. break;}
  1704. case 96:
  1705. #line 412 "cmdgram.y"
  1706. { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1707. break;}
  1708. case 97:
  1709. #line 414 "cmdgram.y"
  1710. { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-1].i, yyvsp[-2].expr, yyvsp[0].expr); ;
  1711. break;}
  1712. case 98:
  1713. #line 416 "cmdgram.y"
  1714. { yyval.expr = StreqExprNode::alloc(yyvsp[-2].expr, yyvsp[0].expr, true); ;
  1715. break;}
  1716. case 99:
  1717. #line 418 "cmdgram.y"
  1718. { yyval.expr = StreqExprNode::alloc(yyvsp[-2].expr, yyvsp[0].expr, false); ;
  1719. break;}
  1720. case 100:
  1721. #line 420 "cmdgram.y"
  1722. { yyval.expr = StrcatExprNode::alloc(yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].i); ;
  1723. break;}
  1724. case 101:
  1725. #line 422 "cmdgram.y"
  1726. { yyval.expr = IntUnaryExprNode::alloc(yyvsp[-1].i, yyvsp[0].expr); ;
  1727. break;}
  1728. case 102:
  1729. #line 424 "cmdgram.y"
  1730. { yyval.expr = IntUnaryExprNode::alloc(yyvsp[-1].i, yyvsp[0].expr); ;
  1731. break;}
  1732. case 103:
  1733. #line 426 "cmdgram.y"
  1734. { yyval.expr = StrConstNode::alloc(yyvsp[0].str, true); ;
  1735. break;}
  1736. case 104:
  1737. #line 428 "cmdgram.y"
  1738. { yyval.expr = FloatNode::alloc(yyvsp[0].f); ;
  1739. break;}
  1740. case 105:
  1741. #line 430 "cmdgram.y"
  1742. { yyval.expr = IntNode::alloc(yyvsp[0].i); ;
  1743. break;}
  1744. case 106:
  1745. #line 432 "cmdgram.y"
  1746. { yyval.expr = ConstantNode::alloc(StringTable->insert("break")); ;
  1747. break;}
  1748. case 107:
  1749. #line 434 "cmdgram.y"
  1750. { yyval.expr = SlotAccessNode::alloc(yyvsp[0].slot.object, yyvsp[0].slot.array, yyvsp[0].slot.slotName); ;
  1751. break;}
  1752. case 108:
  1753. #line 436 "cmdgram.y"
  1754. { yyval.expr = InternalSlotAccessNode::alloc(yyvsp[0].intslot.object, yyvsp[0].intslot.slotExpr, yyvsp[0].intslot.recurse); ;
  1755. break;}
  1756. case 109:
  1757. #line 438 "cmdgram.y"
  1758. { yyval.expr = ConstantNode::alloc(yyvsp[0].s); ;
  1759. break;}
  1760. case 110:
  1761. #line 440 "cmdgram.y"
  1762. { yyval.expr = StrConstNode::alloc(yyvsp[0].str, false); ;
  1763. break;}
  1764. case 111:
  1765. #line 442 "cmdgram.y"
  1766. { yyval.expr = (ExprNode*)VarNode::alloc(yyvsp[0].s, NULL); ;
  1767. break;}
  1768. case 112:
  1769. #line 444 "cmdgram.y"
  1770. { yyval.expr = (ExprNode*)VarNode::alloc(yyvsp[-3].s, yyvsp[-1].expr); ;
  1771. break;}
  1772. case 113:
  1773. #line 449 "cmdgram.y"
  1774. { yyval.slot.object = yyvsp[-2].expr; yyval.slot.slotName = yyvsp[0].s; yyval.slot.array = NULL; ;
  1775. break;}
  1776. case 114:
  1777. #line 451 "cmdgram.y"
  1778. { yyval.slot.object = yyvsp[-5].expr; yyval.slot.slotName = yyvsp[-3].s; yyval.slot.array = yyvsp[-1].expr; ;
  1779. break;}
  1780. case 115:
  1781. #line 456 "cmdgram.y"
  1782. { yyval.intslot.object = yyvsp[-2].expr; yyval.intslot.slotExpr = yyvsp[0].expr; yyval.intslot.recurse = false; ;
  1783. break;}
  1784. case 116:
  1785. #line 458 "cmdgram.y"
  1786. { yyval.intslot.object = yyvsp[-2].expr; yyval.intslot.slotExpr = yyvsp[0].expr; yyval.intslot.recurse = true; ;
  1787. break;}
  1788. case 117:
  1789. #line 463 "cmdgram.y"
  1790. { yyval.expr = ConstantNode::alloc(yyvsp[0].s); ;
  1791. break;}
  1792. case 118:
  1793. #line 465 "cmdgram.y"
  1794. { yyval.expr = yyvsp[-1].expr; ;
  1795. break;}
  1796. case 119:
  1797. #line 470 "cmdgram.y"
  1798. { yyval.asn.token = '+'; yyval.asn.expr = FloatNode::alloc(1); ;
  1799. break;}
  1800. case 120:
  1801. #line 472 "cmdgram.y"
  1802. { yyval.asn.token = '-'; yyval.asn.expr = FloatNode::alloc(1); ;
  1803. break;}
  1804. case 121:
  1805. #line 474 "cmdgram.y"
  1806. { yyval.asn.token = '+'; yyval.asn.expr = yyvsp[0].expr; ;
  1807. break;}
  1808. case 122:
  1809. #line 476 "cmdgram.y"
  1810. { yyval.asn.token = '-'; yyval.asn.expr = yyvsp[0].expr; ;
  1811. break;}
  1812. case 123:
  1813. #line 478 "cmdgram.y"
  1814. { yyval.asn.token = '*'; yyval.asn.expr = yyvsp[0].expr; ;
  1815. break;}
  1816. case 124:
  1817. #line 480 "cmdgram.y"
  1818. { yyval.asn.token = '/'; yyval.asn.expr = yyvsp[0].expr; ;
  1819. break;}
  1820. case 125:
  1821. #line 482 "cmdgram.y"
  1822. { yyval.asn.token = '%'; yyval.asn.expr = yyvsp[0].expr; ;
  1823. break;}
  1824. case 126:
  1825. #line 484 "cmdgram.y"
  1826. { yyval.asn.token = '&'; yyval.asn.expr = yyvsp[0].expr; ;
  1827. break;}
  1828. case 127:
  1829. #line 486 "cmdgram.y"
  1830. { yyval.asn.token = '^'; yyval.asn.expr = yyvsp[0].expr; ;
  1831. break;}
  1832. case 128:
  1833. #line 488 "cmdgram.y"
  1834. { yyval.asn.token = '|'; yyval.asn.expr = yyvsp[0].expr; ;
  1835. break;}
  1836. case 129:
  1837. #line 490 "cmdgram.y"
  1838. { yyval.asn.token = opSHL; yyval.asn.expr = yyvsp[0].expr; ;
  1839. break;}
  1840. case 130:
  1841. #line 492 "cmdgram.y"
  1842. { yyval.asn.token = opSHR; yyval.asn.expr = yyvsp[0].expr; ;
  1843. break;}
  1844. case 131:
  1845. #line 497 "cmdgram.y"
  1846. { yyval.expr = yyvsp[0].expr; ;
  1847. break;}
  1848. case 132:
  1849. #line 499 "cmdgram.y"
  1850. { yyval.expr = yyvsp[0].od; ;
  1851. break;}
  1852. case 133:
  1853. #line 501 "cmdgram.y"
  1854. { yyval.expr = yyvsp[0].od; ;
  1855. break;}
  1856. case 134:
  1857. #line 503 "cmdgram.y"
  1858. { yyval.expr = AssignExprNode::alloc(yyvsp[-2].s, NULL, yyvsp[0].expr); ;
  1859. break;}
  1860. case 135:
  1861. #line 505 "cmdgram.y"
  1862. { yyval.expr = AssignExprNode::alloc(yyvsp[-5].s, yyvsp[-3].expr, yyvsp[0].expr); ;
  1863. break;}
  1864. case 136:
  1865. #line 507 "cmdgram.y"
  1866. { yyval.expr = AssignOpExprNode::alloc(yyvsp[-1].s, NULL, yyvsp[0].asn.expr, yyvsp[0].asn.token); ;
  1867. break;}
  1868. case 137:
  1869. #line 509 "cmdgram.y"
  1870. { yyval.expr = AssignOpExprNode::alloc(yyvsp[-4].s, yyvsp[-2].expr, yyvsp[0].asn.expr, yyvsp[0].asn.token); ;
  1871. break;}
  1872. case 138:
  1873. #line 511 "cmdgram.y"
  1874. { yyval.expr = SlotAssignOpNode::alloc(yyvsp[-1].slot.object, yyvsp[-1].slot.slotName, yyvsp[-1].slot.array, yyvsp[0].asn.token, yyvsp[0].asn.expr); ;
  1875. break;}
  1876. case 139:
  1877. #line 513 "cmdgram.y"
  1878. { yyval.expr = SlotAssignNode::alloc(yyvsp[-2].slot.object, yyvsp[-2].slot.array, yyvsp[-2].slot.slotName, yyvsp[0].expr); ;
  1879. break;}
  1880. case 140:
  1881. #line 515 "cmdgram.y"
  1882. { yyval.expr = SlotAssignNode::alloc(yyvsp[-4].slot.object, yyvsp[-4].slot.array, yyvsp[-4].slot.slotName, yyvsp[-1].expr); ;
  1883. break;}
  1884. case 141:
  1885. #line 520 "cmdgram.y"
  1886. { yyval.expr = FuncCallExprNode::alloc(yyvsp[-3].s, NULL, yyvsp[-1].expr, false); ;
  1887. break;}
  1888. case 142:
  1889. #line 522 "cmdgram.y"
  1890. { yyval.expr = FuncCallExprNode::alloc(yyvsp[-3].s, yyvsp[-5].s, yyvsp[-1].expr, false); ;
  1891. break;}
  1892. case 143:
  1893. #line 524 "cmdgram.y"
  1894. { yyvsp[-5].expr->append(yyvsp[-1].expr); yyval.expr = FuncCallExprNode::alloc(yyvsp[-3].s, NULL, yyvsp[-5].expr, true); ;
  1895. break;}
  1896. case 144:
  1897. #line 529 "cmdgram.y"
  1898. { yyval.expr = NULL; ;
  1899. break;}
  1900. case 145:
  1901. #line 531 "cmdgram.y"
  1902. { yyval.expr = yyvsp[0].expr; ;
  1903. break;}
  1904. case 146:
  1905. #line 536 "cmdgram.y"
  1906. { yyval.expr = yyvsp[0].expr; ;
  1907. break;}
  1908. case 147:
  1909. #line 538 "cmdgram.y"
  1910. { (yyvsp[-2].expr)->append(yyvsp[0].expr); yyval.expr = yyvsp[-2].expr; ;
  1911. break;}
  1912. case 148:
  1913. #line 543 "cmdgram.y"
  1914. { yyval.slist = yyvsp[0].slist; ;
  1915. break;}
  1916. case 149:
  1917. #line 545 "cmdgram.y"
  1918. { yyvsp[-1].slist->append(yyvsp[0].slist); yyval.slist = yyvsp[-1].slist; ;
  1919. break;}
  1920. case 150:
  1921. #line 550 "cmdgram.y"
  1922. { yyval.slist = SlotAssignNode::alloc(NULL, NULL, yyvsp[-3].s, yyvsp[-1].expr); ;
  1923. break;}
  1924. case 151:
  1925. #line 552 "cmdgram.y"
  1926. { yyval.slist = SlotAssignNode::alloc(NULL, NULL, StringTable->insert("datablock"), yyvsp[-1].expr); ;
  1927. break;}
  1928. case 152:
  1929. #line 554 "cmdgram.y"
  1930. { yyval.slist = SlotAssignNode::alloc(NULL, yyvsp[-4].expr, yyvsp[-6].s, yyvsp[-1].expr); ;
  1931. break;}
  1932. case 153:
  1933. #line 559 "cmdgram.y"
  1934. { yyval.expr = yyvsp[0].expr; ;
  1935. break;}
  1936. case 154:
  1937. #line 561 "cmdgram.y"
  1938. { yyval.expr = CommaCatExprNode::alloc(yyvsp[-2].expr, yyvsp[0].expr); ;
  1939. break;}
  1940. }
  1941. /* the action file gets copied in in place of this dollarsign */
  1942. #line 487 "bison.simple"
  1943. yyvsp -= yylen;
  1944. yyssp -= yylen;
  1945. #ifdef YYLSP_NEEDED
  1946. yylsp -= yylen;
  1947. #endif
  1948. #if YYDEBUG != 0
  1949. if (yydebug)
  1950. {
  1951. short *ssp1 = yyss - 1;
  1952. fprintf (stderr, "state stack now");
  1953. while (ssp1 != yyssp)
  1954. fprintf (stderr, " %d", *++ssp1);
  1955. fprintf (stderr, "\n");
  1956. }
  1957. #endif
  1958. *++yyvsp = yyval;
  1959. #ifdef YYLSP_NEEDED
  1960. yylsp++;
  1961. if (yylen == 0)
  1962. {
  1963. yylsp->first_line = yylloc.first_line;
  1964. yylsp->first_column = yylloc.first_column;
  1965. yylsp->last_line = (yylsp-1)->last_line;
  1966. yylsp->last_column = (yylsp-1)->last_column;
  1967. yylsp->text = 0;
  1968. }
  1969. else
  1970. {
  1971. yylsp->last_line = (yylsp+yylen-1)->last_line;
  1972. yylsp->last_column = (yylsp+yylen-1)->last_column;
  1973. }
  1974. #endif
  1975. /* Now "shift" the result of the reduction.
  1976. Determine what state that goes to,
  1977. based on the state we popped back to
  1978. and the rule number reduced by. */
  1979. yyn = yyr1[yyn];
  1980. yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  1981. if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
  1982. yystate = yytable[yystate];
  1983. else
  1984. yystate = yydefgoto[yyn - YYNTBASE];
  1985. goto yynewstate;
  1986. yyerrlab: /* here on detecting error */
  1987. if (! yyerrstatus)
  1988. /* If not already recovering from an error, report this error. */
  1989. {
  1990. ++yynerrs;
  1991. #ifdef YYERROR_VERBOSE
  1992. yyn = yypact[yystate];
  1993. if (yyn > YYFLAG && yyn < YYLAST)
  1994. {
  1995. int size = 0;
  1996. char *msg;
  1997. int x, count;
  1998. count = 0;
  1999. /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
  2000. for (x = (yyn < 0 ? -yyn : 0);
  2001. x < (sizeof(yytname) / sizeof(char *)); x++)
  2002. if (yycheck[x + yyn] == x)
  2003. size += strlen(yytname[x]) + 15, count++;
  2004. msg = (char *) malloc(size + 15);
  2005. if (msg != 0)
  2006. {
  2007. strcpy(msg, "parse error");
  2008. if (count < 5)
  2009. {
  2010. count = 0;
  2011. for (x = (yyn < 0 ? -yyn : 0);
  2012. x < (sizeof(yytname) / sizeof(char *)); x++)
  2013. if (yycheck[x + yyn] == x)
  2014. {
  2015. strcat(msg, count == 0 ? ", expecting `" : " or `");
  2016. strcat(msg, yytname[x]);
  2017. strcat(msg, "'");
  2018. count++;
  2019. }
  2020. }
  2021. yyerror(msg);
  2022. free(msg);
  2023. }
  2024. else
  2025. yyerror ("parse error; also virtual memory exceeded");
  2026. }
  2027. else
  2028. #endif /* YYERROR_VERBOSE */
  2029. yyerror((char*)"parse error");
  2030. }
  2031. goto yyerrlab1;
  2032. yyerrlab1: /* here on error raised explicitly by an action */
  2033. if (yyerrstatus == 3)
  2034. {
  2035. /* if just tried and failed to reuse lookahead token after an error, discard it. */
  2036. /* return failure if at end of input */
  2037. if (yychar == YYEOF)
  2038. YYABORT;
  2039. #if YYDEBUG != 0
  2040. if (yydebug)
  2041. fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
  2042. #endif
  2043. yychar = YYEMPTY;
  2044. }
  2045. /* Else will try to reuse lookahead token
  2046. after shifting the error token. */
  2047. yyerrstatus = 3; /* Each real token shifted decrements this */
  2048. goto yyerrhandle;
  2049. yyerrdefault: /* current state does not do anything special for the error token. */
  2050. #if 0
  2051. /* This is wrong; only states that explicitly want error tokens
  2052. should shift them. */
  2053. yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
  2054. if (yyn) goto yydefault;
  2055. #endif
  2056. yyerrpop: /* pop the current state because it cannot handle the error token */
  2057. if (yyssp == yyss) YYABORT;
  2058. yyvsp--;
  2059. yystate = *--yyssp;
  2060. #ifdef YYLSP_NEEDED
  2061. yylsp--;
  2062. #endif
  2063. #if YYDEBUG != 0
  2064. if (yydebug)
  2065. {
  2066. short *ssp1 = yyss - 1;
  2067. fprintf (stderr, "Error: state stack now");
  2068. while (ssp1 != yyssp)
  2069. fprintf (stderr, " %d", *++ssp1);
  2070. fprintf (stderr, "\n");
  2071. }
  2072. #endif
  2073. yyerrhandle:
  2074. yyn = yypact[yystate];
  2075. if (yyn == YYFLAG)
  2076. goto yyerrdefault;
  2077. yyn += YYTERROR;
  2078. if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
  2079. goto yyerrdefault;
  2080. yyn = yytable[yyn];
  2081. if (yyn < 0)
  2082. {
  2083. if (yyn == YYFLAG)
  2084. goto yyerrpop;
  2085. yyn = -yyn;
  2086. goto yyreduce;
  2087. }
  2088. else if (yyn == 0)
  2089. goto yyerrpop;
  2090. if (yyn == YYFINAL)
  2091. YYACCEPT;
  2092. #if YYDEBUG != 0
  2093. if (yydebug)
  2094. fprintf(stderr, "Shifting error token, ");
  2095. #endif
  2096. *++yyvsp = yylval;
  2097. #ifdef YYLSP_NEEDED
  2098. *++yylsp = yylloc;
  2099. #endif
  2100. yystate = yyn;
  2101. goto yynewstate;
  2102. }
  2103. #line 563 "cmdgram.y"