File Coverage

blib/lib/WAP/wmls/parser.pm
Criterion Covered Total %
statement 9 11 81.8
branch 0 2 0.0
condition n/a
subroutine 3 4 75.0
pod 0 1 0.0
total 12 18 66.6


line stmt bran cond sub pod time code
1             ####################################################################
2             #
3             # This file was generated using Parse::Yapp version 1.05.
4             #
5             # Don't edit this file, use source file instead.
6             #
7             # ANY CHANGE MADE HERE WILL BE LOST !
8             #
9             ####################################################################
10             package WAP::wmls::parser;
11 1     1   10 use vars qw ( @ISA );
  1         1  
  1         52  
12 1     1   5 use strict;
  1         2  
  1         36  
13            
14             @ISA= qw ( Parse::Yapp::Driver );
15 1     1   1643 use Parse::Yapp::Driver;
  1         4870  
  1         12244  
16            
17            
18            
19             sub new {
20 0     0 0   my($class)=shift;
21 0 0         ref($class)
22             and $class=ref($class);
23            
24             my($self)=$class->SUPER::new( yyversion => '1.05',
25             yystates =>
26             [
27             {#State 0
28             ACTIONS => {
29             'USE' => 6,
30             'FUNCTION' => 7,
31             'EXTERN' => 9
32             },
33             GOTOS => {
34             'CompilationUnit' => 1,
35             'FunctionDeclarations' => 2,
36             'Pragma' => 8,
37             'FunctionDeclaration' => 3,
38             'func_decl' => 5,
39             'Pragmas' => 4
40             }
41             },
42             {#State 1
43             ACTIONS => {
44             '' => 10
45             }
46             },
47             {#State 2
48             ACTIONS => {
49             'FUNCTION' => 7,
50             'EXTERN' => 9
51             },
52             DEFAULT => -174,
53             GOTOS => {
54             'FunctionDeclaration' => 11,
55             'func_decl' => 5
56             }
57             },
58             {#State 3
59             DEFAULT => -200
60             },
61             {#State 4
62             ACTIONS => {
63             '' => -173,
64             'USE' => 6,
65             'error' => 13,
66             'FUNCTION' => 7,
67             'EXTERN' => 9
68             },
69             GOTOS => {
70             'FunctionDeclarations' => 12,
71             'Pragma' => 14,
72             'FunctionDeclaration' => 3,
73             'func_decl' => 5
74             }
75             },
76             {#State 5
77             ACTIONS => {
78             'IDENTIFIER' => 16,
79             'error' => 17,
80             ")" => 18
81             },
82             GOTOS => {
83             'FormalParameterList' => 15
84             }
85             },
86             {#State 6
87             ACTIONS => {
88             'URL' => 19,
89             'error' => 26,
90             'ACCESS' => 24,
91             'META' => 20
92             },
93             GOTOS => {
94             'ExternalCompilationUnitPragma' => 25,
95             'AccessControlPragma' => 21,
96             'PragmaDeclaration' => 23,
97             'MetaPragma' => 22
98             }
99             },
100             {#State 7
101             ACTIONS => {
102             'IDENTIFIER' => 27,
103             'error' => 28
104             }
105             },
106             {#State 8
107             DEFAULT => -175
108             },
109             {#State 9
110             ACTIONS => {
111             'FUNCTION' => 30,
112             'error' => 29
113             }
114             },
115             {#State 10
116             DEFAULT => 0
117             },
118             {#State 11
119             DEFAULT => -201
120             },
121             {#State 12
122             ACTIONS => {
123             'FUNCTION' => 7,
124             'EXTERN' => 9
125             },
126             DEFAULT => -171,
127             GOTOS => {
128             'FunctionDeclaration' => 11,
129             'func_decl' => 5
130             }
131             },
132             {#State 13
133             DEFAULT => -172
134             },
135             {#State 14
136             DEFAULT => -176
137             },
138             {#State 15
139             ACTIONS => {
140             'error' => 32,
141             "," => 31,
142             ")" => 33
143             }
144             },
145             {#State 16
146             DEFAULT => -169
147             },
148             {#State 17
149             DEFAULT => -165
150             },
151             {#State 18
152             ACTIONS => {
153             'error' => 36,
154             "{" => 35
155             },
156             GOTOS => {
157             'Block' => 34
158             }
159             },
160             {#State 19
161             ACTIONS => {
162             'IDENTIFIER' => 37
163             }
164             },
165             {#State 20
166             ACTIONS => {
167             'HTTP' => 38,
168             'NAME' => 40,
169             'USER' => 44
170             },
171             GOTOS => {
172             'MetaSpecifier' => 39,
173             'MetaUserAgent' => 42,
174             'MetaName' => 41,
175             'MetaHttpEquiv' => 43
176             }
177             },
178             {#State 21
179             DEFAULT => -181
180             },
181             {#State 22
182             DEFAULT => -182
183             },
184             {#State 23
185             ACTIONS => {
186             ";" => 45,
187             'error' => 46
188             }
189             },
190             {#State 24
191             ACTIONS => {
192             'DOMAIN' => 48,
193             'PATH' => 47
194             },
195             GOTOS => {
196             'AccessControlSpecifier' => 49
197             }
198             },
199             {#State 25
200             DEFAULT => -180
201             },
202             {#State 26
203             DEFAULT => -178
204             },
205             {#State 27
206             ACTIONS => {
207             "(" => 50,
208             'error' => 51
209             }
210             },
211             {#State 28
212             DEFAULT => -159
213             },
214             {#State 29
215             DEFAULT => -156
216             },
217             {#State 30
218             ACTIONS => {
219             'IDENTIFIER' => 52,
220             'error' => 53
221             }
222             },
223             {#State 31
224             ACTIONS => {
225             'IDENTIFIER' => 54
226             }
227             },
228             {#State 32
229             DEFAULT => -166
230             },
231             {#State 33
232             ACTIONS => {
233             'error' => 56,
234             "{" => 35
235             },
236             GOTOS => {
237             'Block' => 55
238             }
239             },
240             {#State 34
241             ACTIONS => {
242             ";" => 57
243             },
244             DEFAULT => -164
245             },
246             {#State 35
247             ACTIONS => {
248             "}" => 59,
249             "-" => 58,
250             'BREAK' => 91,
251             ";" => 108,
252             "~" => 92,
253             "+" => 75,
254             'FOR' => 74,
255             'INTEGER_LITERAL' => 76,
256             "++" => 110,
257             "!" => 63,
258             'RETURN' => 112,
259             'IF' => 94,
260             'TRUE_LITERAL' => 93,
261             'ISVALID' => 80,
262             'WHILE' => 115,
263             "--" => 96,
264             'FLOAT_LITERAL' => 95,
265             'FALSE_LITERAL' => 99,
266             'IDENTIFIER' => 98,
267             'TYPEOF' => 66,
268             "{" => 35,
269             "(" => 102,
270             'CONTINUE' => 68,
271             'UTF8_STRING_LITERAL' => 87,
272             'VAR' => 104,
273             'STRING_LITERAL' => 88,
274             'INVALID_LITERAL' => 89
275             },
276             GOTOS => {
277             'RelationalExpression' => 60,
278             'IfStatement' => 61,
279             'MultiplicativeExpression' => 62,
280             'ReturnStatement' => 64,
281             'CallExpression' => 65,
282             'for_begin' => 97,
283             'ExpressionStatement' => 100,
284             'BitwiseXORExpression' => 101,
285             'LogicalANDExpression' => 67,
286             'PrimaryExpression' => 69,
287             'VariableStatement' => 103,
288             'AssignmentExpression' => 70,
289             'ConditionalExpression' => 71,
290             'UnaryExpression' => 72,
291             'LogicalORExpression' => 105,
292             'BitwiseANDExpression' => 73,
293             'Block' => 106,
294             'FunctionName' => 107,
295             'ExternalScriptName' => 77,
296             'EqualityExpression' => 109,
297             'IterationStatement' => 78,
298             'LibraryFunctionCall' => 79,
299             'EmptyStatement' => 111,
300             'LibraryName' => 81,
301             'BitwiseORExpression' => 113,
302             'Statement' => 114,
303             'BreakStatement' => 82,
304             'Expression' => 116,
305             'ExternalScriptFunctionCall' => 118,
306             'Literal' => 117,
307             'PostfixExpression' => 119,
308             'StringLiteral' => 83,
309             'ContinueStatement' => 120,
310             'WhileStatement' => 84,
311             'ShiftExpression' => 85,
312             'LocalScriptFunctionCall' => 86,
313             'AdditiveExpression' => 121,
314             'StatementList' => 90,
315             'ForStatement' => 122
316             }
317             },
318             {#State 36
319             DEFAULT => -168
320             },
321             {#State 37
322             ACTIONS => {
323             'UTF8_STRING_LITERAL' => 87,
324             'STRING_LITERAL' => 88
325             },
326             GOTOS => {
327             'StringLiteral' => 123
328             }
329             },
330             {#State 38
331             ACTIONS => {
332             'EQUIV' => 124
333             }
334             },
335             {#State 39
336             DEFAULT => -188
337             },
338             {#State 40
339             ACTIONS => {
340             'UTF8_STRING_LITERAL' => 87,
341             'STRING_LITERAL' => 88
342             },
343             GOTOS => {
344             'MetaPropertyName' => 127,
345             'StringLiteral' => 126,
346             'MetaBody' => 125
347             }
348             },
349             {#State 41
350             DEFAULT => -189
351             },
352             {#State 42
353             DEFAULT => -191
354             },
355             {#State 43
356             DEFAULT => -190
357             },
358             {#State 44
359             ACTIONS => {
360             'AGENT' => 128
361             }
362             },
363             {#State 45
364             DEFAULT => -177
365             },
366             {#State 46
367             DEFAULT => -179
368             },
369             {#State 47
370             ACTIONS => {
371             'UTF8_STRING_LITERAL' => 87,
372             'STRING_LITERAL' => 88
373             },
374             GOTOS => {
375             'StringLiteral' => 129
376             }
377             },
378             {#State 48
379             ACTIONS => {
380             'UTF8_STRING_LITERAL' => 87,
381             'STRING_LITERAL' => 88
382             },
383             GOTOS => {
384             'StringLiteral' => 130
385             }
386             },
387             {#State 49
388             DEFAULT => -184
389             },
390             {#State 50
391             DEFAULT => -155
392             },
393             {#State 51
394             DEFAULT => -160
395             },
396             {#State 52
397             ACTIONS => {
398             "(" => 132,
399             'error' => 131
400             }
401             },
402             {#State 53
403             DEFAULT => -157
404             },
405             {#State 54
406             DEFAULT => -170
407             },
408             {#State 55
409             ACTIONS => {
410             ";" => 133
411             },
412             DEFAULT => -162
413             },
414             {#State 56
415             DEFAULT => -167
416             },
417             {#State 57
418             DEFAULT => -163
419             },
420             {#State 58
421             ACTIONS => {
422             "-" => 58,
423             "~" => 92,
424             "+" => 75,
425             'INTEGER_LITERAL' => 76,
426             "++" => 110,
427             "!" => 63,
428             'TRUE_LITERAL' => 93,
429             'ISVALID' => 80,
430             'FLOAT_LITERAL' => 95,
431             "--" => 96,
432             'IDENTIFIER' => 135,
433             'FALSE_LITERAL' => 99,
434             'TYPEOF' => 66,
435             "(" => 102,
436             'UTF8_STRING_LITERAL' => 87,
437             'STRING_LITERAL' => 88,
438             'INVALID_LITERAL' => 89
439             },
440             GOTOS => {
441             'Literal' => 117,
442             'ExternalScriptFunctionCall' => 118,
443             'FunctionName' => 107,
444             'PostfixExpression' => 119,
445             'StringLiteral' => 83,
446             'ExternalScriptName' => 77,
447             'PrimaryExpression' => 69,
448             'LibraryFunctionCall' => 79,
449             'LocalScriptFunctionCall' => 86,
450             'UnaryExpression' => 134,
451             'LibraryName' => 81,
452             'CallExpression' => 65
453             }
454             },
455             {#State 59
456             DEFAULT => -103
457             },
458             {#State 60
459             ACTIONS => {
460             "<" => 136,
461             ">=" => 137,
462             "<=" => 138,
463             ">" => 139
464             },
465             DEFAULT => -59
466             },
467             {#State 61
468             DEFAULT => -96
469             },
470             {#State 62
471             ACTIONS => {
472             "%" => 140,
473             "*" => 141,
474             'DIV' => 142,
475             "/" => 143
476             },
477             DEFAULT => -47
478             },
479             {#State 63
480             ACTIONS => {
481             "-" => 58,
482             "~" => 92,
483             "+" => 75,
484             'INTEGER_LITERAL' => 76,
485             "++" => 110,
486             "!" => 63,
487             'TRUE_LITERAL' => 93,
488             'ISVALID' => 80,
489             'FLOAT_LITERAL' => 95,
490             "--" => 96,
491             'IDENTIFIER' => 135,
492             'FALSE_LITERAL' => 99,
493             'TYPEOF' => 66,
494             "(" => 102,
495             'UTF8_STRING_LITERAL' => 87,
496             'STRING_LITERAL' => 88,
497             'INVALID_LITERAL' => 89
498             },
499             GOTOS => {
500             'Literal' => 117,
501             'ExternalScriptFunctionCall' => 118,
502             'FunctionName' => 107,
503             'PostfixExpression' => 119,
504             'StringLiteral' => 83,
505             'ExternalScriptName' => 77,
506             'PrimaryExpression' => 69,
507             'LibraryFunctionCall' => 79,
508             'LocalScriptFunctionCall' => 86,
509             'UnaryExpression' => 144,
510             'LibraryName' => 81,
511             'CallExpression' => 65
512             }
513             },
514             {#State 64
515             DEFAULT => -100
516             },
517             {#State 65
518             DEFAULT => -30
519             },
520             {#State 66
521             ACTIONS => {
522             "-" => 58,
523             "~" => 92,
524             "+" => 75,
525             'INTEGER_LITERAL' => 76,
526             "++" => 110,
527             "!" => 63,
528             'TRUE_LITERAL' => 93,
529             'ISVALID' => 80,
530             'FLOAT_LITERAL' => 95,
531             "--" => 96,
532             'IDENTIFIER' => 135,
533             'FALSE_LITERAL' => 99,
534             'TYPEOF' => 66,
535             "(" => 102,
536             'UTF8_STRING_LITERAL' => 87,
537             'STRING_LITERAL' => 88,
538             'INVALID_LITERAL' => 89
539             },
540             GOTOS => {
541             'Literal' => 117,
542             'ExternalScriptFunctionCall' => 118,
543             'FunctionName' => 107,
544             'PostfixExpression' => 119,
545             'StringLiteral' => 83,
546             'ExternalScriptName' => 77,
547             'PrimaryExpression' => 69,
548             'LibraryFunctionCall' => 79,
549             'LocalScriptFunctionCall' => 86,
550             'UnaryExpression' => 145,
551             'LibraryName' => 81,
552             'CallExpression' => 65
553             }
554             },
555             {#State 67
556             ACTIONS => {
557             "&&" => 146
558             },
559             DEFAULT => -70
560             },
561             {#State 68
562             ACTIONS => {
563             ";" => 148,
564             'error' => 147
565             }
566             },
567             {#State 69
568             DEFAULT => -14
569             },
570             {#State 70
571             DEFAULT => -90
572             },
573             {#State 71
574             DEFAULT => -75
575             },
576             {#State 72
577             DEFAULT => -42
578             },
579             {#State 73
580             ACTIONS => {
581             "&" => 149
582             },
583             DEFAULT => -64
584             },
585             {#State 74
586             ACTIONS => {
587             "(" => 151,
588             'error' => 150
589             }
590             },
591             {#State 75
592             ACTIONS => {
593             "-" => 58,
594             "~" => 92,
595             "+" => 75,
596             'INTEGER_LITERAL' => 76,
597             "++" => 110,
598             "!" => 63,
599             'TRUE_LITERAL' => 93,
600             'ISVALID' => 80,
601             'FLOAT_LITERAL' => 95,
602             "--" => 96,
603             'IDENTIFIER' => 135,
604             'FALSE_LITERAL' => 99,
605             'TYPEOF' => 66,
606             "(" => 102,
607             'UTF8_STRING_LITERAL' => 87,
608             'STRING_LITERAL' => 88,
609             'INVALID_LITERAL' => 89
610             },
611             GOTOS => {
612             'Literal' => 117,
613             'ExternalScriptFunctionCall' => 118,
614             'FunctionName' => 107,
615             'PostfixExpression' => 119,
616             'StringLiteral' => 83,
617             'ExternalScriptName' => 77,
618             'PrimaryExpression' => 69,
619             'LibraryFunctionCall' => 79,
620             'LocalScriptFunctionCall' => 86,
621             'UnaryExpression' => 152,
622             'LibraryName' => 81,
623             'CallExpression' => 65
624             }
625             },
626             {#State 76
627             DEFAULT => -1
628             },
629             {#State 77
630             ACTIONS => {
631             "#" => 153
632             }
633             },
634             {#State 78
635             DEFAULT => -97
636             },
637             {#State 79
638             DEFAULT => -17
639             },
640             {#State 80
641             ACTIONS => {
642             "-" => 58,
643             "~" => 92,
644             "+" => 75,
645             'INTEGER_LITERAL' => 76,
646             "++" => 110,
647             "!" => 63,
648             'TRUE_LITERAL' => 93,
649             'ISVALID' => 80,
650             'FLOAT_LITERAL' => 95,
651             "--" => 96,
652             'IDENTIFIER' => 135,
653             'FALSE_LITERAL' => 99,
654             'TYPEOF' => 66,
655             "(" => 102,
656             'UTF8_STRING_LITERAL' => 87,
657             'STRING_LITERAL' => 88,
658             'INVALID_LITERAL' => 89
659             },
660             GOTOS => {
661             'Literal' => 117,
662             'ExternalScriptFunctionCall' => 118,
663             'FunctionName' => 107,
664             'PostfixExpression' => 119,
665             'StringLiteral' => 83,
666             'ExternalScriptName' => 77,
667             'PrimaryExpression' => 69,
668             'LibraryFunctionCall' => 79,
669             'LocalScriptFunctionCall' => 86,
670             'UnaryExpression' => 154,
671             'LibraryName' => 81,
672             'CallExpression' => 65
673             }
674             },
675             {#State 81
676             ACTIONS => {
677             "." => 155
678             }
679             },
680             {#State 82
681             DEFAULT => -99
682             },
683             {#State 83
684             DEFAULT => -3
685             },
686             {#State 84
687             DEFAULT => -122
688             },
689             {#State 85
690             ACTIONS => {
691             ">>" => 156,
692             ">>>" => 157,
693             "<<" => 158
694             },
695             DEFAULT => -54
696             },
697             {#State 86
698             DEFAULT => -15
699             },
700             {#State 87
701             DEFAULT => -8
702             },
703             {#State 88
704             DEFAULT => -7
705             },
706             {#State 89
707             DEFAULT => -6
708             },
709             {#State 90
710             ACTIONS => {
711             "}" => 159,
712             "-" => 58,
713             'BREAK' => 91,
714             ";" => 108,
715             "~" => 92,
716             "+" => 75,
717             'FOR' => 74,
718             'INTEGER_LITERAL' => 76,
719             "++" => 110,
720             "!" => 63,
721             'RETURN' => 112,
722             'TRUE_LITERAL' => 93,
723             'IF' => 94,
724             'error' => 160,
725             'ISVALID' => 80,
726             'WHILE' => 115,
727             'FLOAT_LITERAL' => 95,
728             "--" => 96,
729             'FALSE_LITERAL' => 99,
730             'IDENTIFIER' => 98,
731             'TYPEOF' => 66,
732             "{" => 35,
733             "(" => 102,
734             'CONTINUE' => 68,
735             'UTF8_STRING_LITERAL' => 87,
736             'VAR' => 104,
737             'STRING_LITERAL' => 88,
738             'INVALID_LITERAL' => 89
739             },
740             GOTOS => {
741             'RelationalExpression' => 60,
742             'IfStatement' => 61,
743             'MultiplicativeExpression' => 62,
744             'ReturnStatement' => 64,
745             'CallExpression' => 65,
746             'for_begin' => 97,
747             'ExpressionStatement' => 100,
748             'BitwiseXORExpression' => 101,
749             'LogicalANDExpression' => 67,
750             'PrimaryExpression' => 69,
751             'VariableStatement' => 103,
752             'AssignmentExpression' => 70,
753             'ConditionalExpression' => 71,
754             'UnaryExpression' => 72,
755             'LogicalORExpression' => 105,
756             'BitwiseANDExpression' => 73,
757             'Block' => 106,
758             'FunctionName' => 107,
759             'ExternalScriptName' => 77,
760             'EqualityExpression' => 109,
761             'IterationStatement' => 78,
762             'LibraryFunctionCall' => 79,
763             'EmptyStatement' => 111,
764             'LibraryName' => 81,
765             'BitwiseORExpression' => 113,
766             'Statement' => 161,
767             'BreakStatement' => 82,
768             'Expression' => 116,
769             'Literal' => 117,
770             'ExternalScriptFunctionCall' => 118,
771             'PostfixExpression' => 119,
772             'StringLiteral' => 83,
773             'ContinueStatement' => 120,
774             'WhileStatement' => 84,
775             'ShiftExpression' => 85,
776             'LocalScriptFunctionCall' => 86,
777             'AdditiveExpression' => 121,
778             'ForStatement' => 122
779             }
780             },
781             {#State 91
782             ACTIONS => {
783             ";" => 163,
784             'error' => 162
785             }
786             },
787             {#State 92
788             ACTIONS => {
789             "-" => 58,
790             "~" => 92,
791             "+" => 75,
792             'INTEGER_LITERAL' => 76,
793             "++" => 110,
794             "!" => 63,
795             'TRUE_LITERAL' => 93,
796             'ISVALID' => 80,
797             'FLOAT_LITERAL' => 95,
798             "--" => 96,
799             'IDENTIFIER' => 135,
800             'FALSE_LITERAL' => 99,
801             'TYPEOF' => 66,
802             "(" => 102,
803             'UTF8_STRING_LITERAL' => 87,
804             'STRING_LITERAL' => 88,
805             'INVALID_LITERAL' => 89
806             },
807             GOTOS => {
808             'Literal' => 117,
809             'ExternalScriptFunctionCall' => 118,
810             'FunctionName' => 107,
811             'PostfixExpression' => 119,
812             'StringLiteral' => 83,
813             'ExternalScriptName' => 77,
814             'PrimaryExpression' => 69,
815             'LibraryFunctionCall' => 79,
816             'LocalScriptFunctionCall' => 86,
817             'UnaryExpression' => 164,
818             'LibraryName' => 81,
819             'CallExpression' => 65
820             }
821             },
822             {#State 93
823             DEFAULT => -4
824             },
825             {#State 94
826             ACTIONS => {
827             "(" => 166,
828             'error' => 165
829             }
830             },
831             {#State 95
832             DEFAULT => -2
833             },
834             {#State 96
835             ACTIONS => {
836             'IDENTIFIER' => 167
837             }
838             },
839             {#State 97
840             ACTIONS => {
841             "-" => 58,
842             ";" => 169,
843             "~" => 92,
844             "+" => 75,
845             'INTEGER_LITERAL' => 76,
846             "++" => 110,
847             "!" => 63,
848             'TRUE_LITERAL' => 93,
849             'ISVALID' => 80,
850             'error' => 168,
851             'FLOAT_LITERAL' => 95,
852             "--" => 96,
853             'IDENTIFIER' => 98,
854             'FALSE_LITERAL' => 99,
855             'TYPEOF' => 66,
856             "(" => 102,
857             'UTF8_STRING_LITERAL' => 87,
858             'STRING_LITERAL' => 88,
859             'INVALID_LITERAL' => 89
860             },
861             GOTOS => {
862             'BitwiseANDExpression' => 73,
863             'RelationalExpression' => 60,
864             'FunctionName' => 107,
865             'ExternalScriptName' => 77,
866             'MultiplicativeExpression' => 62,
867             'EqualityExpression' => 109,
868             'LibraryFunctionCall' => 79,
869             'BitwiseORExpression' => 113,
870             'LibraryName' => 81,
871             'CallExpression' => 65,
872             'Expression' => 170,
873             'Literal' => 117,
874             'ExternalScriptFunctionCall' => 118,
875             'BitwiseXORExpression' => 101,
876             'PostfixExpression' => 119,
877             'StringLiteral' => 83,
878             'LogicalANDExpression' => 67,
879             'PrimaryExpression' => 69,
880             'ShiftExpression' => 85,
881             'LocalScriptFunctionCall' => 86,
882             'UnaryExpression' => 72,
883             'ConditionalExpression' => 71,
884             'AssignmentExpression' => 70,
885             'AdditiveExpression' => 121,
886             'LogicalORExpression' => 105
887             }
888             },
889             {#State 98
890             ACTIONS => {
891             "*=" => 171,
892             "div=" => 178,
893             "|=" => 172,
894             "&=" => 179,
895             "--" => 180,
896             "-=" => 181,
897             "/=" => 182,
898             "<<=" => 174,
899             "(" => -21,
900             "." => -23,
901             "%=" => 183,
902             "^=" => 175,
903             ">>=" => 176,
904             "++" => 184,
905             "=" => 186,
906             "+=" => 185,
907             ">>>=" => 177,
908             "#" => -22
909             },
910             DEFAULT => -9,
911             GOTOS => {
912             'AssignmentOperator' => 173
913             }
914             },
915             {#State 99
916             DEFAULT => -5
917             },
918             {#State 100
919             DEFAULT => -95
920             },
921             {#State 101
922             ACTIONS => {
923             "^" => 187
924             },
925             DEFAULT => -66
926             },
927             {#State 102
928             ACTIONS => {
929             "-" => 58,
930             "~" => 92,
931             "+" => 75,
932             'INTEGER_LITERAL' => 76,
933             "++" => 110,
934             "!" => 63,
935             'TRUE_LITERAL' => 93,
936             'ISVALID' => 80,
937             'error' => 188,
938             'FLOAT_LITERAL' => 95,
939             "--" => 96,
940             'IDENTIFIER' => 98,
941             'FALSE_LITERAL' => 99,
942             'TYPEOF' => 66,
943             "(" => 102,
944             'UTF8_STRING_LITERAL' => 87,
945             'STRING_LITERAL' => 88,
946             'INVALID_LITERAL' => 89
947             },
948             GOTOS => {
949             'BitwiseANDExpression' => 73,
950             'RelationalExpression' => 60,
951             'FunctionName' => 107,
952             'ExternalScriptName' => 77,
953             'MultiplicativeExpression' => 62,
954             'EqualityExpression' => 109,
955             'LibraryFunctionCall' => 79,
956             'BitwiseORExpression' => 113,
957             'LibraryName' => 81,
958             'CallExpression' => 65,
959             'Expression' => 189,
960             'Literal' => 117,
961             'ExternalScriptFunctionCall' => 118,
962             'BitwiseXORExpression' => 101,
963             'PostfixExpression' => 119,
964             'StringLiteral' => 83,
965             'LogicalANDExpression' => 67,
966             'PrimaryExpression' => 69,
967             'ShiftExpression' => 85,
968             'LocalScriptFunctionCall' => 86,
969             'UnaryExpression' => 72,
970             'ConditionalExpression' => 71,
971             'AssignmentExpression' => 70,
972             'AdditiveExpression' => 121,
973             'LogicalORExpression' => 105
974             }
975             },
976             {#State 103
977             DEFAULT => -93
978             },
979             {#State 104
980             ACTIONS => {
981             'IDENTIFIER' => 192,
982             'error' => 191
983             },
984             GOTOS => {
985             'VariableDeclaration' => 193,
986             'VariableDeclarationList' => 190
987             }
988             },
989             {#State 105
990             ACTIONS => {
991             "||" => 195,
992             "?" => 194
993             },
994             DEFAULT => -72
995             },
996             {#State 106
997             DEFAULT => -92
998             },
999             {#State 107
1000             ACTIONS => {
1001             "(" => 197
1002             },
1003             GOTOS => {
1004             'Arguments' => 196
1005             }
1006             },
1007             {#State 108
1008             DEFAULT => -114
1009             },
1010             {#State 109
1011             ACTIONS => {
1012             "!=" => 199,
1013             "==" => 198
1014             },
1015             DEFAULT => -62
1016             },
1017             {#State 110
1018             ACTIONS => {
1019             'IDENTIFIER' => 200
1020             }
1021             },
1022             {#State 111
1023             DEFAULT => -94
1024             },
1025             {#State 112
1026             ACTIONS => {
1027             "-" => 58,
1028             ";" => 202,
1029             "~" => 92,
1030             "+" => 75,
1031             'INTEGER_LITERAL' => 76,
1032             "++" => 110,
1033             "!" => 63,
1034             'TRUE_LITERAL' => 93,
1035             'ISVALID' => 80,
1036             'error' => 201,
1037             'FLOAT_LITERAL' => 95,
1038             "--" => 96,
1039             'IDENTIFIER' => 98,
1040             'FALSE_LITERAL' => 99,
1041             'TYPEOF' => 66,
1042             "(" => 102,
1043             'UTF8_STRING_LITERAL' => 87,
1044             'STRING_LITERAL' => 88,
1045             'INVALID_LITERAL' => 89
1046             },
1047             GOTOS => {
1048             'BitwiseANDExpression' => 73,
1049             'RelationalExpression' => 60,
1050             'FunctionName' => 107,
1051             'ExternalScriptName' => 77,
1052             'MultiplicativeExpression' => 62,
1053             'EqualityExpression' => 109,
1054             'LibraryFunctionCall' => 79,
1055             'BitwiseORExpression' => 113,
1056             'LibraryName' => 81,
1057             'CallExpression' => 65,
1058             'Expression' => 203,
1059             'Literal' => 117,
1060             'ExternalScriptFunctionCall' => 118,
1061             'BitwiseXORExpression' => 101,
1062             'PostfixExpression' => 119,
1063             'StringLiteral' => 83,
1064             'LogicalANDExpression' => 67,
1065             'PrimaryExpression' => 69,
1066             'ShiftExpression' => 85,
1067             'LocalScriptFunctionCall' => 86,
1068             'UnaryExpression' => 72,
1069             'ConditionalExpression' => 71,
1070             'AssignmentExpression' => 70,
1071             'AdditiveExpression' => 121,
1072             'LogicalORExpression' => 105
1073             }
1074             },
1075             {#State 113
1076             ACTIONS => {
1077             "|" => 204
1078             },
1079             DEFAULT => -68
1080             },
1081             {#State 114
1082             DEFAULT => -104
1083             },
1084             {#State 115
1085             ACTIONS => {
1086             "(" => 206,
1087             'error' => 205
1088             }
1089             },
1090             {#State 116
1091             ACTIONS => {
1092             ";" => 209,
1093             'error' => 208,
1094             "," => 207
1095             }
1096             },
1097             {#State 117
1098             DEFAULT => -10
1099             },
1100             {#State 118
1101             DEFAULT => -16
1102             },
1103             {#State 119
1104             DEFAULT => -33
1105             },
1106             {#State 120
1107             DEFAULT => -98
1108             },
1109             {#State 121
1110             ACTIONS => {
1111             "-" => 210,
1112             "+" => 211
1113             },
1114             DEFAULT => -50
1115             },
1116             {#State 122
1117             DEFAULT => -123
1118             },
1119             {#State 123
1120             DEFAULT => -183
1121             },
1122             {#State 124
1123             ACTIONS => {
1124             'UTF8_STRING_LITERAL' => 87,
1125             'STRING_LITERAL' => 88
1126             },
1127             GOTOS => {
1128             'MetaPropertyName' => 127,
1129             'StringLiteral' => 126,
1130             'MetaBody' => 212
1131             }
1132             },
1133             {#State 125
1134             DEFAULT => -192
1135             },
1136             {#State 126
1137             DEFAULT => -197
1138             },
1139             {#State 127
1140             ACTIONS => {
1141             'UTF8_STRING_LITERAL' => 87,
1142             'STRING_LITERAL' => 88
1143             },
1144             GOTOS => {
1145             'MetaContent' => 214,
1146             'StringLiteral' => 213
1147             }
1148             },
1149             {#State 128
1150             ACTIONS => {
1151             'UTF8_STRING_LITERAL' => 87,
1152             'STRING_LITERAL' => 88
1153             },
1154             GOTOS => {
1155             'MetaPropertyName' => 127,
1156             'StringLiteral' => 126,
1157             'MetaBody' => 215
1158             }
1159             },
1160             {#State 129
1161             DEFAULT => -186
1162             },
1163             {#State 130
1164             ACTIONS => {
1165             'PATH' => 216
1166             },
1167             DEFAULT => -185
1168             },
1169             {#State 131
1170             DEFAULT => -158
1171             },
1172             {#State 132
1173             DEFAULT => -154
1174             },
1175             {#State 133
1176             DEFAULT => -161
1177             },
1178             {#State 134
1179             DEFAULT => -39
1180             },
1181             {#State 135
1182             ACTIONS => {
1183             "--" => 180,
1184             "(" => -21,
1185             "." => -23,
1186             "++" => 184,
1187             "#" => -22
1188             },
1189             DEFAULT => -9
1190             },
1191             {#State 136
1192             ACTIONS => {
1193             "-" => 58,
1194             "~" => 92,
1195             "+" => 75,
1196             'INTEGER_LITERAL' => 76,
1197             "++" => 110,
1198             "!" => 63,
1199             'TRUE_LITERAL' => 93,
1200             'ISVALID' => 80,
1201             'FLOAT_LITERAL' => 95,
1202             "--" => 96,
1203             'IDENTIFIER' => 135,
1204             'FALSE_LITERAL' => 99,
1205             'TYPEOF' => 66,
1206             "(" => 102,
1207             'UTF8_STRING_LITERAL' => 87,
1208             'STRING_LITERAL' => 88,
1209             'INVALID_LITERAL' => 89
1210             },
1211             GOTOS => {
1212             'Literal' => 117,
1213             'ExternalScriptFunctionCall' => 118,
1214             'FunctionName' => 107,
1215             'PostfixExpression' => 119,
1216             'StringLiteral' => 83,
1217             'ExternalScriptName' => 77,
1218             'MultiplicativeExpression' => 62,
1219             'PrimaryExpression' => 69,
1220             'LibraryFunctionCall' => 79,
1221             'ShiftExpression' => 217,
1222             'LocalScriptFunctionCall' => 86,
1223             'UnaryExpression' => 72,
1224             'AdditiveExpression' => 121,
1225             'LibraryName' => 81,
1226             'CallExpression' => 65
1227             }
1228             },
1229             {#State 137
1230             ACTIONS => {
1231             "-" => 58,
1232             "~" => 92,
1233             "+" => 75,
1234             'INTEGER_LITERAL' => 76,
1235             "++" => 110,
1236             "!" => 63,
1237             'TRUE_LITERAL' => 93,
1238             'ISVALID' => 80,
1239             'FLOAT_LITERAL' => 95,
1240             "--" => 96,
1241             'IDENTIFIER' => 135,
1242             'FALSE_LITERAL' => 99,
1243             'TYPEOF' => 66,
1244             "(" => 102,
1245             'UTF8_STRING_LITERAL' => 87,
1246             'STRING_LITERAL' => 88,
1247             'INVALID_LITERAL' => 89
1248             },
1249             GOTOS => {
1250             'Literal' => 117,
1251             'ExternalScriptFunctionCall' => 118,
1252             'FunctionName' => 107,
1253             'PostfixExpression' => 119,
1254             'StringLiteral' => 83,
1255             'ExternalScriptName' => 77,
1256             'MultiplicativeExpression' => 62,
1257             'PrimaryExpression' => 69,
1258             'LibraryFunctionCall' => 79,
1259             'ShiftExpression' => 218,
1260             'LocalScriptFunctionCall' => 86,
1261             'UnaryExpression' => 72,
1262             'AdditiveExpression' => 121,
1263             'LibraryName' => 81,
1264             'CallExpression' => 65
1265             }
1266             },
1267             {#State 138
1268             ACTIONS => {
1269             "-" => 58,
1270             "~" => 92,
1271             "+" => 75,
1272             'INTEGER_LITERAL' => 76,
1273             "++" => 110,
1274             "!" => 63,
1275             'TRUE_LITERAL' => 93,
1276             'ISVALID' => 80,
1277             'FLOAT_LITERAL' => 95,
1278             "--" => 96,
1279             'IDENTIFIER' => 135,
1280             'FALSE_LITERAL' => 99,
1281             'TYPEOF' => 66,
1282             "(" => 102,
1283             'UTF8_STRING_LITERAL' => 87,
1284             'STRING_LITERAL' => 88,
1285             'INVALID_LITERAL' => 89
1286             },
1287             GOTOS => {
1288             'Literal' => 117,
1289             'ExternalScriptFunctionCall' => 118,
1290             'FunctionName' => 107,
1291             'PostfixExpression' => 119,
1292             'StringLiteral' => 83,
1293             'ExternalScriptName' => 77,
1294             'MultiplicativeExpression' => 62,
1295             'PrimaryExpression' => 69,
1296             'LibraryFunctionCall' => 79,
1297             'ShiftExpression' => 219,
1298             'LocalScriptFunctionCall' => 86,
1299             'UnaryExpression' => 72,
1300             'AdditiveExpression' => 121,
1301             'LibraryName' => 81,
1302             'CallExpression' => 65
1303             }
1304             },
1305             {#State 139
1306             ACTIONS => {
1307             "-" => 58,
1308             "~" => 92,
1309             "+" => 75,
1310             'INTEGER_LITERAL' => 76,
1311             "++" => 110,
1312             "!" => 63,
1313             'TRUE_LITERAL' => 93,
1314             'ISVALID' => 80,
1315             'FLOAT_LITERAL' => 95,
1316             "--" => 96,
1317             'IDENTIFIER' => 135,
1318             'FALSE_LITERAL' => 99,
1319             'TYPEOF' => 66,
1320             "(" => 102,
1321             'UTF8_STRING_LITERAL' => 87,
1322             'STRING_LITERAL' => 88,
1323             'INVALID_LITERAL' => 89
1324             },
1325             GOTOS => {
1326             'Literal' => 117,
1327             'ExternalScriptFunctionCall' => 118,
1328             'FunctionName' => 107,
1329             'PostfixExpression' => 119,
1330             'StringLiteral' => 83,
1331             'ExternalScriptName' => 77,
1332             'MultiplicativeExpression' => 62,
1333             'PrimaryExpression' => 69,
1334             'LibraryFunctionCall' => 79,
1335             'ShiftExpression' => 220,
1336             'LocalScriptFunctionCall' => 86,
1337             'UnaryExpression' => 72,
1338             'AdditiveExpression' => 121,
1339             'LibraryName' => 81,
1340             'CallExpression' => 65
1341             }
1342             },
1343             {#State 140
1344             ACTIONS => {
1345             "-" => 58,
1346             "~" => 92,
1347             "+" => 75,
1348             'INTEGER_LITERAL' => 76,
1349             "++" => 110,
1350             "!" => 63,
1351             'TRUE_LITERAL' => 93,
1352             'ISVALID' => 80,
1353             'FLOAT_LITERAL' => 95,
1354             "--" => 96,
1355             'IDENTIFIER' => 135,
1356             'FALSE_LITERAL' => 99,
1357             'TYPEOF' => 66,
1358             "(" => 102,
1359             'UTF8_STRING_LITERAL' => 87,
1360             'STRING_LITERAL' => 88,
1361             'INVALID_LITERAL' => 89
1362             },
1363             GOTOS => {
1364             'Literal' => 117,
1365             'ExternalScriptFunctionCall' => 118,
1366             'FunctionName' => 107,
1367             'PostfixExpression' => 119,
1368             'StringLiteral' => 83,
1369             'ExternalScriptName' => 77,
1370             'PrimaryExpression' => 69,
1371             'LibraryFunctionCall' => 79,
1372             'LocalScriptFunctionCall' => 86,
1373             'UnaryExpression' => 221,
1374             'LibraryName' => 81,
1375             'CallExpression' => 65
1376             }
1377             },
1378             {#State 141
1379             ACTIONS => {
1380             "-" => 58,
1381             "~" => 92,
1382             "+" => 75,
1383             'INTEGER_LITERAL' => 76,
1384             "++" => 110,
1385             "!" => 63,
1386             'TRUE_LITERAL' => 93,
1387             'ISVALID' => 80,
1388             'FLOAT_LITERAL' => 95,
1389             "--" => 96,
1390             'IDENTIFIER' => 135,
1391             'FALSE_LITERAL' => 99,
1392             'TYPEOF' => 66,
1393             "(" => 102,
1394             'UTF8_STRING_LITERAL' => 87,
1395             'STRING_LITERAL' => 88,
1396             'INVALID_LITERAL' => 89
1397             },
1398             GOTOS => {
1399             'Literal' => 117,
1400             'ExternalScriptFunctionCall' => 118,
1401             'FunctionName' => 107,
1402             'PostfixExpression' => 119,
1403             'StringLiteral' => 83,
1404             'ExternalScriptName' => 77,
1405             'PrimaryExpression' => 69,
1406             'LibraryFunctionCall' => 79,
1407             'LocalScriptFunctionCall' => 86,
1408             'UnaryExpression' => 222,
1409             'LibraryName' => 81,
1410             'CallExpression' => 65
1411             }
1412             },
1413             {#State 142
1414             ACTIONS => {
1415             "-" => 58,
1416             "~" => 92,
1417             "+" => 75,
1418             'INTEGER_LITERAL' => 76,
1419             "++" => 110,
1420             "!" => 63,
1421             'TRUE_LITERAL' => 93,
1422             'ISVALID' => 80,
1423             'FLOAT_LITERAL' => 95,
1424             "--" => 96,
1425             'IDENTIFIER' => 135,
1426             'FALSE_LITERAL' => 99,
1427             'TYPEOF' => 66,
1428             "(" => 102,
1429             'UTF8_STRING_LITERAL' => 87,
1430             'STRING_LITERAL' => 88,
1431             'INVALID_LITERAL' => 89
1432             },
1433             GOTOS => {
1434             'Literal' => 117,
1435             'ExternalScriptFunctionCall' => 118,
1436             'FunctionName' => 107,
1437             'PostfixExpression' => 119,
1438             'StringLiteral' => 83,
1439             'ExternalScriptName' => 77,
1440             'PrimaryExpression' => 69,
1441             'LibraryFunctionCall' => 79,
1442             'LocalScriptFunctionCall' => 86,
1443             'UnaryExpression' => 223,
1444             'LibraryName' => 81,
1445             'CallExpression' => 65
1446             }
1447             },
1448             {#State 143
1449             ACTIONS => {
1450             "-" => 58,
1451             "~" => 92,
1452             "+" => 75,
1453             'INTEGER_LITERAL' => 76,
1454             "++" => 110,
1455             "!" => 63,
1456             'TRUE_LITERAL' => 93,
1457             'ISVALID' => 80,
1458             'FLOAT_LITERAL' => 95,
1459             "--" => 96,
1460             'IDENTIFIER' => 135,
1461             'FALSE_LITERAL' => 99,
1462             'TYPEOF' => 66,
1463             "(" => 102,
1464             'UTF8_STRING_LITERAL' => 87,
1465             'STRING_LITERAL' => 88,
1466             'INVALID_LITERAL' => 89
1467             },
1468             GOTOS => {
1469             'Literal' => 117,
1470             'ExternalScriptFunctionCall' => 118,
1471             'FunctionName' => 107,
1472             'PostfixExpression' => 119,
1473             'StringLiteral' => 83,
1474             'ExternalScriptName' => 77,
1475             'PrimaryExpression' => 69,
1476             'LibraryFunctionCall' => 79,
1477             'LocalScriptFunctionCall' => 86,
1478             'UnaryExpression' => 224,
1479             'LibraryName' => 81,
1480             'CallExpression' => 65
1481             }
1482             },
1483             {#State 144
1484             DEFAULT => -41
1485             },
1486             {#State 145
1487             DEFAULT => -34
1488             },
1489             {#State 146
1490             ACTIONS => {
1491             "-" => 58,
1492             "~" => 92,
1493             "+" => 75,
1494             'INTEGER_LITERAL' => 76,
1495             "++" => 110,
1496             "!" => 63,
1497             'TRUE_LITERAL' => 93,
1498             'ISVALID' => 80,
1499             'FLOAT_LITERAL' => 95,
1500             "--" => 96,
1501             'IDENTIFIER' => 135,
1502             'FALSE_LITERAL' => 99,
1503             'TYPEOF' => 66,
1504             "(" => 102,
1505             'UTF8_STRING_LITERAL' => 87,
1506             'STRING_LITERAL' => 88,
1507             'INVALID_LITERAL' => 89
1508             },
1509             GOTOS => {
1510             'BitwiseANDExpression' => 73,
1511             'RelationalExpression' => 60,
1512             'FunctionName' => 107,
1513             'ExternalScriptName' => 77,
1514             'MultiplicativeExpression' => 62,
1515             'EqualityExpression' => 109,
1516             'LibraryFunctionCall' => 79,
1517             'BitwiseORExpression' => 225,
1518             'LibraryName' => 81,
1519             'CallExpression' => 65,
1520             'Literal' => 117,
1521             'ExternalScriptFunctionCall' => 118,
1522             'BitwiseXORExpression' => 101,
1523             'PostfixExpression' => 119,
1524             'StringLiteral' => 83,
1525             'PrimaryExpression' => 69,
1526             'ShiftExpression' => 85,
1527             'LocalScriptFunctionCall' => 86,
1528             'UnaryExpression' => 72,
1529             'AdditiveExpression' => 121
1530             }
1531             },
1532             {#State 147
1533             DEFAULT => -147
1534             },
1535             {#State 148
1536             DEFAULT => -146
1537             },
1538             {#State 149
1539             ACTIONS => {
1540             "-" => 58,
1541             "~" => 92,
1542             "+" => 75,
1543             'INTEGER_LITERAL' => 76,
1544             "++" => 110,
1545             "!" => 63,
1546             'TRUE_LITERAL' => 93,
1547             'ISVALID' => 80,
1548             'FLOAT_LITERAL' => 95,
1549             "--" => 96,
1550             'IDENTIFIER' => 135,
1551             'FALSE_LITERAL' => 99,
1552             'TYPEOF' => 66,
1553             "(" => 102,
1554             'UTF8_STRING_LITERAL' => 87,
1555             'STRING_LITERAL' => 88,
1556             'INVALID_LITERAL' => 89
1557             },
1558             GOTOS => {
1559             'RelationalExpression' => 60,
1560             'FunctionName' => 107,
1561             'ExternalScriptName' => 77,
1562             'MultiplicativeExpression' => 62,
1563             'EqualityExpression' => 226,
1564             'LibraryFunctionCall' => 79,
1565             'LibraryName' => 81,
1566             'CallExpression' => 65,
1567             'ExternalScriptFunctionCall' => 118,
1568             'Literal' => 117,
1569             'StringLiteral' => 83,
1570             'PostfixExpression' => 119,
1571             'PrimaryExpression' => 69,
1572             'ShiftExpression' => 85,
1573             'LocalScriptFunctionCall' => 86,
1574             'UnaryExpression' => 72,
1575             'AdditiveExpression' => 121
1576             }
1577             },
1578             {#State 150
1579             DEFAULT => -131
1580             },
1581             {#State 151
1582             ACTIONS => {
1583             "-" => 58,
1584             ";" => 229,
1585             "~" => 92,
1586             "+" => 75,
1587             'INTEGER_LITERAL' => 76,
1588             "++" => 110,
1589             "!" => 63,
1590             'TRUE_LITERAL' => 93,
1591             'ISVALID' => 80,
1592             'error' => 227,
1593             'FLOAT_LITERAL' => 95,
1594             "--" => 96,
1595             'IDENTIFIER' => 98,
1596             'FALSE_LITERAL' => 99,
1597             'TYPEOF' => 66,
1598             "(" => 102,
1599             'UTF8_STRING_LITERAL' => 87,
1600             'VAR' => 228,
1601             'STRING_LITERAL' => 88,
1602             'INVALID_LITERAL' => 89
1603             },
1604             GOTOS => {
1605             'BitwiseANDExpression' => 73,
1606             'RelationalExpression' => 60,
1607             'FunctionName' => 107,
1608             'ExternalScriptName' => 77,
1609             'MultiplicativeExpression' => 62,
1610             'EqualityExpression' => 109,
1611             'LibraryFunctionCall' => 79,
1612             'BitwiseORExpression' => 113,
1613             'LibraryName' => 81,
1614             'CallExpression' => 65,
1615             'Expression' => 230,
1616             'Literal' => 117,
1617             'ExternalScriptFunctionCall' => 118,
1618             'BitwiseXORExpression' => 101,
1619             'PostfixExpression' => 119,
1620             'StringLiteral' => 83,
1621             'LogicalANDExpression' => 67,
1622             'PrimaryExpression' => 69,
1623             'ShiftExpression' => 85,
1624             'LocalScriptFunctionCall' => 86,
1625             'UnaryExpression' => 72,
1626             'ConditionalExpression' => 71,
1627             'AssignmentExpression' => 70,
1628             'AdditiveExpression' => 121,
1629             'LogicalORExpression' => 105
1630             }
1631             },
1632             {#State 152
1633             DEFAULT => -38
1634             },
1635             {#State 153
1636             ACTIONS => {
1637             'IDENTIFIER' => 231
1638             },
1639             GOTOS => {
1640             'FunctionName' => 232
1641             }
1642             },
1643             {#State 154
1644             DEFAULT => -35
1645             },
1646             {#State 155
1647             ACTIONS => {
1648             'IDENTIFIER' => 231
1649             },
1650             GOTOS => {
1651             'FunctionName' => 233
1652             }
1653             },
1654             {#State 156
1655             ACTIONS => {
1656             "-" => 58,
1657             "~" => 92,
1658             "+" => 75,
1659             'INTEGER_LITERAL' => 76,
1660             "++" => 110,
1661             "!" => 63,
1662             'TRUE_LITERAL' => 93,
1663             'ISVALID' => 80,
1664             'FLOAT_LITERAL' => 95,
1665             "--" => 96,
1666             'IDENTIFIER' => 135,
1667             'FALSE_LITERAL' => 99,
1668             'TYPEOF' => 66,
1669             "(" => 102,
1670             'UTF8_STRING_LITERAL' => 87,
1671             'STRING_LITERAL' => 88,
1672             'INVALID_LITERAL' => 89
1673             },
1674             GOTOS => {
1675             'Literal' => 117,
1676             'ExternalScriptFunctionCall' => 118,
1677             'FunctionName' => 107,
1678             'PostfixExpression' => 119,
1679             'StringLiteral' => 83,
1680             'ExternalScriptName' => 77,
1681             'MultiplicativeExpression' => 62,
1682             'PrimaryExpression' => 69,
1683             'LibraryFunctionCall' => 79,
1684             'LocalScriptFunctionCall' => 86,
1685             'UnaryExpression' => 72,
1686             'AdditiveExpression' => 234,
1687             'LibraryName' => 81,
1688             'CallExpression' => 65
1689             }
1690             },
1691             {#State 157
1692             ACTIONS => {
1693             "-" => 58,
1694             "~" => 92,
1695             "+" => 75,
1696             'INTEGER_LITERAL' => 76,
1697             "++" => 110,
1698             "!" => 63,
1699             'TRUE_LITERAL' => 93,
1700             'ISVALID' => 80,
1701             'FLOAT_LITERAL' => 95,
1702             "--" => 96,
1703             'IDENTIFIER' => 135,
1704             'FALSE_LITERAL' => 99,
1705             'TYPEOF' => 66,
1706             "(" => 102,
1707             'UTF8_STRING_LITERAL' => 87,
1708             'STRING_LITERAL' => 88,
1709             'INVALID_LITERAL' => 89
1710             },
1711             GOTOS => {
1712             'Literal' => 117,
1713             'ExternalScriptFunctionCall' => 118,
1714             'FunctionName' => 107,
1715             'PostfixExpression' => 119,
1716             'StringLiteral' => 83,
1717             'ExternalScriptName' => 77,
1718             'MultiplicativeExpression' => 62,
1719             'PrimaryExpression' => 69,
1720             'LibraryFunctionCall' => 79,
1721             'LocalScriptFunctionCall' => 86,
1722             'UnaryExpression' => 72,
1723             'AdditiveExpression' => 235,
1724             'LibraryName' => 81,
1725             'CallExpression' => 65
1726             }
1727             },
1728             {#State 158
1729             ACTIONS => {
1730             "-" => 58,
1731             "~" => 92,
1732             "+" => 75,
1733             'INTEGER_LITERAL' => 76,
1734             "++" => 110,
1735             "!" => 63,
1736             'TRUE_LITERAL' => 93,
1737             'ISVALID' => 80,
1738             'FLOAT_LITERAL' => 95,
1739             "--" => 96,
1740             'IDENTIFIER' => 135,
1741             'FALSE_LITERAL' => 99,
1742             'TYPEOF' => 66,
1743             "(" => 102,
1744             'UTF8_STRING_LITERAL' => 87,
1745             'STRING_LITERAL' => 88,
1746             'INVALID_LITERAL' => 89
1747             },
1748             GOTOS => {
1749             'Literal' => 117,
1750             'ExternalScriptFunctionCall' => 118,
1751             'FunctionName' => 107,
1752             'PostfixExpression' => 119,
1753             'StringLiteral' => 83,
1754             'ExternalScriptName' => 77,
1755             'MultiplicativeExpression' => 62,
1756             'PrimaryExpression' => 69,
1757             'LibraryFunctionCall' => 79,
1758             'LocalScriptFunctionCall' => 86,
1759             'UnaryExpression' => 72,
1760             'AdditiveExpression' => 236,
1761             'LibraryName' => 81,
1762             'CallExpression' => 65
1763             }
1764             },
1765             {#State 159
1766             DEFAULT => -101
1767             },
1768             {#State 160
1769             DEFAULT => -102
1770             },
1771             {#State 161
1772             DEFAULT => -105
1773             },
1774             {#State 162
1775             DEFAULT => -149
1776             },
1777             {#State 163
1778             DEFAULT => -148
1779             },
1780             {#State 164
1781             DEFAULT => -40
1782             },
1783             {#State 165
1784             DEFAULT => -119
1785             },
1786             {#State 166
1787             ACTIONS => {
1788             "-" => 58,
1789             "~" => 92,
1790             "+" => 75,
1791             'INTEGER_LITERAL' => 76,
1792             "++" => 110,
1793             "!" => 63,
1794             'TRUE_LITERAL' => 93,
1795             'ISVALID' => 80,
1796             'error' => 237,
1797             'FLOAT_LITERAL' => 95,
1798             "--" => 96,
1799             'IDENTIFIER' => 98,
1800             'FALSE_LITERAL' => 99,
1801             'TYPEOF' => 66,
1802             "(" => 102,
1803             'UTF8_STRING_LITERAL' => 87,
1804             'STRING_LITERAL' => 88,
1805             'INVALID_LITERAL' => 89
1806             },
1807             GOTOS => {
1808             'BitwiseANDExpression' => 73,
1809             'RelationalExpression' => 60,
1810             'FunctionName' => 107,
1811             'ExternalScriptName' => 77,
1812             'MultiplicativeExpression' => 62,
1813             'EqualityExpression' => 109,
1814             'LibraryFunctionCall' => 79,
1815             'BitwiseORExpression' => 113,
1816             'LibraryName' => 81,
1817             'CallExpression' => 65,
1818             'Expression' => 238,
1819             'Literal' => 117,
1820             'ExternalScriptFunctionCall' => 118,
1821             'BitwiseXORExpression' => 101,
1822             'PostfixExpression' => 119,
1823             'StringLiteral' => 83,
1824             'LogicalANDExpression' => 67,
1825             'PrimaryExpression' => 69,
1826             'ShiftExpression' => 85,
1827             'LocalScriptFunctionCall' => 86,
1828             'UnaryExpression' => 72,
1829             'ConditionalExpression' => 71,
1830             'AssignmentExpression' => 70,
1831             'AdditiveExpression' => 121,
1832             'LogicalORExpression' => 105
1833             }
1834             },
1835             {#State 167
1836             DEFAULT => -37
1837             },
1838             {#State 168
1839             DEFAULT => -140
1840             },
1841             {#State 169
1842             ACTIONS => {
1843             "-" => 58,
1844             "~" => 92,
1845             "+" => 75,
1846             'INTEGER_LITERAL' => 76,
1847             "++" => 110,
1848             "!" => 63,
1849             'TRUE_LITERAL' => 93,
1850             'ISVALID' => 80,
1851             'error' => 239,
1852             ")" => 240,
1853             'FLOAT_LITERAL' => 95,
1854             "--" => 96,
1855             'IDENTIFIER' => 98,
1856             'FALSE_LITERAL' => 99,
1857             'TYPEOF' => 66,
1858             "(" => 102,
1859             'UTF8_STRING_LITERAL' => 87,
1860             'STRING_LITERAL' => 88,
1861             'INVALID_LITERAL' => 89
1862             },
1863             GOTOS => {
1864             'BitwiseANDExpression' => 73,
1865             'RelationalExpression' => 60,
1866             'FunctionName' => 107,
1867             'ExternalScriptName' => 77,
1868             'MultiplicativeExpression' => 62,
1869             'EqualityExpression' => 109,
1870             'LibraryFunctionCall' => 79,
1871             'BitwiseORExpression' => 113,
1872             'LibraryName' => 81,
1873             'CallExpression' => 65,
1874             'Expression' => 241,
1875             'Literal' => 117,
1876             'ExternalScriptFunctionCall' => 118,
1877             'BitwiseXORExpression' => 101,
1878             'PostfixExpression' => 119,
1879             'StringLiteral' => 83,
1880             'LogicalANDExpression' => 67,
1881             'PrimaryExpression' => 69,
1882             'ShiftExpression' => 85,
1883             'LocalScriptFunctionCall' => 86,
1884             'UnaryExpression' => 72,
1885             'ConditionalExpression' => 71,
1886             'AssignmentExpression' => 70,
1887             'AdditiveExpression' => 121,
1888             'LogicalORExpression' => 105
1889             }
1890             },
1891             {#State 170
1892             ACTIONS => {
1893             ";" => 243,
1894             'error' => 242,
1895             "," => 207
1896             }
1897             },
1898             {#State 171
1899             DEFAULT => -78
1900             },
1901             {#State 172
1902             DEFAULT => -88
1903             },
1904             {#State 173
1905             ACTIONS => {
1906             "-" => 58,
1907             "~" => 92,
1908             "+" => 75,
1909             'INTEGER_LITERAL' => 76,
1910             "++" => 110,
1911             "!" => 63,
1912             'TRUE_LITERAL' => 93,
1913             'ISVALID' => 80,
1914             'FLOAT_LITERAL' => 95,
1915             "--" => 96,
1916             'IDENTIFIER' => 98,
1917             'FALSE_LITERAL' => 99,
1918             'TYPEOF' => 66,
1919             "(" => 102,
1920             'UTF8_STRING_LITERAL' => 87,
1921             'STRING_LITERAL' => 88,
1922             'INVALID_LITERAL' => 89
1923             },
1924             GOTOS => {
1925             'BitwiseANDExpression' => 73,
1926             'RelationalExpression' => 60,
1927             'FunctionName' => 107,
1928             'ExternalScriptName' => 77,
1929             'MultiplicativeExpression' => 62,
1930             'EqualityExpression' => 109,
1931             'LibraryFunctionCall' => 79,
1932             'BitwiseORExpression' => 113,
1933             'LibraryName' => 81,
1934             'CallExpression' => 65,
1935             'Literal' => 117,
1936             'ExternalScriptFunctionCall' => 118,
1937             'BitwiseXORExpression' => 101,
1938             'PostfixExpression' => 119,
1939             'StringLiteral' => 83,
1940             'LogicalANDExpression' => 67,
1941             'PrimaryExpression' => 69,
1942             'ShiftExpression' => 85,
1943             'LocalScriptFunctionCall' => 86,
1944             'AssignmentExpression' => 244,
1945             'UnaryExpression' => 72,
1946             'ConditionalExpression' => 71,
1947             'AdditiveExpression' => 121,
1948             'LogicalORExpression' => 105
1949             }
1950             },
1951             {#State 174
1952             DEFAULT => -83
1953             },
1954             {#State 175
1955             DEFAULT => -87
1956             },
1957             {#State 176
1958             DEFAULT => -84
1959             },
1960             {#State 177
1961             DEFAULT => -85
1962             },
1963             {#State 178
1964             DEFAULT => -89
1965             },
1966             {#State 179
1967             DEFAULT => -86
1968             },
1969             {#State 180
1970             DEFAULT => -32
1971             },
1972             {#State 181
1973             DEFAULT => -82
1974             },
1975             {#State 182
1976             DEFAULT => -79
1977             },
1978             {#State 183
1979             DEFAULT => -80
1980             },
1981             {#State 184
1982             DEFAULT => -31
1983             },
1984             {#State 185
1985             DEFAULT => -81
1986             },
1987             {#State 186
1988             DEFAULT => -77
1989             },
1990             {#State 187
1991             ACTIONS => {
1992             "-" => 58,
1993             "~" => 92,
1994             "+" => 75,
1995             'INTEGER_LITERAL' => 76,
1996             "++" => 110,
1997             "!" => 63,
1998             'TRUE_LITERAL' => 93,
1999             'ISVALID' => 80,
2000             'FLOAT_LITERAL' => 95,
2001             "--" => 96,
2002             'IDENTIFIER' => 135,
2003             'FALSE_LITERAL' => 99,
2004             'TYPEOF' => 66,
2005             "(" => 102,
2006             'UTF8_STRING_LITERAL' => 87,
2007             'STRING_LITERAL' => 88,
2008             'INVALID_LITERAL' => 89
2009             },
2010             GOTOS => {
2011             'BitwiseANDExpression' => 245,
2012             'RelationalExpression' => 60,
2013             'FunctionName' => 107,
2014             'ExternalScriptName' => 77,
2015             'MultiplicativeExpression' => 62,
2016             'EqualityExpression' => 109,
2017             'LibraryFunctionCall' => 79,
2018             'LibraryName' => 81,
2019             'CallExpression' => 65,
2020             'ExternalScriptFunctionCall' => 118,
2021             'Literal' => 117,
2022             'PostfixExpression' => 119,
2023             'StringLiteral' => 83,
2024             'PrimaryExpression' => 69,
2025             'ShiftExpression' => 85,
2026             'LocalScriptFunctionCall' => 86,
2027             'UnaryExpression' => 72,
2028             'AdditiveExpression' => 121
2029             }
2030             },
2031             {#State 188
2032             DEFAULT => -12
2033             },
2034             {#State 189
2035             ACTIONS => {
2036             'error' => 246,
2037             "," => 207,
2038             ")" => 247
2039             }
2040             },
2041             {#State 190
2042             ACTIONS => {
2043             ";" => 250,
2044             'error' => 249,
2045             "," => 248
2046             }
2047             },
2048             {#State 191
2049             DEFAULT => -107
2050             },
2051             {#State 192
2052             ACTIONS => {
2053             "=" => 252
2054             },
2055             DEFAULT => -112,
2056             GOTOS => {
2057             'VariableInitializer' => 251
2058             }
2059             },
2060             {#State 193
2061             DEFAULT => -109
2062             },
2063             {#State 194
2064             ACTIONS => {
2065             "-" => 58,
2066             "~" => 92,
2067             "+" => 75,
2068             'INTEGER_LITERAL' => 76,
2069             "++" => 110,
2070             "!" => 63,
2071             'TRUE_LITERAL' => 93,
2072             'ISVALID' => 80,
2073             'FLOAT_LITERAL' => 95,
2074             "--" => 96,
2075             'IDENTIFIER' => 98,
2076             'FALSE_LITERAL' => 99,
2077             'TYPEOF' => 66,
2078             "(" => 102,
2079             'UTF8_STRING_LITERAL' => 87,
2080             'STRING_LITERAL' => 88,
2081             'INVALID_LITERAL' => 89
2082             },
2083             GOTOS => {
2084             'BitwiseANDExpression' => 73,
2085             'RelationalExpression' => 60,
2086             'FunctionName' => 107,
2087             'ExternalScriptName' => 77,
2088             'MultiplicativeExpression' => 62,
2089             'EqualityExpression' => 109,
2090             'LibraryFunctionCall' => 79,
2091             'BitwiseORExpression' => 113,
2092             'LibraryName' => 81,
2093             'CallExpression' => 65,
2094             'Literal' => 117,
2095             'ExternalScriptFunctionCall' => 118,
2096             'BitwiseXORExpression' => 101,
2097             'PostfixExpression' => 119,
2098             'StringLiteral' => 83,
2099             'LogicalANDExpression' => 67,
2100             'PrimaryExpression' => 69,
2101             'ShiftExpression' => 85,
2102             'LocalScriptFunctionCall' => 86,
2103             'AssignmentExpression' => 253,
2104             'UnaryExpression' => 72,
2105             'ConditionalExpression' => 71,
2106             'AdditiveExpression' => 121,
2107             'LogicalORExpression' => 105
2108             }
2109             },
2110             {#State 195
2111             ACTIONS => {
2112             "-" => 58,
2113             "~" => 92,
2114             "+" => 75,
2115             'INTEGER_LITERAL' => 76,
2116             "++" => 110,
2117             "!" => 63,
2118             'TRUE_LITERAL' => 93,
2119             'ISVALID' => 80,
2120             'FLOAT_LITERAL' => 95,
2121             "--" => 96,
2122             'IDENTIFIER' => 135,
2123             'FALSE_LITERAL' => 99,
2124             'TYPEOF' => 66,
2125             "(" => 102,
2126             'UTF8_STRING_LITERAL' => 87,
2127             'STRING_LITERAL' => 88,
2128             'INVALID_LITERAL' => 89
2129             },
2130             GOTOS => {
2131             'BitwiseANDExpression' => 73,
2132             'RelationalExpression' => 60,
2133             'FunctionName' => 107,
2134             'ExternalScriptName' => 77,
2135             'MultiplicativeExpression' => 62,
2136             'EqualityExpression' => 109,
2137             'LibraryFunctionCall' => 79,
2138             'BitwiseORExpression' => 113,
2139             'LibraryName' => 81,
2140             'CallExpression' => 65,
2141             'Literal' => 117,
2142             'ExternalScriptFunctionCall' => 118,
2143             'BitwiseXORExpression' => 101,
2144             'PostfixExpression' => 119,
2145             'StringLiteral' => 83,
2146             'LogicalANDExpression' => 254,
2147             'PrimaryExpression' => 69,
2148             'ShiftExpression' => 85,
2149             'LocalScriptFunctionCall' => 86,
2150             'UnaryExpression' => 72,
2151             'AdditiveExpression' => 121
2152             }
2153             },
2154             {#State 196
2155             DEFAULT => -18
2156             },
2157             {#State 197
2158             ACTIONS => {
2159             "-" => 58,
2160             "~" => 92,
2161             "+" => 75,
2162             'INTEGER_LITERAL' => 76,
2163             "++" => 110,
2164             "!" => 63,
2165             'TRUE_LITERAL' => 93,
2166             'ISVALID' => 80,
2167             ")" => 256,
2168             'FLOAT_LITERAL' => 95,
2169             "--" => 96,
2170             'IDENTIFIER' => 98,
2171             'FALSE_LITERAL' => 99,
2172             'TYPEOF' => 66,
2173             "(" => 102,
2174             'UTF8_STRING_LITERAL' => 87,
2175             'STRING_LITERAL' => 88,
2176             'INVALID_LITERAL' => 89
2177             },
2178             GOTOS => {
2179             'BitwiseANDExpression' => 73,
2180             'RelationalExpression' => 60,
2181             'FunctionName' => 107,
2182             'ExternalScriptName' => 77,
2183             'MultiplicativeExpression' => 62,
2184             'EqualityExpression' => 109,
2185             'LibraryFunctionCall' => 79,
2186             'BitwiseORExpression' => 113,
2187             'LibraryName' => 81,
2188             'CallExpression' => 65,
2189             'Literal' => 117,
2190             'ExternalScriptFunctionCall' => 118,
2191             'ArgumentList' => 257,
2192             'BitwiseXORExpression' => 101,
2193             'PostfixExpression' => 119,
2194             'StringLiteral' => 83,
2195             'LogicalANDExpression' => 67,
2196             'PrimaryExpression' => 69,
2197             'ShiftExpression' => 85,
2198             'LocalScriptFunctionCall' => 86,
2199             'AssignmentExpression' => 255,
2200             'UnaryExpression' => 72,
2201             'ConditionalExpression' => 71,
2202             'AdditiveExpression' => 121,
2203             'LogicalORExpression' => 105
2204             }
2205             },
2206             {#State 198
2207             ACTIONS => {
2208             "-" => 58,
2209             "~" => 92,
2210             "+" => 75,
2211             'INTEGER_LITERAL' => 76,
2212             "++" => 110,
2213             "!" => 63,
2214             'TRUE_LITERAL' => 93,
2215             'ISVALID' => 80,
2216             'FLOAT_LITERAL' => 95,
2217             "--" => 96,
2218             'IDENTIFIER' => 135,
2219             'FALSE_LITERAL' => 99,
2220             'TYPEOF' => 66,
2221             "(" => 102,
2222             'UTF8_STRING_LITERAL' => 87,
2223             'STRING_LITERAL' => 88,
2224             'INVALID_LITERAL' => 89
2225             },
2226             GOTOS => {
2227             'Literal' => 117,
2228             'ExternalScriptFunctionCall' => 118,
2229             'RelationalExpression' => 258,
2230             'FunctionName' => 107,
2231             'PostfixExpression' => 119,
2232             'StringLiteral' => 83,
2233             'ExternalScriptName' => 77,
2234             'MultiplicativeExpression' => 62,
2235             'PrimaryExpression' => 69,
2236             'LibraryFunctionCall' => 79,
2237             'LocalScriptFunctionCall' => 86,
2238             'ShiftExpression' => 85,
2239             'UnaryExpression' => 72,
2240             'AdditiveExpression' => 121,
2241             'LibraryName' => 81,
2242             'CallExpression' => 65
2243             }
2244             },
2245             {#State 199
2246             ACTIONS => {
2247             "-" => 58,
2248             "~" => 92,
2249             "+" => 75,
2250             'INTEGER_LITERAL' => 76,
2251             "++" => 110,
2252             "!" => 63,
2253             'TRUE_LITERAL' => 93,
2254             'ISVALID' => 80,
2255             'FLOAT_LITERAL' => 95,
2256             "--" => 96,
2257             'IDENTIFIER' => 135,
2258             'FALSE_LITERAL' => 99,
2259             'TYPEOF' => 66,
2260             "(" => 102,
2261             'UTF8_STRING_LITERAL' => 87,
2262             'STRING_LITERAL' => 88,
2263             'INVALID_LITERAL' => 89
2264             },
2265             GOTOS => {
2266             'Literal' => 117,
2267             'ExternalScriptFunctionCall' => 118,
2268             'RelationalExpression' => 259,
2269             'FunctionName' => 107,
2270             'PostfixExpression' => 119,
2271             'StringLiteral' => 83,
2272             'ExternalScriptName' => 77,
2273             'MultiplicativeExpression' => 62,
2274             'PrimaryExpression' => 69,
2275             'LibraryFunctionCall' => 79,
2276             'LocalScriptFunctionCall' => 86,
2277             'ShiftExpression' => 85,
2278             'UnaryExpression' => 72,
2279             'AdditiveExpression' => 121,
2280             'LibraryName' => 81,
2281             'CallExpression' => 65
2282             }
2283             },
2284             {#State 200
2285             DEFAULT => -36
2286             },
2287             {#State 201
2288             DEFAULT => -152
2289             },
2290             {#State 202
2291             DEFAULT => -150
2292             },
2293             {#State 203
2294             ACTIONS => {
2295             ";" => 261,
2296             'error' => 260,
2297             "," => 207
2298             }
2299             },
2300             {#State 204
2301             ACTIONS => {
2302             "-" => 58,
2303             "~" => 92,
2304             "+" => 75,
2305             'INTEGER_LITERAL' => 76,
2306             "++" => 110,
2307             "!" => 63,
2308             'TRUE_LITERAL' => 93,
2309             'ISVALID' => 80,
2310             'FLOAT_LITERAL' => 95,
2311             "--" => 96,
2312             'IDENTIFIER' => 135,
2313             'FALSE_LITERAL' => 99,
2314             'TYPEOF' => 66,
2315             "(" => 102,
2316             'UTF8_STRING_LITERAL' => 87,
2317             'STRING_LITERAL' => 88,
2318             'INVALID_LITERAL' => 89
2319             },
2320             GOTOS => {
2321             'BitwiseANDExpression' => 73,
2322             'RelationalExpression' => 60,
2323             'FunctionName' => 107,
2324             'ExternalScriptName' => 77,
2325             'MultiplicativeExpression' => 62,
2326             'EqualityExpression' => 109,
2327             'LibraryFunctionCall' => 79,
2328             'LibraryName' => 81,
2329             'CallExpression' => 65,
2330             'Literal' => 117,
2331             'ExternalScriptFunctionCall' => 118,
2332             'BitwiseXORExpression' => 262,
2333             'PostfixExpression' => 119,
2334             'StringLiteral' => 83,
2335             'PrimaryExpression' => 69,
2336             'ShiftExpression' => 85,
2337             'LocalScriptFunctionCall' => 86,
2338             'UnaryExpression' => 72,
2339             'AdditiveExpression' => 121
2340             }
2341             },
2342             {#State 205
2343             DEFAULT => -125
2344             },
2345             {#State 206
2346             ACTIONS => {
2347             "-" => 58,
2348             "~" => 92,
2349             "+" => 75,
2350             'INTEGER_LITERAL' => 76,
2351             "++" => 110,
2352             "!" => 63,
2353             'TRUE_LITERAL' => 93,
2354             'ISVALID' => 80,
2355             'error' => 263,
2356             'FLOAT_LITERAL' => 95,
2357             "--" => 96,
2358             'IDENTIFIER' => 98,
2359             'FALSE_LITERAL' => 99,
2360             'TYPEOF' => 66,
2361             "(" => 102,
2362             'UTF8_STRING_LITERAL' => 87,
2363             'STRING_LITERAL' => 88,
2364             'INVALID_LITERAL' => 89
2365             },
2366             GOTOS => {
2367             'BitwiseANDExpression' => 73,
2368             'RelationalExpression' => 60,
2369             'FunctionName' => 107,
2370             'ExternalScriptName' => 77,
2371             'MultiplicativeExpression' => 62,
2372             'EqualityExpression' => 109,
2373             'LibraryFunctionCall' => 79,
2374             'BitwiseORExpression' => 113,
2375             'LibraryName' => 81,
2376             'CallExpression' => 65,
2377             'Expression' => 264,
2378             'Literal' => 117,
2379             'ExternalScriptFunctionCall' => 118,
2380             'BitwiseXORExpression' => 101,
2381             'PostfixExpression' => 119,
2382             'StringLiteral' => 83,
2383             'LogicalANDExpression' => 67,
2384             'PrimaryExpression' => 69,
2385             'ShiftExpression' => 85,
2386             'LocalScriptFunctionCall' => 86,
2387             'UnaryExpression' => 72,
2388             'ConditionalExpression' => 71,
2389             'AssignmentExpression' => 70,
2390             'AdditiveExpression' => 121,
2391             'LogicalORExpression' => 105
2392             }
2393             },
2394             {#State 207
2395             ACTIONS => {
2396             "-" => 58,
2397             "~" => 92,
2398             "+" => 75,
2399             'INTEGER_LITERAL' => 76,
2400             "++" => 110,
2401             "!" => 63,
2402             'TRUE_LITERAL' => 93,
2403             'ISVALID' => 80,
2404             'FLOAT_LITERAL' => 95,
2405             "--" => 96,
2406             'IDENTIFIER' => 98,
2407             'FALSE_LITERAL' => 99,
2408             'TYPEOF' => 66,
2409             "(" => 102,
2410             'UTF8_STRING_LITERAL' => 87,
2411             'STRING_LITERAL' => 88,
2412             'INVALID_LITERAL' => 89
2413             },
2414             GOTOS => {
2415             'BitwiseANDExpression' => 73,
2416             'RelationalExpression' => 60,
2417             'FunctionName' => 107,
2418             'ExternalScriptName' => 77,
2419             'MultiplicativeExpression' => 62,
2420             'EqualityExpression' => 109,
2421             'LibraryFunctionCall' => 79,
2422             'BitwiseORExpression' => 113,
2423             'LibraryName' => 81,
2424             'CallExpression' => 65,
2425             'Literal' => 117,
2426             'ExternalScriptFunctionCall' => 118,
2427             'BitwiseXORExpression' => 101,
2428             'PostfixExpression' => 119,
2429             'StringLiteral' => 83,
2430             'LogicalANDExpression' => 67,
2431             'PrimaryExpression' => 69,
2432             'ShiftExpression' => 85,
2433             'LocalScriptFunctionCall' => 86,
2434             'AssignmentExpression' => 265,
2435             'UnaryExpression' => 72,
2436             'ConditionalExpression' => 71,
2437             'AdditiveExpression' => 121,
2438             'LogicalORExpression' => 105
2439             }
2440             },
2441             {#State 208
2442             DEFAULT => -116
2443             },
2444             {#State 209
2445             DEFAULT => -115
2446             },
2447             {#State 210
2448             ACTIONS => {
2449             "-" => 58,
2450             "~" => 92,
2451             "+" => 75,
2452             'INTEGER_LITERAL' => 76,
2453             "++" => 110,
2454             "!" => 63,
2455             'TRUE_LITERAL' => 93,
2456             'ISVALID' => 80,
2457             'FLOAT_LITERAL' => 95,
2458             "--" => 96,
2459             'IDENTIFIER' => 135,
2460             'FALSE_LITERAL' => 99,
2461             'TYPEOF' => 66,
2462             "(" => 102,
2463             'UTF8_STRING_LITERAL' => 87,
2464             'STRING_LITERAL' => 88,
2465             'INVALID_LITERAL' => 89
2466             },
2467             GOTOS => {
2468             'Literal' => 117,
2469             'ExternalScriptFunctionCall' => 118,
2470             'FunctionName' => 107,
2471             'PostfixExpression' => 119,
2472             'StringLiteral' => 83,
2473             'ExternalScriptName' => 77,
2474             'MultiplicativeExpression' => 266,
2475             'PrimaryExpression' => 69,
2476             'LibraryFunctionCall' => 79,
2477             'LocalScriptFunctionCall' => 86,
2478             'UnaryExpression' => 72,
2479             'LibraryName' => 81,
2480             'CallExpression' => 65
2481             }
2482             },
2483             {#State 211
2484             ACTIONS => {
2485             "-" => 58,
2486             "~" => 92,
2487             "+" => 75,
2488             'INTEGER_LITERAL' => 76,
2489             "++" => 110,
2490             "!" => 63,
2491             'TRUE_LITERAL' => 93,
2492             'ISVALID' => 80,
2493             'FLOAT_LITERAL' => 95,
2494             "--" => 96,
2495             'IDENTIFIER' => 135,
2496             'FALSE_LITERAL' => 99,
2497             'TYPEOF' => 66,
2498             "(" => 102,
2499             'UTF8_STRING_LITERAL' => 87,
2500             'STRING_LITERAL' => 88,
2501             'INVALID_LITERAL' => 89
2502             },
2503             GOTOS => {
2504             'Literal' => 117,
2505             'ExternalScriptFunctionCall' => 118,
2506             'FunctionName' => 107,
2507             'PostfixExpression' => 119,
2508             'StringLiteral' => 83,
2509             'ExternalScriptName' => 77,
2510             'MultiplicativeExpression' => 267,
2511             'PrimaryExpression' => 69,
2512             'LibraryFunctionCall' => 79,
2513             'LocalScriptFunctionCall' => 86,
2514             'UnaryExpression' => 72,
2515             'LibraryName' => 81,
2516             'CallExpression' => 65
2517             }
2518             },
2519             {#State 212
2520             DEFAULT => -193
2521             },
2522             {#State 213
2523             DEFAULT => -198
2524             },
2525             {#State 214
2526             ACTIONS => {
2527             'UTF8_STRING_LITERAL' => 87,
2528             'STRING_LITERAL' => 88
2529             },
2530             DEFAULT => -196,
2531             GOTOS => {
2532             'MetaScheme' => 268,
2533             'StringLiteral' => 269
2534             }
2535             },
2536             {#State 215
2537             DEFAULT => -194
2538             },
2539             {#State 216
2540             ACTIONS => {
2541             'UTF8_STRING_LITERAL' => 87,
2542             'STRING_LITERAL' => 88
2543             },
2544             GOTOS => {
2545             'StringLiteral' => 270
2546             }
2547             },
2548             {#State 217
2549             ACTIONS => {
2550             ">>" => 156,
2551             ">>>" => 157,
2552             "<<" => 158
2553             },
2554             DEFAULT => -55
2555             },
2556             {#State 218
2557             ACTIONS => {
2558             ">>" => 156,
2559             ">>>" => 157,
2560             "<<" => 158
2561             },
2562             DEFAULT => -58
2563             },
2564             {#State 219
2565             ACTIONS => {
2566             ">>" => 156,
2567             ">>>" => 157,
2568             "<<" => 158
2569             },
2570             DEFAULT => -57
2571             },
2572             {#State 220
2573             ACTIONS => {
2574             ">>" => 156,
2575             ">>>" => 157,
2576             "<<" => 158
2577             },
2578             DEFAULT => -56
2579             },
2580             {#State 221
2581             DEFAULT => -46
2582             },
2583             {#State 222
2584             DEFAULT => -43
2585             },
2586             {#State 223
2587             DEFAULT => -45
2588             },
2589             {#State 224
2590             DEFAULT => -44
2591             },
2592             {#State 225
2593             ACTIONS => {
2594             "|" => 204
2595             },
2596             DEFAULT => -69
2597             },
2598             {#State 226
2599             ACTIONS => {
2600             "!=" => 199,
2601             "==" => 198
2602             },
2603             DEFAULT => -63
2604             },
2605             {#State 227
2606             DEFAULT => -132
2607             },
2608             {#State 228
2609             ACTIONS => {
2610             'IDENTIFIER' => 192,
2611             'error' => 272
2612             },
2613             GOTOS => {
2614             'VariableDeclaration' => 193,
2615             'VariableDeclarationList' => 271
2616             }
2617             },
2618             {#State 229
2619             DEFAULT => -129
2620             },
2621             {#State 230
2622             ACTIONS => {
2623             ";" => 274,
2624             'error' => 273,
2625             "," => 207
2626             }
2627             },
2628             {#State 231
2629             DEFAULT => -21
2630             },
2631             {#State 232
2632             ACTIONS => {
2633             "(" => 197
2634             },
2635             GOTOS => {
2636             'Arguments' => 275
2637             }
2638             },
2639             {#State 233
2640             ACTIONS => {
2641             "(" => 197
2642             },
2643             GOTOS => {
2644             'Arguments' => 276
2645             }
2646             },
2647             {#State 234
2648             ACTIONS => {
2649             "-" => 210,
2650             "+" => 211
2651             },
2652             DEFAULT => -52
2653             },
2654             {#State 235
2655             ACTIONS => {
2656             "-" => 210,
2657             "+" => 211
2658             },
2659             DEFAULT => -53
2660             },
2661             {#State 236
2662             ACTIONS => {
2663             "-" => 210,
2664             "+" => 211
2665             },
2666             DEFAULT => -51
2667             },
2668             {#State 237
2669             DEFAULT => -120
2670             },
2671             {#State 238
2672             ACTIONS => {
2673             'error' => 277,
2674             "," => 207,
2675             ")" => 278
2676             }
2677             },
2678             {#State 239
2679             DEFAULT => -144
2680             },
2681             {#State 240
2682             ACTIONS => {
2683             "-" => 58,
2684             'BREAK' => 91,
2685             ";" => 108,
2686             "~" => 92,
2687             "+" => 75,
2688             'FOR' => 74,
2689             'INTEGER_LITERAL' => 76,
2690             "++" => 110,
2691             "!" => 63,
2692             'RETURN' => 112,
2693             'TRUE_LITERAL' => 93,
2694             'IF' => 94,
2695             'ISVALID' => 80,
2696             'WHILE' => 115,
2697             'FLOAT_LITERAL' => 95,
2698             "--" => 96,
2699             'FALSE_LITERAL' => 99,
2700             'IDENTIFIER' => 98,
2701             'TYPEOF' => 66,
2702             "{" => 35,
2703             "(" => 102,
2704             'CONTINUE' => 68,
2705             'UTF8_STRING_LITERAL' => 87,
2706             'VAR' => 104,
2707             'STRING_LITERAL' => 88,
2708             'INVALID_LITERAL' => 89
2709             },
2710             GOTOS => {
2711             'RelationalExpression' => 60,
2712             'IfStatement' => 61,
2713             'MultiplicativeExpression' => 62,
2714             'ReturnStatement' => 64,
2715             'CallExpression' => 65,
2716             'for_begin' => 97,
2717             'ExpressionStatement' => 100,
2718             'BitwiseXORExpression' => 101,
2719             'LogicalANDExpression' => 67,
2720             'PrimaryExpression' => 69,
2721             'VariableStatement' => 103,
2722             'AssignmentExpression' => 70,
2723             'ConditionalExpression' => 71,
2724             'UnaryExpression' => 72,
2725             'LogicalORExpression' => 105,
2726             'BitwiseANDExpression' => 73,
2727             'Block' => 106,
2728             'FunctionName' => 107,
2729             'ExternalScriptName' => 77,
2730             'EqualityExpression' => 109,
2731             'IterationStatement' => 78,
2732             'LibraryFunctionCall' => 79,
2733             'EmptyStatement' => 111,
2734             'LibraryName' => 81,
2735             'BitwiseORExpression' => 113,
2736             'Statement' => 279,
2737             'BreakStatement' => 82,
2738             'Expression' => 116,
2739             'Literal' => 117,
2740             'ExternalScriptFunctionCall' => 118,
2741             'PostfixExpression' => 119,
2742             'StringLiteral' => 83,
2743             'ContinueStatement' => 120,
2744             'WhileStatement' => 84,
2745             'ShiftExpression' => 85,
2746             'LocalScriptFunctionCall' => 86,
2747             'AdditiveExpression' => 121,
2748             'ForStatement' => 122
2749             }
2750             },
2751             {#State 241
2752             ACTIONS => {
2753             'error' => 280,
2754             "," => 207,
2755             ")" => 281
2756             }
2757             },
2758             {#State 242
2759             DEFAULT => -141
2760             },
2761             {#State 243
2762             ACTIONS => {
2763             "-" => 58,
2764             "~" => 92,
2765             "+" => 75,
2766             'INTEGER_LITERAL' => 76,
2767             "++" => 110,
2768             "!" => 63,
2769             'TRUE_LITERAL' => 93,
2770             'ISVALID' => 80,
2771             'error' => 282,
2772             ")" => 283,
2773             'FLOAT_LITERAL' => 95,
2774             "--" => 96,
2775             'IDENTIFIER' => 98,
2776             'FALSE_LITERAL' => 99,
2777             'TYPEOF' => 66,
2778             "(" => 102,
2779             'UTF8_STRING_LITERAL' => 87,
2780             'STRING_LITERAL' => 88,
2781             'INVALID_LITERAL' => 89
2782             },
2783             GOTOS => {
2784             'BitwiseANDExpression' => 73,
2785             'RelationalExpression' => 60,
2786             'FunctionName' => 107,
2787             'ExternalScriptName' => 77,
2788             'MultiplicativeExpression' => 62,
2789             'EqualityExpression' => 109,
2790             'LibraryFunctionCall' => 79,
2791             'BitwiseORExpression' => 113,
2792             'LibraryName' => 81,
2793             'CallExpression' => 65,
2794             'Expression' => 284,
2795             'Literal' => 117,
2796             'ExternalScriptFunctionCall' => 118,
2797             'BitwiseXORExpression' => 101,
2798             'PostfixExpression' => 119,
2799             'StringLiteral' => 83,
2800             'LogicalANDExpression' => 67,
2801             'PrimaryExpression' => 69,
2802             'ShiftExpression' => 85,
2803             'LocalScriptFunctionCall' => 86,
2804             'UnaryExpression' => 72,
2805             'ConditionalExpression' => 71,
2806             'AssignmentExpression' => 70,
2807             'AdditiveExpression' => 121,
2808             'LogicalORExpression' => 105
2809             }
2810             },
2811             {#State 244
2812             DEFAULT => -76
2813             },
2814             {#State 245
2815             ACTIONS => {
2816             "&" => 149
2817             },
2818             DEFAULT => -65
2819             },
2820             {#State 246
2821             DEFAULT => -13
2822             },
2823             {#State 247
2824             DEFAULT => -11
2825             },
2826             {#State 248
2827             ACTIONS => {
2828             'IDENTIFIER' => 192
2829             },
2830             GOTOS => {
2831             'VariableDeclaration' => 285
2832             }
2833             },
2834             {#State 249
2835             DEFAULT => -108
2836             },
2837             {#State 250
2838             DEFAULT => -106
2839             },
2840             {#State 251
2841             DEFAULT => -111
2842             },
2843             {#State 252
2844             ACTIONS => {
2845             "-" => 58,
2846             "~" => 92,
2847             "+" => 75,
2848             'INTEGER_LITERAL' => 76,
2849             "++" => 110,
2850             "!" => 63,
2851             'TRUE_LITERAL' => 93,
2852             'ISVALID' => 80,
2853             'FLOAT_LITERAL' => 95,
2854             "--" => 96,
2855             'IDENTIFIER' => 135,
2856             'FALSE_LITERAL' => 99,
2857             'TYPEOF' => 66,
2858             "(" => 102,
2859             'UTF8_STRING_LITERAL' => 87,
2860             'STRING_LITERAL' => 88,
2861             'INVALID_LITERAL' => 89
2862             },
2863             GOTOS => {
2864             'BitwiseANDExpression' => 73,
2865             'RelationalExpression' => 60,
2866             'FunctionName' => 107,
2867             'ExternalScriptName' => 77,
2868             'MultiplicativeExpression' => 62,
2869             'EqualityExpression' => 109,
2870             'LibraryFunctionCall' => 79,
2871             'BitwiseORExpression' => 113,
2872             'LibraryName' => 81,
2873             'CallExpression' => 65,
2874             'Literal' => 117,
2875             'ExternalScriptFunctionCall' => 118,
2876             'BitwiseXORExpression' => 101,
2877             'PostfixExpression' => 119,
2878             'StringLiteral' => 83,
2879             'LogicalANDExpression' => 67,
2880             'PrimaryExpression' => 69,
2881             'ShiftExpression' => 85,
2882             'LocalScriptFunctionCall' => 86,
2883             'ConditionalExpression' => 286,
2884             'UnaryExpression' => 72,
2885             'AdditiveExpression' => 121,
2886             'LogicalORExpression' => 105
2887             }
2888             },
2889             {#State 253
2890             ACTIONS => {
2891             ":" => 287,
2892             'error' => 288
2893             }
2894             },
2895             {#State 254
2896             ACTIONS => {
2897             "&&" => 146
2898             },
2899             DEFAULT => -71
2900             },
2901             {#State 255
2902             DEFAULT => -27
2903             },
2904             {#State 256
2905             DEFAULT => -24
2906             },
2907             {#State 257
2908             ACTIONS => {
2909             'error' => 290,
2910             "," => 289,
2911             ")" => 291
2912             }
2913             },
2914             {#State 258
2915             ACTIONS => {
2916             "<" => 136,
2917             ">=" => 137,
2918             "<=" => 138,
2919             ">" => 139
2920             },
2921             DEFAULT => -60
2922             },
2923             {#State 259
2924             ACTIONS => {
2925             "<" => 136,
2926             ">=" => 137,
2927             "<=" => 138,
2928             ">" => 139
2929             },
2930             DEFAULT => -61
2931             },
2932             {#State 260
2933             DEFAULT => -153
2934             },
2935             {#State 261
2936             DEFAULT => -151
2937             },
2938             {#State 262
2939             ACTIONS => {
2940             "^" => 187
2941             },
2942             DEFAULT => -67
2943             },
2944             {#State 263
2945             DEFAULT => -126
2946             },
2947             {#State 264
2948             ACTIONS => {
2949             'error' => 292,
2950             "," => 207,
2951             ")" => 293
2952             }
2953             },
2954             {#State 265
2955             DEFAULT => -91
2956             },
2957             {#State 266
2958             ACTIONS => {
2959             "%" => 140,
2960             "*" => 141,
2961             'DIV' => 142,
2962             "/" => 143
2963             },
2964             DEFAULT => -49
2965             },
2966             {#State 267
2967             ACTIONS => {
2968             "%" => 140,
2969             "*" => 141,
2970             'DIV' => 142,
2971             "/" => 143
2972             },
2973             DEFAULT => -48
2974             },
2975             {#State 268
2976             DEFAULT => -195
2977             },
2978             {#State 269
2979             DEFAULT => -199
2980             },
2981             {#State 270
2982             DEFAULT => -187
2983             },
2984             {#State 271
2985             ACTIONS => {
2986             ";" => 295,
2987             'error' => 294,
2988             "," => 248
2989             }
2990             },
2991             {#State 272
2992             DEFAULT => -134
2993             },
2994             {#State 273
2995             DEFAULT => -133
2996             },
2997             {#State 274
2998             DEFAULT => -128
2999             },
3000             {#State 275
3001             DEFAULT => -19
3002             },
3003             {#State 276
3004             DEFAULT => -20
3005             },
3006             {#State 277
3007             DEFAULT => -121
3008             },
3009             {#State 278
3010             ACTIONS => {
3011             "-" => 58,
3012             'BREAK' => 91,
3013             ";" => 108,
3014             "~" => 92,
3015             "+" => 75,
3016             'FOR' => 74,
3017             'INTEGER_LITERAL' => 76,
3018             "++" => 110,
3019             "!" => 63,
3020             'RETURN' => 112,
3021             'TRUE_LITERAL' => 93,
3022             'IF' => 94,
3023             'ISVALID' => 80,
3024             'WHILE' => 115,
3025             'FLOAT_LITERAL' => 95,
3026             "--" => 96,
3027             'FALSE_LITERAL' => 99,
3028             'IDENTIFIER' => 98,
3029             'TYPEOF' => 66,
3030             "{" => 35,
3031             "(" => 102,
3032             'CONTINUE' => 68,
3033             'UTF8_STRING_LITERAL' => 87,
3034             'VAR' => 104,
3035             'STRING_LITERAL' => 88,
3036             'INVALID_LITERAL' => 89
3037             },
3038             GOTOS => {
3039             'RelationalExpression' => 60,
3040             'IfStatement' => 61,
3041             'MultiplicativeExpression' => 62,
3042             'ReturnStatement' => 64,
3043             'CallExpression' => 65,
3044             'for_begin' => 97,
3045             'ExpressionStatement' => 100,
3046             'BitwiseXORExpression' => 101,
3047             'LogicalANDExpression' => 67,
3048             'PrimaryExpression' => 69,
3049             'VariableStatement' => 103,
3050             'AssignmentExpression' => 70,
3051             'ConditionalExpression' => 71,
3052             'UnaryExpression' => 72,
3053             'LogicalORExpression' => 105,
3054             'BitwiseANDExpression' => 73,
3055             'Block' => 106,
3056             'FunctionName' => 107,
3057             'ExternalScriptName' => 77,
3058             'EqualityExpression' => 109,
3059             'IterationStatement' => 78,
3060             'LibraryFunctionCall' => 79,
3061             'EmptyStatement' => 111,
3062             'LibraryName' => 81,
3063             'BitwiseORExpression' => 113,
3064             'Statement' => 296,
3065             'BreakStatement' => 82,
3066             'Expression' => 116,
3067             'Literal' => 117,
3068             'ExternalScriptFunctionCall' => 118,
3069             'PostfixExpression' => 119,
3070             'StringLiteral' => 83,
3071             'ContinueStatement' => 120,
3072             'WhileStatement' => 84,
3073             'ShiftExpression' => 85,
3074             'LocalScriptFunctionCall' => 86,
3075             'AdditiveExpression' => 121,
3076             'ForStatement' => 122
3077             }
3078             },
3079             {#State 279
3080             DEFAULT => -139
3081             },
3082             {#State 280
3083             DEFAULT => -145
3084             },
3085             {#State 281
3086             ACTIONS => {
3087             "-" => 58,
3088             'BREAK' => 91,
3089             ";" => 108,
3090             "~" => 92,
3091             "+" => 75,
3092             'FOR' => 74,
3093             'INTEGER_LITERAL' => 76,
3094             "++" => 110,
3095             "!" => 63,
3096             'RETURN' => 112,
3097             'TRUE_LITERAL' => 93,
3098             'IF' => 94,
3099             'ISVALID' => 80,
3100             'WHILE' => 115,
3101             'FLOAT_LITERAL' => 95,
3102             "--" => 96,
3103             'FALSE_LITERAL' => 99,
3104             'IDENTIFIER' => 98,
3105             'TYPEOF' => 66,
3106             "{" => 35,
3107             "(" => 102,
3108             'CONTINUE' => 68,
3109             'UTF8_STRING_LITERAL' => 87,
3110             'VAR' => 104,
3111             'STRING_LITERAL' => 88,
3112             'INVALID_LITERAL' => 89
3113             },
3114             GOTOS => {
3115             'RelationalExpression' => 60,
3116             'IfStatement' => 61,
3117             'MultiplicativeExpression' => 62,
3118             'ReturnStatement' => 64,
3119             'CallExpression' => 65,
3120             'for_begin' => 97,
3121             'ExpressionStatement' => 100,
3122             'BitwiseXORExpression' => 101,
3123             'LogicalANDExpression' => 67,
3124             'PrimaryExpression' => 69,
3125             'VariableStatement' => 103,
3126             'AssignmentExpression' => 70,
3127             'ConditionalExpression' => 71,
3128             'UnaryExpression' => 72,
3129             'LogicalORExpression' => 105,
3130             'BitwiseANDExpression' => 73,
3131             'Block' => 106,
3132             'FunctionName' => 107,
3133             'ExternalScriptName' => 77,
3134             'EqualityExpression' => 109,
3135             'IterationStatement' => 78,
3136             'LibraryFunctionCall' => 79,
3137             'EmptyStatement' => 111,
3138             'LibraryName' => 81,
3139             'BitwiseORExpression' => 113,
3140             'Statement' => 297,
3141             'BreakStatement' => 82,
3142             'Expression' => 116,
3143             'Literal' => 117,
3144             'ExternalScriptFunctionCall' => 118,
3145             'PostfixExpression' => 119,
3146             'StringLiteral' => 83,
3147             'ContinueStatement' => 120,
3148             'WhileStatement' => 84,
3149             'ShiftExpression' => 85,
3150             'LocalScriptFunctionCall' => 86,
3151             'AdditiveExpression' => 121,
3152             'ForStatement' => 122
3153             }
3154             },
3155             {#State 282
3156             DEFAULT => -142
3157             },
3158             {#State 283
3159             ACTIONS => {
3160             "-" => 58,
3161             'BREAK' => 91,
3162             ";" => 108,
3163             "~" => 92,
3164             "+" => 75,
3165             'FOR' => 74,
3166             'INTEGER_LITERAL' => 76,
3167             "++" => 110,
3168             "!" => 63,
3169             'RETURN' => 112,
3170             'TRUE_LITERAL' => 93,
3171             'IF' => 94,
3172             'ISVALID' => 80,
3173             'WHILE' => 115,
3174             'FLOAT_LITERAL' => 95,
3175             "--" => 96,
3176             'FALSE_LITERAL' => 99,
3177             'IDENTIFIER' => 98,
3178             'TYPEOF' => 66,
3179             "{" => 35,
3180             "(" => 102,
3181             'CONTINUE' => 68,
3182             'UTF8_STRING_LITERAL' => 87,
3183             'VAR' => 104,
3184             'STRING_LITERAL' => 88,
3185             'INVALID_LITERAL' => 89
3186             },
3187             GOTOS => {
3188             'RelationalExpression' => 60,
3189             'IfStatement' => 61,
3190             'MultiplicativeExpression' => 62,
3191             'ReturnStatement' => 64,
3192             'CallExpression' => 65,
3193             'for_begin' => 97,
3194             'ExpressionStatement' => 100,
3195             'BitwiseXORExpression' => 101,
3196             'LogicalANDExpression' => 67,
3197             'PrimaryExpression' => 69,
3198             'VariableStatement' => 103,
3199             'AssignmentExpression' => 70,
3200             'ConditionalExpression' => 71,
3201             'UnaryExpression' => 72,
3202             'LogicalORExpression' => 105,
3203             'BitwiseANDExpression' => 73,
3204             'Block' => 106,
3205             'FunctionName' => 107,
3206             'ExternalScriptName' => 77,
3207             'EqualityExpression' => 109,
3208             'IterationStatement' => 78,
3209             'LibraryFunctionCall' => 79,
3210             'EmptyStatement' => 111,
3211             'LibraryName' => 81,
3212             'BitwiseORExpression' => 113,
3213             'Statement' => 298,
3214             'BreakStatement' => 82,
3215             'Expression' => 116,
3216             'Literal' => 117,
3217             'ExternalScriptFunctionCall' => 118,
3218             'PostfixExpression' => 119,
3219             'StringLiteral' => 83,
3220             'ContinueStatement' => 120,
3221             'WhileStatement' => 84,
3222             'ShiftExpression' => 85,
3223             'LocalScriptFunctionCall' => 86,
3224             'AdditiveExpression' => 121,
3225             'ForStatement' => 122
3226             }
3227             },
3228             {#State 284
3229             ACTIONS => {
3230             'error' => 299,
3231             "," => 207,
3232             ")" => 300
3233             }
3234             },
3235             {#State 285
3236             DEFAULT => -110
3237             },
3238             {#State 286
3239             DEFAULT => -113
3240             },
3241             {#State 287
3242             ACTIONS => {
3243             "-" => 58,
3244             "~" => 92,
3245             "+" => 75,
3246             'INTEGER_LITERAL' => 76,
3247             "++" => 110,
3248             "!" => 63,
3249             'TRUE_LITERAL' => 93,
3250             'ISVALID' => 80,
3251             'FLOAT_LITERAL' => 95,
3252             "--" => 96,
3253             'IDENTIFIER' => 98,
3254             'FALSE_LITERAL' => 99,
3255             'TYPEOF' => 66,
3256             "(" => 102,
3257             'UTF8_STRING_LITERAL' => 87,
3258             'STRING_LITERAL' => 88,
3259             'INVALID_LITERAL' => 89
3260             },
3261             GOTOS => {
3262             'BitwiseANDExpression' => 73,
3263             'RelationalExpression' => 60,
3264             'FunctionName' => 107,
3265             'ExternalScriptName' => 77,
3266             'MultiplicativeExpression' => 62,
3267             'EqualityExpression' => 109,
3268             'LibraryFunctionCall' => 79,
3269             'BitwiseORExpression' => 113,
3270             'LibraryName' => 81,
3271             'CallExpression' => 65,
3272             'Literal' => 117,
3273             'ExternalScriptFunctionCall' => 118,
3274             'BitwiseXORExpression' => 101,
3275             'PostfixExpression' => 119,
3276             'StringLiteral' => 83,
3277             'LogicalANDExpression' => 67,
3278             'PrimaryExpression' => 69,
3279             'ShiftExpression' => 85,
3280             'LocalScriptFunctionCall' => 86,
3281             'AssignmentExpression' => 301,
3282             'UnaryExpression' => 72,
3283             'ConditionalExpression' => 71,
3284             'AdditiveExpression' => 121,
3285             'LogicalORExpression' => 105
3286             }
3287             },
3288             {#State 288
3289             DEFAULT => -74
3290             },
3291             {#State 289
3292             ACTIONS => {
3293             "-" => 58,
3294             "~" => 92,
3295             "+" => 75,
3296             'INTEGER_LITERAL' => 76,
3297             "++" => 110,
3298             "!" => 63,
3299             'TRUE_LITERAL' => 93,
3300             'ISVALID' => 80,
3301             'error' => 303,
3302             'FLOAT_LITERAL' => 95,
3303             "--" => 96,
3304             'IDENTIFIER' => 98,
3305             'FALSE_LITERAL' => 99,
3306             'TYPEOF' => 66,
3307             "(" => 102,
3308             'UTF8_STRING_LITERAL' => 87,
3309             'STRING_LITERAL' => 88,
3310             'INVALID_LITERAL' => 89
3311             },
3312             GOTOS => {
3313             'BitwiseANDExpression' => 73,
3314             'RelationalExpression' => 60,
3315             'FunctionName' => 107,
3316             'ExternalScriptName' => 77,
3317             'MultiplicativeExpression' => 62,
3318             'EqualityExpression' => 109,
3319             'LibraryFunctionCall' => 79,
3320             'BitwiseORExpression' => 113,
3321             'LibraryName' => 81,
3322             'CallExpression' => 65,
3323             'Literal' => 117,
3324             'ExternalScriptFunctionCall' => 118,
3325             'BitwiseXORExpression' => 101,
3326             'PostfixExpression' => 119,
3327             'StringLiteral' => 83,
3328             'LogicalANDExpression' => 67,
3329             'PrimaryExpression' => 69,
3330             'ShiftExpression' => 85,
3331             'LocalScriptFunctionCall' => 86,
3332             'AssignmentExpression' => 302,
3333             'UnaryExpression' => 72,
3334             'ConditionalExpression' => 71,
3335             'AdditiveExpression' => 121,
3336             'LogicalORExpression' => 105
3337             }
3338             },
3339             {#State 290
3340             DEFAULT => -26
3341             },
3342             {#State 291
3343             DEFAULT => -25
3344             },
3345             {#State 292
3346             DEFAULT => -127
3347             },
3348             {#State 293
3349             ACTIONS => {
3350             "-" => 58,
3351             'BREAK' => 91,
3352             ";" => 108,
3353             "~" => 92,
3354             "+" => 75,
3355             'FOR' => 74,
3356             'INTEGER_LITERAL' => 76,
3357             "++" => 110,
3358             "!" => 63,
3359             'RETURN' => 112,
3360             'TRUE_LITERAL' => 93,
3361             'IF' => 94,
3362             'ISVALID' => 80,
3363             'WHILE' => 115,
3364             'FLOAT_LITERAL' => 95,
3365             "--" => 96,
3366             'FALSE_LITERAL' => 99,
3367             'IDENTIFIER' => 98,
3368             'TYPEOF' => 66,
3369             "{" => 35,
3370             "(" => 102,
3371             'CONTINUE' => 68,
3372             'UTF8_STRING_LITERAL' => 87,
3373             'VAR' => 104,
3374             'STRING_LITERAL' => 88,
3375             'INVALID_LITERAL' => 89
3376             },
3377             GOTOS => {
3378             'RelationalExpression' => 60,
3379             'IfStatement' => 61,
3380             'MultiplicativeExpression' => 62,
3381             'ReturnStatement' => 64,
3382             'CallExpression' => 65,
3383             'for_begin' => 97,
3384             'ExpressionStatement' => 100,
3385             'BitwiseXORExpression' => 101,
3386             'LogicalANDExpression' => 67,
3387             'PrimaryExpression' => 69,
3388             'VariableStatement' => 103,
3389             'AssignmentExpression' => 70,
3390             'ConditionalExpression' => 71,
3391             'UnaryExpression' => 72,
3392             'LogicalORExpression' => 105,
3393             'BitwiseANDExpression' => 73,
3394             'Block' => 106,
3395             'FunctionName' => 107,
3396             'ExternalScriptName' => 77,
3397             'EqualityExpression' => 109,
3398             'IterationStatement' => 78,
3399             'LibraryFunctionCall' => 79,
3400             'EmptyStatement' => 111,
3401             'LibraryName' => 81,
3402             'BitwiseORExpression' => 113,
3403             'Statement' => 304,
3404             'BreakStatement' => 82,
3405             'Expression' => 116,
3406             'Literal' => 117,
3407             'ExternalScriptFunctionCall' => 118,
3408             'PostfixExpression' => 119,
3409             'StringLiteral' => 83,
3410             'ContinueStatement' => 120,
3411             'WhileStatement' => 84,
3412             'ShiftExpression' => 85,
3413             'LocalScriptFunctionCall' => 86,
3414             'AdditiveExpression' => 121,
3415             'ForStatement' => 122
3416             }
3417             },
3418             {#State 294
3419             DEFAULT => -135
3420             },
3421             {#State 295
3422             DEFAULT => -130
3423             },
3424             {#State 296
3425             ACTIONS => {
3426             'ELSE' => 305
3427             },
3428             DEFAULT => -118
3429             },
3430             {#State 297
3431             DEFAULT => -138
3432             },
3433             {#State 298
3434             DEFAULT => -137
3435             },
3436             {#State 299
3437             DEFAULT => -143
3438             },
3439             {#State 300
3440             ACTIONS => {
3441             "-" => 58,
3442             'BREAK' => 91,
3443             ";" => 108,
3444             "~" => 92,
3445             "+" => 75,
3446             'FOR' => 74,
3447             'INTEGER_LITERAL' => 76,
3448             "++" => 110,
3449             "!" => 63,
3450             'RETURN' => 112,
3451             'TRUE_LITERAL' => 93,
3452             'IF' => 94,
3453             'ISVALID' => 80,
3454             'WHILE' => 115,
3455             'FLOAT_LITERAL' => 95,
3456             "--" => 96,
3457             'FALSE_LITERAL' => 99,
3458             'IDENTIFIER' => 98,
3459             'TYPEOF' => 66,
3460             "{" => 35,
3461             "(" => 102,
3462             'CONTINUE' => 68,
3463             'UTF8_STRING_LITERAL' => 87,
3464             'VAR' => 104,
3465             'STRING_LITERAL' => 88,
3466             'INVALID_LITERAL' => 89
3467             },
3468             GOTOS => {
3469             'RelationalExpression' => 60,
3470             'IfStatement' => 61,
3471             'MultiplicativeExpression' => 62,
3472             'ReturnStatement' => 64,
3473             'CallExpression' => 65,
3474             'for_begin' => 97,
3475             'ExpressionStatement' => 100,
3476             'BitwiseXORExpression' => 101,
3477             'LogicalANDExpression' => 67,
3478             'PrimaryExpression' => 69,
3479             'VariableStatement' => 103,
3480             'AssignmentExpression' => 70,
3481             'ConditionalExpression' => 71,
3482             'UnaryExpression' => 72,
3483             'LogicalORExpression' => 105,
3484             'BitwiseANDExpression' => 73,
3485             'Block' => 106,
3486             'FunctionName' => 107,
3487             'ExternalScriptName' => 77,
3488             'EqualityExpression' => 109,
3489             'IterationStatement' => 78,
3490             'LibraryFunctionCall' => 79,
3491             'EmptyStatement' => 111,
3492             'LibraryName' => 81,
3493             'BitwiseORExpression' => 113,
3494             'Statement' => 306,
3495             'BreakStatement' => 82,
3496             'Expression' => 116,
3497             'Literal' => 117,
3498             'ExternalScriptFunctionCall' => 118,
3499             'PostfixExpression' => 119,
3500             'StringLiteral' => 83,
3501             'ContinueStatement' => 120,
3502             'WhileStatement' => 84,
3503             'ShiftExpression' => 85,
3504             'LocalScriptFunctionCall' => 86,
3505             'AdditiveExpression' => 121,
3506             'ForStatement' => 122
3507             }
3508             },
3509             {#State 301
3510             DEFAULT => -73
3511             },
3512             {#State 302
3513             DEFAULT => -28
3514             },
3515             {#State 303
3516             DEFAULT => -29
3517             },
3518             {#State 304
3519             DEFAULT => -124
3520             },
3521             {#State 305
3522             ACTIONS => {
3523             "-" => 58,
3524             'BREAK' => 91,
3525             ";" => 108,
3526             "~" => 92,
3527             "+" => 75,
3528             'FOR' => 74,
3529             'INTEGER_LITERAL' => 76,
3530             "++" => 110,
3531             "!" => 63,
3532             'RETURN' => 112,
3533             'TRUE_LITERAL' => 93,
3534             'IF' => 94,
3535             'ISVALID' => 80,
3536             'WHILE' => 115,
3537             'FLOAT_LITERAL' => 95,
3538             "--" => 96,
3539             'FALSE_LITERAL' => 99,
3540             'IDENTIFIER' => 98,
3541             'TYPEOF' => 66,
3542             "{" => 35,
3543             "(" => 102,
3544             'CONTINUE' => 68,
3545             'UTF8_STRING_LITERAL' => 87,
3546             'VAR' => 104,
3547             'STRING_LITERAL' => 88,
3548             'INVALID_LITERAL' => 89
3549             },
3550             GOTOS => {
3551             'RelationalExpression' => 60,
3552             'IfStatement' => 61,
3553             'MultiplicativeExpression' => 62,
3554             'ReturnStatement' => 64,
3555             'CallExpression' => 65,
3556             'for_begin' => 97,
3557             'ExpressionStatement' => 100,
3558             'BitwiseXORExpression' => 101,
3559             'LogicalANDExpression' => 67,
3560             'PrimaryExpression' => 69,
3561             'VariableStatement' => 103,
3562             'AssignmentExpression' => 70,
3563             'ConditionalExpression' => 71,
3564             'UnaryExpression' => 72,
3565             'LogicalORExpression' => 105,
3566             'BitwiseANDExpression' => 73,
3567             'Block' => 106,
3568             'FunctionName' => 107,
3569             'ExternalScriptName' => 77,
3570             'EqualityExpression' => 109,
3571             'IterationStatement' => 78,
3572             'LibraryFunctionCall' => 79,
3573             'EmptyStatement' => 111,
3574             'LibraryName' => 81,
3575             'BitwiseORExpression' => 113,
3576             'Statement' => 307,
3577             'BreakStatement' => 82,
3578             'Expression' => 116,
3579             'Literal' => 117,
3580             'ExternalScriptFunctionCall' => 118,
3581             'PostfixExpression' => 119,
3582             'StringLiteral' => 83,
3583             'ContinueStatement' => 120,
3584             'WhileStatement' => 84,
3585             'ShiftExpression' => 85,
3586             'LocalScriptFunctionCall' => 86,
3587             'AdditiveExpression' => 121,
3588             'ForStatement' => 122
3589             }
3590             },
3591             {#State 306
3592             DEFAULT => -136
3593             },
3594             {#State 307
3595             DEFAULT => -117
3596             }
3597             ],
3598             yyrules =>
3599             [
3600             [#Rule 0
3601             '$start', 2, undef
3602             ],
3603             [#Rule 1
3604             'Literal', 1,
3605             sub
3606             #line 49 "parser.yp"
3607             {
3608             # always positive
3609             use bigint;
3610             if ($_[1] > 2147483648) {
3611             $_[0]->Error("Integer $_[1] is out of range.\n");
3612             new WAP::wmls::LoadConst($_[0],
3613             'TypeDef' => 'TYPE_INVALID',
3614             );
3615             }
3616             else {
3617             new WAP::wmls::LoadConst($_[0],
3618             'TypeDef' => 'TYPE_INTEGER',
3619             'Value' => $_[1]
3620             );
3621             }
3622             }
3623             ],
3624             [#Rule 2
3625             'Literal', 1,
3626             sub
3627             #line 66 "parser.yp"
3628             {
3629             # always positive
3630             use bignum;
3631             if ($_[1] > 3.40282347e+38) {
3632             $_[0]->Error("Float $_[1] is out of range.\n");
3633             new WAP::wmls::LoadConst($_[0],
3634             'TypeDef' => 'TYPE_INVALID',
3635             );
3636             }
3637             else {
3638             if ($_[1] < 1.17549435e-38) {
3639             $_[0]->Warning("Float $_[1] is underflow.\n");
3640             $_[1] = 0.0;
3641             }
3642             new WAP::wmls::LoadConst($_[0],
3643             'TypeDef' => 'TYPE_FLOAT',
3644             'Value' => $_[1]
3645             );
3646             }
3647             }
3648             ],
3649             [#Rule 3
3650             'Literal', 1, undef
3651             ],
3652             [#Rule 4
3653             'Literal', 1,
3654             sub
3655             #line 89 "parser.yp"
3656             {
3657             new WAP::wmls::LoadConst($_[0],
3658             'TypeDef' => 'TYPE_BOOLEAN',
3659             'Value' => 1
3660             );
3661             }
3662             ],
3663             [#Rule 5
3664             'Literal', 1,
3665             sub
3666             #line 96 "parser.yp"
3667             {
3668             new WAP::wmls::LoadConst($_[0],
3669             'TypeDef' => 'TYPE_BOOLEAN',
3670             'Value' => 0
3671             );
3672             }
3673             ],
3674             [#Rule 6
3675             'Literal', 1,
3676             sub
3677             #line 103 "parser.yp"
3678             {
3679             new WAP::wmls::LoadConst($_[0],
3680             'TypeDef' => 'TYPE_INVALID',
3681             );
3682             }
3683             ],
3684             [#Rule 7
3685             'StringLiteral', 1,
3686             sub
3687             #line 112 "parser.yp"
3688             {
3689             new WAP::wmls::LoadConst($_[0],
3690             'TypeDef' => 'TYPE_STRING',
3691             'Value' => $_[1]
3692             );
3693             }
3694             ],
3695             [#Rule 8
3696             'StringLiteral', 1,
3697             sub
3698             #line 119 "parser.yp"
3699             {
3700             new WAP::wmls::LoadConst($_[0],
3701             'TypeDef' => 'TYPE_UTF8_STRING',
3702             'Value' => $_[1]
3703             );
3704             }
3705             ],
3706             [#Rule 9
3707             'PrimaryExpression', 1,
3708             sub
3709             #line 129 "parser.yp"
3710             {
3711             my $var = $_[0]->YYData->{symbtab_var}->Lookup($_[1]);
3712             new WAP::wmls::LoadVar($_[0],
3713             'Definition' => $var
3714             );
3715             }
3716             ],
3717             [#Rule 10
3718             'PrimaryExpression', 1, undef
3719             ],
3720             [#Rule 11
3721             'PrimaryExpression', 3,
3722             sub
3723             #line 138 "parser.yp"
3724             {
3725             $_[2];
3726             }
3727             ],
3728             [#Rule 12
3729             'PrimaryExpression', 2,
3730             sub
3731             #line 142 "parser.yp"
3732             {
3733             $_[0]->Error("invalid expression.\n");
3734             $_[0]->YYErrok();
3735             }
3736             ],
3737             [#Rule 13
3738             'PrimaryExpression', 3,
3739             sub
3740             #line 147 "parser.yp"
3741             {
3742             $_[0]->Error("')' excepted.\n");
3743             $_[0]->YYErrok();
3744             }
3745             ],
3746             [#Rule 14
3747             'CallExpression', 1, undef
3748             ],
3749             [#Rule 15
3750             'CallExpression', 1, undef
3751             ],
3752             [#Rule 16
3753             'CallExpression', 1, undef
3754             ],
3755             [#Rule 17
3756             'CallExpression', 1, undef
3757             ],
3758             [#Rule 18
3759             'LocalScriptFunctionCall', 2,
3760             sub
3761             #line 166 "parser.yp"
3762             {
3763             my $nbargs = (defined $_[2]) ? $_[2]->{OpCode}->{Index} : 0;
3764             my $def = $_[0]->YYData->{symbtab_func}->LookupLocal($_[1]);
3765             my $call = new WAP::wmls::Call($_[0],
3766             'Definition' => $def,
3767             'Index' => $nbargs
3768             );
3769             (defined $_[2]) ? $_[2]->concat($call) : $call;
3770             }
3771             ],
3772             [#Rule 19
3773             'ExternalScriptFunctionCall', 4,
3774             sub
3775             #line 179 "parser.yp"
3776             {
3777             my $nbargs = (defined $_[4]) ? $_[4]->{OpCode}->{Index} : 0;
3778             my $def = $_[0]->YYData->{symbtab_func}->LookupExternal($_[1], $_[3], $nbargs);
3779             my $call = new WAP::wmls::CallUrl($_[0],
3780             'Definition' => $def,
3781             'Url' => $_[0]->YYData->{symbtab_url}->Lookup($_[1])
3782             );
3783             (defined $_[4]) ? $_[4]->concat($call) : $call;
3784             }
3785             ],
3786             [#Rule 20
3787             'LibraryFunctionCall', 4,
3788             sub
3789             #line 192 "parser.yp"
3790             {
3791             my $nbargs = (defined $_[4]) ? $_[4]->{OpCode}->{Index} : 0;
3792             my $def = $_[0]->YYData->{symbtab_func}->LookupLibrary($_[1], $_[3], $nbargs)
3793             if ($_[0]->YYData->{symbtab_lib}->Lookup($_[1]));
3794             my $call = new WAP::wmls::CallLib($_[0],
3795             'Definition' => $def
3796             );
3797             (defined $_[4]) ? $_[4]->concat($call) : $call;
3798             }
3799             ],
3800             [#Rule 21
3801             'FunctionName', 1, undef
3802             ],
3803             [#Rule 22
3804             'ExternalScriptName', 1, undef
3805             ],
3806             [#Rule 23
3807             'LibraryName', 1, undef
3808             ],
3809             [#Rule 24
3810             'Arguments', 2,
3811             sub
3812             #line 220 "parser.yp"
3813             {
3814             undef;
3815             }
3816             ],
3817             [#Rule 25
3818             'Arguments', 3,
3819             sub
3820             #line 224 "parser.yp"
3821             {
3822             $_[2];
3823             }
3824             ],
3825             [#Rule 26
3826             'Arguments', 3,
3827             sub
3828             #line 228 "parser.yp"
3829             {
3830             $_[0]->Error("')' excepted.\n");
3831             $_[0]->YYErrok();
3832             }
3833             ],
3834             [#Rule 27
3835             'ArgumentList', 1,
3836             sub
3837             #line 236 "parser.yp"
3838             {
3839             $_[1]->configure(
3840             'Index' => 1 # nb args
3841             );
3842             }
3843             ],
3844             [#Rule 28
3845             'ArgumentList', 3,
3846             sub
3847             #line 242 "parser.yp"
3848             {
3849             $_[1]->concat($_[3]);
3850             $_[1]->configure(
3851             'Index' => $_[1]->{OpCode}->{Index} + 1 # nb args
3852             );
3853             }
3854             ],
3855             [#Rule 29
3856             'ArgumentList', 3,
3857             sub
3858             #line 249 "parser.yp"
3859             {
3860             $_[0]->Error("invalid argument.\n");
3861             $_[0]->YYErrok();
3862             }
3863             ],
3864             [#Rule 30
3865             'PostfixExpression', 1, undef
3866             ],
3867             [#Rule 31
3868             'PostfixExpression', 2,
3869             sub
3870             #line 259 "parser.yp"
3871             {
3872             my $var = $_[0]->YYData->{symbtab_var}->Lookup($_[1]);
3873             my $load = new WAP::wmls::LoadVar($_[0],
3874             'Definition' => $var
3875             );
3876             my $incr = new WAP::wmls::IncrVar($_[0],
3877             'Definition' => $var
3878             );
3879             $load->concat($incr);
3880             }
3881             ],
3882             [#Rule 32
3883             'PostfixExpression', 2,
3884             sub
3885             #line 270 "parser.yp"
3886             {
3887             my $var = $_[0]->YYData->{symbtab_var}->Lookup($_[1]);
3888             my $load = new WAP::wmls::LoadVar($_[0],
3889             'Definition' => $var
3890             );
3891             my $decr = new WAP::wmls::DecrVar($_[0],
3892             'Definition' => $var
3893             );
3894             $load->concat($decr);
3895             }
3896             ],
3897             [#Rule 33
3898             'UnaryExpression', 1, undef
3899             ],
3900             [#Rule 34
3901             'UnaryExpression', 2,
3902             sub
3903             #line 286 "parser.yp"
3904             {
3905             BuildUnop($_[0], $_[1], $_[2]);
3906             }
3907             ],
3908             [#Rule 35
3909             'UnaryExpression', 2,
3910             sub
3911             #line 290 "parser.yp"
3912             {
3913             BuildUnop($_[0], $_[1], $_[2]);
3914             }
3915             ],
3916             [#Rule 36
3917             'UnaryExpression', 2,
3918             sub
3919             #line 294 "parser.yp"
3920             {
3921             my $var = $_[0]->YYData->{symbtab_var}->Lookup($_[2]);
3922             my $incr = new WAP::wmls::IncrVar($_[0],
3923             'Definition' => $var
3924             );
3925             my $load = new WAP::wmls::LoadVar($_[0],
3926             'Definition' => $var
3927             );
3928             $incr->concat($load);
3929             }
3930             ],
3931             [#Rule 37
3932             'UnaryExpression', 2,
3933             sub
3934             #line 305 "parser.yp"
3935             {
3936             my $var = $_[0]->YYData->{symbtab_var}->Lookup($_[2]);
3937             my $decr = new WAP::wmls::DecrVar($_[0],
3938             'Definition' => $var
3939             );
3940             my $load = new WAP::wmls::LoadVar($_[0],
3941             'Definition' => $var
3942             );
3943             $decr->concat($load);
3944             }
3945             ],
3946             [#Rule 38
3947             'UnaryExpression', 2,
3948             sub
3949             #line 316 "parser.yp"
3950             {
3951             $_[2];
3952             }
3953             ],
3954             [#Rule 39
3955             'UnaryExpression', 2,
3956             sub
3957             #line 320 "parser.yp"
3958             {
3959             BuildUnop($_[0], $_[1], $_[2]);
3960             }
3961             ],
3962             [#Rule 40
3963             'UnaryExpression', 2,
3964             sub
3965             #line 324 "parser.yp"
3966             {
3967             BuildUnop($_[0], $_[1], $_[2]);
3968             }
3969             ],
3970             [#Rule 41
3971             'UnaryExpression', 2,
3972             sub
3973             #line 328 "parser.yp"
3974             {
3975             BuildUnop($_[0], $_[1], $_[2]);
3976             }
3977             ],
3978             [#Rule 42
3979             'MultiplicativeExpression', 1, undef
3980             ],
3981             [#Rule 43
3982             'MultiplicativeExpression', 3,
3983             sub
3984             #line 337 "parser.yp"
3985             {
3986             BuildBinop($_[0], $_[1], $_[2], $_[3]);
3987             }
3988             ],
3989             [#Rule 44
3990             'MultiplicativeExpression', 3,
3991             sub
3992             #line 341 "parser.yp"
3993             {
3994             BuildBinop($_[0], $_[1], $_[2], $_[3]);
3995             }
3996             ],
3997             [#Rule 45
3998             'MultiplicativeExpression', 3,
3999             sub
4000             #line 345 "parser.yp"
4001             {
4002             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4003             }
4004             ],
4005             [#Rule 46
4006             'MultiplicativeExpression', 3,
4007             sub
4008             #line 349 "parser.yp"
4009             {
4010             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4011             }
4012             ],
4013             [#Rule 47
4014             'AdditiveExpression', 1, undef
4015             ],
4016             [#Rule 48
4017             'AdditiveExpression', 3,
4018             sub
4019             #line 358 "parser.yp"
4020             {
4021             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4022             }
4023             ],
4024             [#Rule 49
4025             'AdditiveExpression', 3,
4026             sub
4027             #line 362 "parser.yp"
4028             {
4029             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4030             }
4031             ],
4032             [#Rule 50
4033             'ShiftExpression', 1, undef
4034             ],
4035             [#Rule 51
4036             'ShiftExpression', 3,
4037             sub
4038             #line 371 "parser.yp"
4039             {
4040             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4041             }
4042             ],
4043             [#Rule 52
4044             'ShiftExpression', 3,
4045             sub
4046             #line 375 "parser.yp"
4047             {
4048             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4049             }
4050             ],
4051             [#Rule 53
4052             'ShiftExpression', 3,
4053             sub
4054             #line 379 "parser.yp"
4055             {
4056             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4057             }
4058             ],
4059             [#Rule 54
4060             'RelationalExpression', 1, undef
4061             ],
4062             [#Rule 55
4063             'RelationalExpression', 3,
4064             sub
4065             #line 388 "parser.yp"
4066             {
4067             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4068             }
4069             ],
4070             [#Rule 56
4071             'RelationalExpression', 3,
4072             sub
4073             #line 392 "parser.yp"
4074             {
4075             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4076             }
4077             ],
4078             [#Rule 57
4079             'RelationalExpression', 3,
4080             sub
4081             #line 396 "parser.yp"
4082             {
4083             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4084             }
4085             ],
4086             [#Rule 58
4087             'RelationalExpression', 3,
4088             sub
4089             #line 400 "parser.yp"
4090             {
4091             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4092             }
4093             ],
4094             [#Rule 59
4095             'EqualityExpression', 1, undef
4096             ],
4097             [#Rule 60
4098             'EqualityExpression', 3,
4099             sub
4100             #line 409 "parser.yp"
4101             {
4102             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4103             }
4104             ],
4105             [#Rule 61
4106             'EqualityExpression', 3,
4107             sub
4108             #line 413 "parser.yp"
4109             {
4110             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4111             }
4112             ],
4113             [#Rule 62
4114             'BitwiseANDExpression', 1, undef
4115             ],
4116             [#Rule 63
4117             'BitwiseANDExpression', 3,
4118             sub
4119             #line 422 "parser.yp"
4120             {
4121             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4122             }
4123             ],
4124             [#Rule 64
4125             'BitwiseXORExpression', 1, undef
4126             ],
4127             [#Rule 65
4128             'BitwiseXORExpression', 3,
4129             sub
4130             #line 431 "parser.yp"
4131             {
4132             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4133             }
4134             ],
4135             [#Rule 66
4136             'BitwiseORExpression', 1, undef
4137             ],
4138             [#Rule 67
4139             'BitwiseORExpression', 3,
4140             sub
4141             #line 440 "parser.yp"
4142             {
4143             BuildBinop($_[0], $_[1], $_[2], $_[3]);
4144             }
4145             ],
4146             [#Rule 68
4147             'LogicalANDExpression', 1, undef
4148             ],
4149             [#Rule 69
4150             'LogicalANDExpression', 3,
4151             sub
4152             #line 449 "parser.yp"
4153             {
4154             BuildLogop($_[0], $_[1], new WAP::wmls::ScAnd($_[0]), $_[3]);
4155             }
4156             ],
4157             [#Rule 70
4158             'LogicalORExpression', 1, undef
4159             ],
4160             [#Rule 71
4161             'LogicalORExpression', 3,
4162             sub
4163             #line 458 "parser.yp"
4164             {
4165             BuildLogop($_[0], $_[1], new WAP::wmls::ScOr($_[0]), $_[3]);
4166             }
4167             ],
4168             [#Rule 72
4169             'ConditionalExpression', 1, undef
4170             ],
4171             [#Rule 73
4172             'ConditionalExpression', 5,
4173             sub
4174             #line 467 "parser.yp"
4175             {
4176             BuildIfElse($_[0], $_[1], $_[3], $_[5]);
4177             }
4178             ],
4179             [#Rule 74
4180             'ConditionalExpression', 4,
4181             sub
4182             #line 471 "parser.yp"
4183             {
4184             $_[0]->Error("':' excepted.\n");
4185             $_[0]->YYErrok();
4186             }
4187             ],
4188             [#Rule 75
4189             'AssignmentExpression', 1, undef
4190             ],
4191             [#Rule 76
4192             'AssignmentExpression', 3,
4193             sub
4194             #line 481 "parser.yp"
4195             {
4196             my $asg;
4197             my $var = $_[0]->YYData->{symbtab_var}->Lookup($_[1]);
4198             if ($_[2] eq '=') {
4199             my $store1 = new WAP::wmls::StoreVar($_[0],
4200             'Definition' => $var
4201             );
4202             $asg = $_[3]->concat($store1);
4203             }
4204             elsif ($_[2] eq '+=') {
4205             my $add = new WAP::wmls::AddAsg($_[0],
4206             'Definition' => $var
4207             );
4208             $asg = $_[3]->concat($add);
4209             }
4210             elsif ($_[2] eq '-=') {
4211             my $sub = new WAP::wmls::SubAsg($_[0],
4212             'Definition' => $var
4213             );
4214             $asg = $_[3]->concat($sub);
4215             }
4216             else {
4217             my $load1 = new WAP::wmls::LoadVar($_[0],
4218             'Definition' => $var
4219             );
4220             my $binop = BuildBinop($_[0], $load1, $_[2], $_[3]);
4221             my $store2 = new WAP::wmls::StoreVar($_[0],
4222             'Definition' => $var
4223             );
4224             $asg = $binop->concat($store2);
4225             }
4226             my $load2 = new WAP::wmls::LoadVar($_[0],
4227             'Definition' => $var
4228             );
4229             $asg->concat($load2);
4230             }
4231             ],
4232             [#Rule 77
4233             'AssignmentOperator', 1, undef
4234             ],
4235             [#Rule 78
4236             'AssignmentOperator', 1,
4237             sub
4238             #line 523 "parser.yp"
4239             {
4240             '*';
4241             }
4242             ],
4243             [#Rule 79
4244             'AssignmentOperator', 1,
4245             sub
4246             #line 527 "parser.yp"
4247             {
4248             '/';
4249             }
4250             ],
4251             [#Rule 80
4252             'AssignmentOperator', 1,
4253             sub
4254             #line 531 "parser.yp"
4255             {
4256             '%';
4257             }
4258             ],
4259             [#Rule 81
4260             'AssignmentOperator', 1, undef
4261             ],
4262             [#Rule 82
4263             'AssignmentOperator', 1, undef
4264             ],
4265             [#Rule 83
4266             'AssignmentOperator', 1,
4267             sub
4268             #line 539 "parser.yp"
4269             {
4270             '<<';
4271             }
4272             ],
4273             [#Rule 84
4274             'AssignmentOperator', 1,
4275             sub
4276             #line 543 "parser.yp"
4277             {
4278             '>>';
4279             }
4280             ],
4281             [#Rule 85
4282             'AssignmentOperator', 1,
4283             sub
4284             #line 547 "parser.yp"
4285             {
4286             '>>>';
4287             }
4288             ],
4289             [#Rule 86
4290             'AssignmentOperator', 1,
4291             sub
4292             #line 551 "parser.yp"
4293             {
4294             '&';
4295             }
4296             ],
4297             [#Rule 87
4298             'AssignmentOperator', 1,
4299             sub
4300             #line 555 "parser.yp"
4301             {
4302             '^';
4303             }
4304             ],
4305             [#Rule 88
4306             'AssignmentOperator', 1,
4307             sub
4308             #line 559 "parser.yp"
4309             {
4310             '|';
4311             }
4312             ],
4313             [#Rule 89
4314             'AssignmentOperator', 1,
4315             sub
4316             #line 563 "parser.yp"
4317             {
4318             'DIV';
4319             }
4320             ],
4321             [#Rule 90
4322             'Expression', 1, undef
4323             ],
4324             [#Rule 91
4325             'Expression', 3,
4326             sub
4327             #line 572 "parser.yp"
4328             {
4329             $_[1]->concat(new WAP::wmls::Pop($_[0]));
4330             $_[1]->concat($_[3]);
4331             }
4332             ],
4333             [#Rule 92
4334             'Statement', 1, undef
4335             ],
4336             [#Rule 93
4337             'Statement', 1, undef
4338             ],
4339             [#Rule 94
4340             'Statement', 1, undef
4341             ],
4342             [#Rule 95
4343             'Statement', 1, undef
4344             ],
4345             [#Rule 96
4346             'Statement', 1, undef
4347             ],
4348             [#Rule 97
4349             'Statement', 1, undef
4350             ],
4351             [#Rule 98
4352             'Statement', 1, undef
4353             ],
4354             [#Rule 99
4355             'Statement', 1, undef
4356             ],
4357             [#Rule 100
4358             'Statement', 1, undef
4359             ],
4360             [#Rule 101
4361             'Block', 3,
4362             sub
4363             #line 601 "parser.yp"
4364             {
4365             $_[2];
4366             }
4367             ],
4368             [#Rule 102
4369             'Block', 3,
4370             sub
4371             #line 605 "parser.yp"
4372             {
4373             $_[0]->Error("'\x7d' excepted.\n");
4374             $_[0]->YYErrok();
4375             }
4376             ],
4377             [#Rule 103
4378             'Block', 2,
4379             sub
4380             #line 610 "parser.yp"
4381             {
4382             undef;
4383             }
4384             ],
4385             [#Rule 104
4386             'StatementList', 1, undef
4387             ],
4388             [#Rule 105
4389             'StatementList', 2,
4390             sub
4391             #line 619 "parser.yp"
4392             {
4393             if (! defined $_[1]) {
4394             $_[2];
4395             }
4396             else {
4397             if (! defined $_[2]) {
4398             $_[1];
4399             }
4400             else {
4401             $_[1]->concat($_[2]);
4402             }
4403             }
4404             }
4405             ],
4406             [#Rule 106
4407             'VariableStatement', 3,
4408             sub
4409             #line 636 "parser.yp"
4410             {
4411             $_[2];
4412             }
4413             ],
4414             [#Rule 107
4415             'VariableStatement', 2,
4416             sub
4417             #line 640 "parser.yp"
4418             {
4419             $_[0]->Error("invalid variable declaration.\n");
4420             $_[0]->YYErrok();
4421             }
4422             ],
4423             [#Rule 108
4424             'VariableStatement', 3,
4425             sub
4426             #line 645 "parser.yp"
4427             {
4428             $_[0]->Error("';' excepted.\n");
4429             $_[0]->YYErrok();
4430             }
4431             ],
4432             [#Rule 109
4433             'VariableDeclarationList', 1, undef
4434             ],
4435             [#Rule 110
4436             'VariableDeclarationList', 3,
4437             sub
4438             #line 655 "parser.yp"
4439             {
4440             if (! defined $_[1]) {
4441             $_[3];
4442             }
4443             else {
4444             if (! defined $_[3]) {
4445             $_[1];
4446             }
4447             else {
4448             $_[1]->concat($_[3]);
4449             }
4450             }
4451             }
4452             ],
4453             [#Rule 111
4454             'VariableDeclaration', 2,
4455             sub
4456             #line 672 "parser.yp"
4457             {
4458             my $var = $_[0]->YYData->{symbtab_var}->InsertLocal($_[1]);
4459             my $store = new WAP::wmls::StoreVar($_[0],
4460             'Definition' => $var
4461             );
4462             $_[2]->concat($store);
4463             }
4464             ],
4465             [#Rule 112
4466             'VariableDeclaration', 1,
4467             sub
4468             #line 680 "parser.yp"
4469             {
4470             $_[0]->YYData->{symbtab_var}->InsertLocal($_[1]);
4471             undef;
4472             }
4473             ],
4474             [#Rule 113
4475             'VariableInitializer', 2,
4476             sub
4477             #line 688 "parser.yp"
4478             {
4479             $_[2];
4480             }
4481             ],
4482             [#Rule 114
4483             'EmptyStatement', 1,
4484             sub
4485             #line 695 "parser.yp"
4486             {
4487             undef;
4488             }
4489             ],
4490             [#Rule 115
4491             'ExpressionStatement', 2,
4492             sub
4493             #line 702 "parser.yp"
4494             {
4495             $_[1]->concat(new WAP::wmls::Pop($_[0]));
4496             }
4497             ],
4498             [#Rule 116
4499             'ExpressionStatement', 2,
4500             sub
4501             #line 706 "parser.yp"
4502             {
4503             $_[0]->Error("';' excepted.\n");
4504             $_[0]->YYErrok();
4505             }
4506             ],
4507             [#Rule 117
4508             'IfStatement', 7,
4509             sub
4510             #line 714 "parser.yp"
4511             {
4512             BuildIfElse($_[0], $_[3], $_[5], $_[7]);
4513             }
4514             ],
4515             [#Rule 118
4516             'IfStatement', 5,
4517             sub
4518             #line 718 "parser.yp"
4519             {
4520             BuildIf($_[0], $_[3], $_[5]);
4521             }
4522             ],
4523             [#Rule 119
4524             'IfStatement', 2,
4525             sub
4526             #line 722 "parser.yp"
4527             {
4528             $_[0]->Error("'(' excepted.\n");
4529             $_[0]->YYErrok();
4530             }
4531             ],
4532             [#Rule 120
4533             'IfStatement', 3,
4534             sub
4535             #line 727 "parser.yp"
4536             {
4537             $_[0]->Error("invalid expression.\n");
4538             $_[0]->YYErrok();
4539             }
4540             ],
4541             [#Rule 121
4542             'IfStatement', 4,
4543             sub
4544             #line 732 "parser.yp"
4545             {
4546             $_[0]->Error("')' excepted.\n");
4547             $_[0]->YYErrok();
4548             }
4549             ],
4550             [#Rule 122
4551             'IterationStatement', 1, undef
4552             ],
4553             [#Rule 123
4554             'IterationStatement', 1, undef
4555             ],
4556             [#Rule 124
4557             'WhileStatement', 5,
4558             sub
4559             #line 747 "parser.yp"
4560             {
4561             BuildFor($_[0], undef, $_[3], undef, $_[5]);
4562             }
4563             ],
4564             [#Rule 125
4565             'WhileStatement', 2,
4566             sub
4567             #line 751 "parser.yp"
4568             {
4569             $_[0]->Error("'(' excepted.\n");
4570             $_[0]->YYErrok();
4571             }
4572             ],
4573             [#Rule 126
4574             'WhileStatement', 3,
4575             sub
4576             #line 756 "parser.yp"
4577             {
4578             $_[0]->Error("invalid expression.\n");
4579             $_[0]->YYErrok();
4580             }
4581             ],
4582             [#Rule 127
4583             'WhileStatement', 4,
4584             sub
4585             #line 761 "parser.yp"
4586             {
4587             $_[0]->Error("')' excepted.\n");
4588             $_[0]->YYErrok();
4589             }
4590             ],
4591             [#Rule 128
4592             'for_begin', 4,
4593             sub
4594             #line 769 "parser.yp"
4595             {
4596             $_[3]->concat(new WAP::wmls::Pop($_[0]));
4597             }
4598             ],
4599             [#Rule 129
4600             'for_begin', 3,
4601             sub
4602             #line 773 "parser.yp"
4603             {
4604             undef;
4605             }
4606             ],
4607             [#Rule 130
4608             'for_begin', 5,
4609             sub
4610             #line 777 "parser.yp"
4611             {
4612             $_[4];
4613             }
4614             ],
4615             [#Rule 131
4616             'for_begin', 2,
4617             sub
4618             #line 781 "parser.yp"
4619             {
4620             $_[0]->Error("'(' excepted.\n");
4621             $_[0]->YYErrok();
4622             }
4623             ],
4624             [#Rule 132
4625             'for_begin', 3,
4626             sub
4627             #line 786 "parser.yp"
4628             {
4629             $_[0]->Error("invalid init expression.\n");
4630             $_[0]->YYErrok();
4631             }
4632             ],
4633             [#Rule 133
4634             'for_begin', 4,
4635             sub
4636             #line 791 "parser.yp"
4637             {
4638             $_[0]->Error("';' excepted.\n");
4639             $_[0]->YYErrok();
4640             }
4641             ],
4642             [#Rule 134
4643             'for_begin', 4,
4644             sub
4645             #line 796 "parser.yp"
4646             {
4647             $_[0]->Error("invalid variable declaration.\n");
4648             $_[0]->YYErrok();
4649             }
4650             ],
4651             [#Rule 135
4652             'for_begin', 5,
4653             sub
4654             #line 801 "parser.yp"
4655             {
4656             $_[0]->Error("';' excepted.\n");
4657             $_[0]->YYErrok();
4658             }
4659             ],
4660             [#Rule 136
4661             'ForStatement', 6,
4662             sub
4663             #line 809 "parser.yp"
4664             {
4665             my $upd = $_[4]->concat(new WAP::wmls::Pop($_[0]));
4666             BuildFor($_[0], $_[1], $_[2], $upd, $_[6]);
4667             }
4668             ],
4669             [#Rule 137
4670             'ForStatement', 5,
4671             sub
4672             #line 814 "parser.yp"
4673             {
4674             BuildFor($_[0], $_[1], $_[2], undef, $_[5]);
4675             }
4676             ],
4677             [#Rule 138
4678             'ForStatement', 5,
4679             sub
4680             #line 818 "parser.yp"
4681             {
4682             my $upd = $_[3]->concat(new WAP::wmls::Pop($_[0]));
4683             BuildFor($_[0], $_[1], undef, $upd, $_[5]);
4684             }
4685             ],
4686             [#Rule 139
4687             'ForStatement', 4,
4688             sub
4689             #line 823 "parser.yp"
4690             {
4691             BuildFor($_[0], $_[1], undef, undef, $_[4]);
4692             }
4693             ],
4694             [#Rule 140
4695             'ForStatement', 2,
4696             sub
4697             #line 827 "parser.yp"
4698             {
4699             $_[0]->Error("invalid control expression.\n");
4700             $_[0]->YYErrok();
4701             }
4702             ],
4703             [#Rule 141
4704             'ForStatement', 3,
4705             sub
4706             #line 832 "parser.yp"
4707             {
4708             $_[0]->Error("';' excepted.\n");
4709             $_[0]->YYErrok();
4710             }
4711             ],
4712             [#Rule 142
4713             'ForStatement', 4,
4714             sub
4715             #line 837 "parser.yp"
4716             {
4717             $_[0]->Error("invalid update expression.\n");
4718             $_[0]->YYErrok();
4719             }
4720             ],
4721             [#Rule 143
4722             'ForStatement', 5,
4723             sub
4724             #line 842 "parser.yp"
4725             {
4726             $_[0]->Error("')' excepted.\n");
4727             $_[0]->YYErrok();
4728             }
4729             ],
4730             [#Rule 144
4731             'ForStatement', 3,
4732             sub
4733             #line 847 "parser.yp"
4734             {
4735             $_[0]->Error("invalid update expression.\n");
4736             $_[0]->YYErrok();
4737             }
4738             ],
4739             [#Rule 145
4740             'ForStatement', 4,
4741             sub
4742             #line 852 "parser.yp"
4743             {
4744             $_[0]->Error("')' excepted.\n");
4745             $_[0]->YYErrok();
4746             }
4747             ],
4748             [#Rule 146
4749             'ContinueStatement', 2,
4750             sub
4751             #line 860 "parser.yp"
4752             {
4753             new WAP::wmls::Jump($_[0],
4754             'TypeDef' => 'LABEL_CONTINUE'
4755             );
4756             }
4757             ],
4758             [#Rule 147
4759             'ContinueStatement', 2,
4760             sub
4761             #line 866 "parser.yp"
4762             {
4763             $_[0]->Error("';' excepted.\n");
4764             $_[0]->YYErrok();
4765             }
4766             ],
4767             [#Rule 148
4768             'BreakStatement', 2,
4769             sub
4770             #line 874 "parser.yp"
4771             {
4772             new WAP::wmls::Jump($_[0],
4773             'TypeDef' => 'LABEL_BREAK'
4774             );
4775             }
4776             ],
4777             [#Rule 149
4778             'BreakStatement', 2,
4779             sub
4780             #line 880 "parser.yp"
4781             {
4782             $_[0]->Error("';' excepted.\n");
4783             $_[0]->YYErrok();
4784             }
4785             ],
4786             [#Rule 150
4787             'ReturnStatement', 2,
4788             sub
4789             #line 888 "parser.yp"
4790             {
4791             new WAP::wmls::ReturnES($_[0]);
4792             }
4793             ],
4794             [#Rule 151
4795             'ReturnStatement', 3,
4796             sub
4797             #line 892 "parser.yp"
4798             {
4799             $_[2]->concat(new WAP::wmls::Return($_[0]));
4800             }
4801             ],
4802             [#Rule 152
4803             'ReturnStatement', 2,
4804             sub
4805             #line 896 "parser.yp"
4806             {
4807             $_[0]->Error("Missing term.\n");
4808             $_[0]->YYErrok();
4809             }
4810             ],
4811             [#Rule 153
4812             'ReturnStatement', 3,
4813             sub
4814             #line 901 "parser.yp"
4815             {
4816             $_[0]->Error("';' excepted.\n");
4817             $_[0]->YYErrok();
4818             }
4819             ],
4820             [#Rule 154
4821             'func_decl', 4,
4822             sub
4823             #line 909 "parser.yp"
4824             {
4825             $_[0]->YYData->{symbtab_func}->InsertLocal($_[3], 'PUBLIC_FUNC');
4826             }
4827             ],
4828             [#Rule 155
4829             'func_decl', 3,
4830             sub
4831             #line 913 "parser.yp"
4832             {
4833             $_[0]->YYData->{symbtab_func}->InsertLocal($_[2], 'PRIVATE_FUNC');
4834             }
4835             ],
4836             [#Rule 156
4837             'func_decl', 2,
4838             sub
4839             #line 917 "parser.yp"
4840             {
4841             $_[0]->Error("function excepted.\n");
4842             $_[0]->YYErrok();
4843             }
4844             ],
4845             [#Rule 157
4846             'func_decl', 3,
4847             sub
4848             #line 922 "parser.yp"
4849             {
4850             $_[0]->Error("invalid function name.\n");
4851             $_[0]->YYErrok();
4852             }
4853             ],
4854             [#Rule 158
4855             'func_decl', 4,
4856             sub
4857             #line 927 "parser.yp"
4858             {
4859             $_[0]->Error("'(' excepted.\n");
4860             $_[0]->YYErrok();
4861             }
4862             ],
4863             [#Rule 159
4864             'func_decl', 2,
4865             sub
4866             #line 932 "parser.yp"
4867             {
4868             $_[0]->Error("invalid function name.\n");
4869             $_[0]->YYErrok();
4870             }
4871             ],
4872             [#Rule 160
4873             'func_decl', 3,
4874             sub
4875             #line 937 "parser.yp"
4876             {
4877             $_[0]->Error("'(' excepted.\n");
4878             $_[0]->YYErrok();
4879             }
4880             ],
4881             [#Rule 161
4882             'FunctionDeclaration', 5,
4883             sub
4884             #line 945 "parser.yp"
4885             {
4886             new WAP::wmls::Function($_[0],
4887             'Definition' => $_[1],
4888             'Param' => $_[2],
4889             'Value' => $_[4]
4890             );
4891             }
4892             ],
4893             [#Rule 162
4894             'FunctionDeclaration', 4,
4895             sub
4896             #line 953 "parser.yp"
4897             {
4898             new WAP::wmls::Function($_[0],
4899             'Definition' => $_[1],
4900             'Param' => $_[2],
4901             'Value' => $_[4]
4902             );
4903             }
4904             ],
4905             [#Rule 163
4906             'FunctionDeclaration', 4,
4907             sub
4908             #line 961 "parser.yp"
4909             {
4910             new WAP::wmls::Function($_[0],
4911             'Definition' => $_[1],
4912             'Value' => $_[3]
4913             );
4914             }
4915             ],
4916             [#Rule 164
4917             'FunctionDeclaration', 3,
4918             sub
4919             #line 968 "parser.yp"
4920             {
4921             new WAP::wmls::Function($_[0],
4922             'Definition' => $_[1],
4923             'Value' => $_[3]
4924             );
4925             }
4926             ],
4927             [#Rule 165
4928             'FunctionDeclaration', 2,
4929             sub
4930             #line 975 "parser.yp"
4931             {
4932             $_[0]->Error("invalid parameters.\n");
4933             $_[0]->YYErrok();
4934             }
4935             ],
4936             [#Rule 166
4937             'FunctionDeclaration', 3,
4938             sub
4939             #line 980 "parser.yp"
4940             {
4941             $_[0]->Error("')' excepted.\n");
4942             $_[0]->YYErrok();
4943             }
4944             ],
4945             [#Rule 167
4946             'FunctionDeclaration', 4,
4947             sub
4948             #line 985 "parser.yp"
4949             {
4950             $_[0]->Error("block statement expected.\n");
4951             $_[0]->YYErrok();
4952             }
4953             ],
4954             [#Rule 168
4955             'FunctionDeclaration', 3,
4956             sub
4957             #line 990 "parser.yp"
4958             {
4959             $_[0]->Error("block statement expected.\n");
4960             $_[0]->YYErrok();
4961             }
4962             ],
4963             [#Rule 169
4964             'FormalParameterList', 1,
4965             sub
4966             #line 998 "parser.yp"
4967             {
4968             my $var = $_[0]->YYData->{symbtab_var}->InsertArg($_[1], 0);
4969             new WAP::wmls::Argument($_[0],
4970             'Definition' => $var,
4971             'Index' => 1 # nb args
4972             );
4973             }
4974             ],
4975             [#Rule 170
4976             'FormalParameterList', 3,
4977             sub
4978             #line 1006 "parser.yp"
4979             {
4980             my $idx = $_[1]->{OpCode}->{Index};
4981             $_[1]->{OpCode}->{Index} ++; # nb args
4982             my $var = $_[0]->YYData->{symbtab_var}->InsertArg($_[3], $idx);
4983             my $arg = new WAP::wmls::Argument($_[0],
4984             'Definition' => $var,
4985             );
4986             $_[1]->concat($arg);
4987             }
4988             ],
4989             [#Rule 171
4990             'CompilationUnit', 2,
4991             sub
4992             #line 1019 "parser.yp"
4993             {
4994             $_[0]->YYData->{PragmaList} = $_[1];
4995             $_[0]->YYData->{FunctionList} = $_[2];
4996             }
4997             ],
4998             [#Rule 172
4999             'CompilationUnit', 2,
5000             sub
5001             #line 1024 "parser.yp"
5002             {
5003             $_[0]->YYData->{PragmaList} = $_[1];
5004             $_[0]->YYData->{FunctionList} = undef;
5005             $_[0]->Error("function declaration excepted.\n");
5006             $_[0]->YYErrok();
5007             }
5008             ],
5009             [#Rule 173
5010             'CompilationUnit', 1,
5011             sub
5012             #line 1031 "parser.yp"
5013             {
5014             $_[0]->YYData->{PragmaList} = $_[1];
5015             $_[0]->YYData->{FunctionList} = undef;
5016             $_[0]->Error("function declaration excepted.\n");
5017             }
5018             ],
5019             [#Rule 174
5020             'CompilationUnit', 1,
5021             sub
5022             #line 1037 "parser.yp"
5023             {
5024             $_[0]->YYData->{PragmaList} = undef;
5025             $_[0]->YYData->{FunctionList} = $_[1];
5026             }
5027             ],
5028             [#Rule 175
5029             'Pragmas', 1, undef
5030             ],
5031             [#Rule 176
5032             'Pragmas', 2,
5033             sub
5034             #line 1047 "parser.yp"
5035             {
5036             $_[1]->concat($_[2]);
5037             }
5038             ],
5039             [#Rule 177
5040             'Pragma', 3,
5041             sub
5042             #line 1054 "parser.yp"
5043             {
5044             $_[2];
5045             }
5046             ],
5047             [#Rule 178
5048             'Pragma', 2,
5049             sub
5050             #line 1058 "parser.yp"
5051             {
5052             $_[0]->Error("invalid pragma.\n");
5053             $_[0]->YYErrok();
5054             }
5055             ],
5056             [#Rule 179
5057             'Pragma', 3,
5058             sub
5059             #line 1063 "parser.yp"
5060             {
5061             $_[0]->Error("';' excepted.\n");
5062             $_[0]->YYErrok();
5063             }
5064             ],
5065             [#Rule 180
5066             'PragmaDeclaration', 1, undef
5067             ],
5068             [#Rule 181
5069             'PragmaDeclaration', 1,
5070             sub
5071             #line 1073 "parser.yp"
5072             {
5073             if (exists $_[0]->YYData->{AccessControlPragma}) {
5074             $_[0]->Error("multiple access control pragma.\n");
5075             $_[0]->YYData->{AccessControlPragma} ++;
5076             }
5077             else {
5078             $_[0]->YYData->{AccessControlPragma} = 1;
5079             }
5080             $_[1];
5081             }
5082             ],
5083             [#Rule 182
5084             'PragmaDeclaration', 1, undef
5085             ],
5086             [#Rule 183
5087             'ExternalCompilationUnitPragma', 3,
5088             sub
5089             #line 1089 "parser.yp"
5090             {
5091             new WAP::wmls::Url($_[0],
5092             'Value' => $_[3],
5093             'Definition' => $_[0]->YYData->{symbtab_url}->Insert($_[2])
5094             );
5095             }
5096             ],
5097             [#Rule 184
5098             'AccessControlPragma', 2,
5099             sub
5100             #line 1099 "parser.yp"
5101             {
5102             $_[2];
5103             }
5104             ],
5105             [#Rule 185
5106             'AccessControlSpecifier', 2,
5107             sub
5108             #line 1106 "parser.yp"
5109             {
5110             new WAP::wmls::AccessDomain($_[0],
5111             'Value' => $_[2],
5112             );
5113             }
5114             ],
5115             [#Rule 186
5116             'AccessControlSpecifier', 2,
5117             sub
5118             #line 1112 "parser.yp"
5119             {
5120             new WAP::wmls::AccessPath($_[0],
5121             'Value' => $_[2]
5122             );
5123             }
5124             ],
5125             [#Rule 187
5126             'AccessControlSpecifier', 4,
5127             sub
5128             #line 1118 "parser.yp"
5129             {
5130             my $domain = new WAP::wmls::AccessDomain($_[0],
5131             'Value' => $_[2],
5132             );
5133             my $path = new WAP::wmls::AccessPath($_[0],
5134             'Value' => $_[4],
5135             );
5136             $domain->concat($path);
5137             }
5138             ],
5139             [#Rule 188
5140             'MetaPragma', 2,
5141             sub
5142             #line 1131 "parser.yp"
5143             {
5144             $_[2];
5145             }
5146             ],
5147             [#Rule 189
5148             'MetaSpecifier', 1, undef
5149             ],
5150             [#Rule 190
5151             'MetaSpecifier', 1, undef
5152             ],
5153             [#Rule 191
5154             'MetaSpecifier', 1, undef
5155             ],
5156             [#Rule 192
5157             'MetaName', 2,
5158             sub
5159             #line 1147 "parser.yp"
5160             {
5161             new WAP::wmls::MetaName($_[0],
5162             'Value' => $_[2],
5163             );
5164             }
5165             ],
5166             [#Rule 193
5167             'MetaHttpEquiv', 3,
5168             sub
5169             #line 1156 "parser.yp"
5170             {
5171             new WAP::wmls::MetaHttpEquiv($_[0],
5172             'Value' => $_[3],
5173             );
5174             }
5175             ],
5176             [#Rule 194
5177             'MetaUserAgent', 3,
5178             sub
5179             #line 1165 "parser.yp"
5180             {
5181             new WAP::wmls::MetaUserAgent($_[0],
5182             'Value' => $_[3],
5183             );
5184             }
5185             ],
5186             [#Rule 195
5187             'MetaBody', 3,
5188             sub
5189             #line 1174 "parser.yp"
5190             {
5191             $_[2]->concat($_[3]);
5192             $_[1]->concat($_[2]);
5193             }
5194             ],
5195             [#Rule 196
5196             'MetaBody', 2,
5197             sub
5198             #line 1179 "parser.yp"
5199             {
5200             $_[1]->concat($_[2]);
5201             }
5202             ],
5203             [#Rule 197
5204             'MetaPropertyName', 1, undef
5205             ],
5206             [#Rule 198
5207             'MetaContent', 1, undef
5208             ],
5209             [#Rule 199
5210             'MetaScheme', 1, undef
5211             ],
5212             [#Rule 200
5213             'FunctionDeclarations', 1, undef
5214             ],
5215             [#Rule 201
5216             'FunctionDeclarations', 2,
5217             sub
5218             #line 1203 "parser.yp"
5219             {
5220             $_[1]->concat($_[2]);
5221             }
5222             ]
5223             ],
5224             @_);
5225             bless($self,$class);
5226             }
5227            
5228             #line 1208 "parser.yp"
5229            
5230            
5231             # Number of rules : 202
5232             # Number of terminals : 80
5233             # Number of non-terminals : 66
5234             # Number of states : 308
5235            
5236             use strict;
5237             use warnings;
5238            
5239             use WAP::wmls::lexer;
5240             use WAP::wmls::node;
5241            
5242             sub BuildUnop {
5243             my ($parser, $op, $expr) = @_;
5244             my $unop = new WAP::wmls::UnaryOp($parser,
5245             'Operator' => $op
5246             );
5247             return $expr->concat($unop);
5248             }
5249            
5250             sub BuildBinop {
5251             my ($parser, $expr1, $op, $expr2) = @_;
5252             my $binop = new WAP::wmls::BinaryOp($parser,
5253             'Operator' => $op,
5254             'Left' => $expr1->{Last}
5255             );
5256             $expr1->concat($expr2);
5257             return $expr1->concat($binop);
5258             }
5259            
5260             sub BuildLogop {
5261             my ($parser, $expr1, $logop, $expr2) = @_;
5262             my $endif = $parser->YYData->{symbtab_label}->Next();
5263             my $label = new WAP::wmls::Label($parser,
5264             'Definition' => $endif
5265             );
5266             $endif->{Node} = $label;
5267             my $falsejump = new WAP::wmls::FalseJump($parser,
5268             'Definition' => $endif
5269             );
5270             $endif->{NbUse} ++;
5271             $expr1->concat($logop);
5272             $expr1->concat($falsejump);
5273             $expr1->concat($expr2);
5274             $expr1->concat(new WAP::wmls::ToBool($parser));
5275             return $expr1->concat($label);
5276             }
5277            
5278             sub BuildIf {
5279             my ($parser, $expr, $stat) = @_;
5280             my $endif = $parser->YYData->{symbtab_label}->Next();
5281             my $label = new WAP::wmls::Label($parser,
5282             'Definition' => $endif
5283             );
5284             $endif->{Node} = $label;
5285             my $falsejump = new WAP::wmls::FalseJump($parser,
5286             'Definition' => $endif
5287             );
5288             $endif->{NbUse} ++;
5289             $expr->concat($falsejump);
5290             $expr->concat($stat) if (defined $stat);
5291             return $expr->concat($label);
5292             }
5293            
5294             sub BuildIfElse {
5295             my ($parser, $expr, $stat1, $stat2) = @_;
5296             my $else = $parser->YYData->{symbtab_label}->Next();
5297             my $endif = $parser->YYData->{symbtab_label}->Next();
5298             my $label1 = new WAP::wmls::Label($parser,
5299             'Definition' => $else
5300             );
5301             $else->{Node} = $label1;
5302             my $label2 = new WAP::wmls::Label($parser,
5303             'Definition' => $endif
5304             );
5305             $endif->{Node} = $label2;
5306             my $falsejump = new WAP::wmls::FalseJump($parser,
5307             'Definition' => $else
5308             );
5309             $else->{NbUse} ++;
5310             my $jump = new WAP::wmls::Jump($parser,
5311             'Definition' => $endif
5312             );
5313             $endif->{NbUse} ++;
5314             $expr->concat($falsejump);
5315             $expr->concat($stat1) if (defined $stat1);
5316             $expr->concat($jump);
5317             $expr->concat($label1);
5318             $expr->concat($stat2) if (defined $stat2);
5319             return $expr->concat($label2);
5320             }
5321            
5322             sub BuildFor {
5323             my ($parser, $init, $cond, $upd, $stat) = @_;
5324             my $for;
5325             my $loop = $parser->YYData->{symbtab_label}->Next();
5326             my $continue = $parser->YYData->{symbtab_label}->Next();
5327             my $break = $parser->YYData->{symbtab_label}->Next();
5328             my $label1 = new WAP::wmls::Label($parser,
5329             'Definition' => $loop
5330             );
5331             $loop->{Node} = $label1;
5332             my $label2 = new WAP::wmls::Label($parser,
5333             'Definition' => $continue
5334             );
5335             $continue->{Node} = $label2;
5336             my $label3 = new WAP::wmls::Label($parser,
5337             'Definition' => $break
5338             );
5339             $break->{Node} = $label3;
5340             if (defined $cond) {
5341             my $falsejump = new WAP::wmls::FalseJump($parser,
5342             'Definition' => $break
5343             );
5344             $break->{NbUse} ++;
5345             my $jump = new WAP::wmls::Jump($parser,
5346             'Definition' => $loop
5347             );
5348             $loop->{NbUse} ++;
5349             $for = (defined $init) ? $init->concat($label1) : $label1;
5350             $for->concat($cond);
5351             $for->concat($falsejump);
5352             $for->concat($stat) if (defined $stat);
5353             $for->concat($label2);
5354             $for->concat($upd) if (defined $upd);
5355             $for->concat($jump);
5356             $for->concat($label3);
5357             }
5358             else {
5359             my $jump = new WAP::wmls::Jump($parser,
5360             'Definition' => $loop
5361             );
5362             $loop->{NbUse} ++;
5363             $for = (defined $init) ? $init->concat($label1) : $label1;
5364             $for->concat($stat) if (defined $stat);
5365             $for->concat($label2);
5366             $for->concat($upd) if (defined $upd);
5367             $for->concat($jump);
5368             $for->concat($label3);
5369             }
5370             for (my $node = $for; defined $node; $node = $node->{Next}) {
5371             my $opcode = $node->{OpCode};
5372             if ( $opcode->isa('Jump')
5373             and exists $opcode->{TypeDef} ) {
5374             my $type = $opcode->{TypeDef};
5375             if ($type eq 'LABEL_CONTINUE') {
5376             $node->configure(
5377             'Definition' => $continue
5378             );
5379             $continue->{NbUse} ++;
5380             }
5381             elsif ($type eq 'LABEL_BREAK') {
5382             $node->configure(
5383             'Definition' => $break
5384             );
5385             $break->{NbUse} ++;
5386             }
5387             }
5388             }
5389             return $for;
5390             }
5391            
5392             sub Run {
5393             my $parser = shift;
5394            
5395             my $srcname = $parser->YYData->{filename};
5396             my $enc = $parser->YYData->{encoding};
5397             open $parser->YYData->{fh}, "<:encoding($enc)", $srcname
5398             or die "can't open $srcname ($!).\n";
5399            
5400             WAP::wmls::lexer::InitLexico($parser);
5401             $parser->YYData->{symbtab_var} = new WAP::wmls::SymbTabVar($parser);
5402             $parser->YYData->{symbtab_lib} = new WAP::wmls::SymbTabLib($parser);
5403             $parser->YYData->{symbtab_func} = new WAP::wmls::SymbTabFunc($parser);
5404             $parser->YYData->{symbtab_url} = new WAP::wmls::SymbTabUrl($parser);
5405             $parser->YYData->{symbtab_label} = new WAP::wmls::SymbTabLabel($parser);
5406             $parser->InitStandardLibrary();
5407             $parser->YYData->{doc} = q{};
5408             $parser->YYData->{lineno} = 1;
5409             $parser->YYParse(
5410             yylex => \&WAP::wmls::lexer::Lexer,
5411             yyerror => sub { return; }
5412             );
5413            
5414             close $parser->YYData->{fh};
5415             delete $parser->{RULES};
5416             delete $parser->{STATES};
5417             delete $parser->{STACK};
5418             return;
5419             }
5420            
5421             sub InitStandardLibrary {
5422             my $parser = shift;
5423             my $cfg = $INC{'WAP/wmls/parser.pm'};
5424             $cfg =~ s/parser\.pm$//;
5425             $cfg .= 'wmlslibs.cfg';
5426             open my $IN, '<', $cfg
5427             or warn "can't open $cfg.\n";
5428            
5429             my $lib = undef;
5430             my $LibID;
5431             while (<$IN>) {
5432             if (/^#.*$/) {
5433             # print "Comment $_";
5434             }
5435             elsif (/^\s*$/) {
5436             # print "Empty\n";
5437             }
5438             elsif (/^\@([A-Z_a-z][0-9A-Z_a-z]*)\s+([0-9]+)\s*$/) {
5439             # print "Lib $1 $2\n";
5440             $lib = $1;
5441             $LibID = $2;
5442             $parser->YYData->{symbtab_lib}->Insert($lib, 1);
5443             }
5444             elsif (/^([A-Z_a-z][0-9A-Z_a-z]*)\s+([0-9]+)\s+([0-9]+)\s*$/) {
5445             # print "Fct $1 $2 $3\n";
5446             if (defined $lib) {
5447             my $symb = $lib . '.' . $1;
5448             $parser->YYData->{symbtab_func}->InsertLibrary($symb, $LibID, $2, $3);
5449             }
5450             }
5451             else {
5452             print "cfg? $_";
5453             }
5454             }
5455             close $IN;
5456             return;
5457             }
5458            
5459             sub Error {
5460             my $parser = shift;
5461             my ($msg) = @_;
5462            
5463             $msg ||= "Syntax error.\n";
5464            
5465             if (exists $parser->YYData->{nb_error}) {
5466             $parser->YYData->{nb_error} ++;
5467             }
5468             else {
5469             $parser->YYData->{nb_error} = 1;
5470             }
5471            
5472             print STDOUT '#',$parser->YYData->{filename},':',$parser->YYData->{lineno},'#Error: ',$msg
5473             if ( exists $parser->YYData->{verbose_error}
5474             and $parser->YYData->{verbose_error});
5475             return;
5476             }
5477            
5478             sub Warning {
5479             my $parser = shift;
5480             my ($msg) = @_;
5481            
5482             $msg ||= ".\n";
5483            
5484             if (exists $parser->YYData->{nb_warning}) {
5485             $parser->YYData->{nb_warning} ++;
5486             }
5487             else {
5488             $parser->YYData->{nb_warning} = 1;
5489             }
5490            
5491             print STDOUT '#',$parser->YYData->{filename},':',$parser->YYData->{lineno},'#Warning: ',$msg
5492             if ( exists $parser->YYData->{verbose_warning}
5493             and $parser->YYData->{verbose_warning});
5494             return;
5495             }
5496            
5497             sub Info {
5498             my $parser = shift;
5499             my ($msg) = @_;
5500            
5501             $msg ||= ".\n";
5502            
5503             if (exists $parser->YYData->{nb_info}) {
5504             $parser->YYData->{nb_info} ++;
5505             }
5506             else {
5507             $parser->YYData->{nb_info} = 1;
5508             }
5509            
5510             print STDOUT '#',$parser->YYData->{filename},':',$parser->YYData->{lineno},'#Info: ',$msg
5511             if ( exists $parser->YYData->{verbose_info}
5512             and $parser->YYData->{verbose_info});
5513             return;
5514             }
5515            
5516            
5517             1;