From 896440df7c3ac66ad37192d66f69171d01cae182 Mon Sep 17 00:00:00 2001 From: Jeremy Ashkenas Date: Sun, 13 Dec 2009 20:29:44 -0500 Subject: [PATCH] more more, including &&=, ||= --- code.jaa | 7 +- documents.jaa | 138 +- grammar.y | 31 +- lexer.rb | 19 +- nodes.rb | 78 +- parser.output | 3375 ------------------------------------------------ parser.rb | 1226 ++++++++++-------- parser_test.rb | 2 +- 8 files changed, 844 insertions(+), 4032 deletions(-) delete mode 100644 parser.output diff --git a/code.jaa b/code.jaa index 86dbd4185d..4fe45f83d6 100644 --- a/code.jaa +++ b/code.jaa @@ -1,6 +1,5 @@ # TODO: switch/case statements -# new Function() -# Regexes +# Better block delimiters # Functions: square: x => x * x. @@ -50,6 +49,10 @@ race: => if tired then return sleep(). race(). +# Conditional operators: +good ||= evil +wine &&= cheese + diff --git a/documents.jaa b/documents.jaa index 3cfda24d3e..ced25b109d 100644 --- a/documents.jaa +++ b/documents.jaa @@ -1,78 +1,72 @@ # Document Model dc.model.Document: dc.Model.extend({ - # constructor : attributes => this.base(attributes). - # - # # For display, show either the highlighted search results, or the summary, - # # if no highlights are available. - # # The import process will take care of this in the future, but the inline - # # version of the summary has all runs of whitespace squeezed out. - # displaySummary : => - # text: this.get('highlight') or this.get('summary') - # if text then text.replace(/\s+/g, ' ') else '' - # . - # - # # Return a list of the document's metadata. Think about caching this on the - # # document by binding to Metadata, instead of on-the-fly. - # metadata: => - # docId: this.id - # _.select(Metadata.models(), - # datum => _.any(datum.get('instances'), - # instance => instance.document_id == docId. - # ). - # ). - # . - # - # bookmark: pageNumber => - # bookmark: new dc.model.Bookmark({title: this.get('title'), page_number: pageNumber, document_id: this.id}) - # Bookmarks.create(bookmark) - # . - # - # # Inspect. - # toString: => 'Document ' + this.id + ' "' + this.get('title') + '"'. + constructor: attributes => this.base(attributes). + + # For display, show either the highlighted search results, or the summary, + # if no highlights are available. + # The import process will take care of this in the future, but the inline + # version of the summary has all runs of whitespace squeezed out. + displaySummary: => + text: this.get('highlight') or this.get('summary') + if text then text.replace(/\s+/g, ' ') else ''.. + + # Return a list of the document's metadata. Think about caching this on the + # document by binding to Metadata, instead of on-the-fly. + metadata: => + docId: this.id + _.select(Metadata.models() + datum => _.any(datum.get('instances') + instance => instance.document_id == docId.).). + + bookmark: pageNumber => + bookmark: new dc.model.Bookmark({title: this.get('title'), page_number: pageNumber, document_id: this.id}) + Bookmarks.create(bookmark). + + # Inspect. + toString: => 'Document ' + this.id + ' "' + this.get('title') + '"'. + +}) + +# Document Set +dc.model.DocumentSet: dc.model.RESTfulSet.extend({ + + resource: 'documents' + + SELECTION_CHANGED: 'documents:selection_changed' + + constructor: options => + this.base(options) + _.bindAll(this, 'downloadSelectedViewers', 'downloadSelectedPDF', 'downloadSelectedFullText'). + + selected: => _.select(this.models(), m => m.get('selected').). + + selectedIds: => _.pluck(this.selected(), 'id'). + + countSelected: => this.selected().length. + + downloadSelectedViewers: => + dc.app.download('/download/' + this.selectedIds().join('/') + '/document_viewer.zip'). + + downloadSelectedPDF: => + if this.countSelected() <= 1 then return window.open(this.selected()[0].get('pdf_url')). + dc.app.download('/download/' + this.selectedIds().join('/') + '/document_pdfs.zip'). + + downloadSelectedFullText: => + if this.countSelected() <= 1 then return window.open(this.selected()[0].get('full_text_url')). + dc.app.download('/download/' + this.selectedIds().join('/') + '/document_text.zip'). + + # We override "_onModelEvent" to fire selection changed events when documents + # change their selected state. + _onModelEvent: e, model => + this.base(e, model) + fire: e == dc.Model.CHANGED and model.hasChanged('selected') + if fire then _.defer(_(this.fire).bind(this, this.SELECTION_CHANGED, this)).. }) -# # Document Set -# dc.model.DocumentSet : dc.model.RESTfulSet.extend({ -# -# resource : 'documents' -# -# SELECTION_CHANGED : 'documents:selection_changed' -# -# constructor : options => -# this.base(options) -# _.bindAll(this, 'downloadSelectedViewers', 'downloadSelectedPDF', 'downloadSelectedFullText') -# -# selected : => _.select(this.models(), m => m.get('selected')) -# -# selectedIds : => _.pluck(this.selected(), 'id') -# -# countSelected : => this.selected().length -# -# downloadSelectedViewers : => -# dc.app.download('/download/' + this.selectedIds().join('/') + '/document_viewer.zip'); -# -# downloadSelectedPDF : => -# return window.open(this.selected()[0].get('pdf_url')) if this.countSelected() <= 1 -# dc.app.download('/download/' + this.selectedIds().join('/') + '/document_pdfs.zip') -# -# downloadSelectedFullText : => -# return window.open(this.selected()[0].get('full_text_url')) if this.countSelected() <= 1 -# dc.app.download('/download/' + this.selectedIds().join('/') + '/document_text.zip') -# -# # We override "_onModelEvent" to fire selection changed events when documents -# # change their selected state. -# _onModelEvent : e, model => -# this.base(e, model) -# fire : (e == dc.Model.CHANGED and model.hasChanged('selected')) -# _.defer(_(this.fire).bind(this, this.SELECTION_CHANGED, this)) if fire -# } -# -# }) -# -# # The main set of Documents, used by the search tab. -# window.Documents : new dc.model.DocumentSet() -# -# # The set of documents that is used to look at a particular label. -# dc.app.LabeledDocuments : new dc.model.DocumentSet() +# The main set of Documents, used by the search tab. +window.Documents: new dc.model.DocumentSet() + +# The set of documents that is used to look at a particular label. +dc.app.LabeledDocuments: new dc.model.DocumentSet() diff --git a/grammar.y b/grammar.y index cfa7de3e6e..9b4c2b74fd 100644 --- a/grammar.y +++ b/grammar.y @@ -8,8 +8,8 @@ token STRING token REGEX token TRUE FALSE NULL token IDENTIFIER PROPERTY_ACCESS -token CODE -token RETURN +token CODE PARAM +token NEW RETURN prechigh nonassoc UMINUS NOT '!' @@ -128,27 +128,36 @@ rule | Expression '+=' Expression { result = OpNode.new(val[1], val[0], val[2]) } | Expression '/=' Expression { result = OpNode.new(val[1], val[0], val[2]) } | Expression '*=' Expression { result = OpNode.new(val[1], val[0], val[2]) } - # Add ||= &&= + | Expression '||=' Expression { result = OpNode.new(val[1], val[0], val[2]) } + | Expression '&&=' Expression { result = OpNode.new(val[1], val[0], val[2]) } ; # Method definition Code: - "=>" Expressions "." { result = CodeNode.new([], val[1]) } - | ParamList - "=>" Expressions "." { result = CodeNode.new(val[0], val[2]) } + ParamList "=>" Expression { result = CodeNode.new(val[0], val[2]) } + | ParamList "=>" Expressions "." { result = CodeNode.new(val[0], val[2]) } ; ParamList: /* nothing */ { result = [] } - | IDENTIFIER { result = val } - | ParamList "," IDENTIFIER { result = val[0] << val[2] } + | PARAM { result = val } + | ParamList "," PARAM { result = val[0] << val[2] } ; Variable: IDENTIFIER { result = VariableNode.new(val) } - | Variable PROPERTY_ACCESS - IDENTIFIER { result = val[0] << val[2] } + | Variable Accessor { result = val[0] << val[1] } + | Call Accessor { result = VariableNode.new(val[0], [val[1]]) } + ; + + Accessor: + PROPERTY_ACCESS IDENTIFIER { result = AccessorNode.new(val[1]) } + | Index { result = val[0] } + ; + + Index: + "[" Literal "]" { result = IndexNode.new(val[1]) } ; Object: @@ -169,6 +178,7 @@ rule # A method call. Call: Variable "(" ArgList ")" { result = CallNode.new(val[0], val[2]) } + | NEW Variable "(" ArgList ")" { result = CallNode.new(val[1], val[3], true) } ; # An Array. @@ -181,6 +191,7 @@ rule /* nothing */ { result = [] } | Expression { result = val } | ArgList "," Expression { result = val[0] << val[2] } + | ArgList Terminator Expression { result = val[0] << val[2] } ; If: diff --git a/lexer.rb b/lexer.rb index 9d26314833..310c70d822 100644 --- a/lexer.rb +++ b/lexer.rb @@ -3,11 +3,11 @@ class Lexer KEYWORDS = ["if", "else", "then", "true", "false", "null", "and", "or", "is", "aint", "not", - "return"] + "new", "return"] IDENTIFIER = /\A([a-zA-Z$_]\w*)/ NUMBER = /\A([0-9]+(\.[0-9]+)?)/ - STRING = /\A["'](.*?)["']/ + STRING = /\A("(.*?)"|'(.*?)')/ OPERATOR = /\A([+\*&|\/\-%=<>]+)/ WHITESPACE = /\A([ \t\r]+)/ NEWLINE = /\A([\r\n]+)/ @@ -61,7 +61,7 @@ def number_token def string_token return false unless string = @chunk[STRING, 1] @tokens << [:STRING, string] - @i += string.length + 2 + @i += string.length end def regex_token @@ -91,9 +91,22 @@ def literal_token return @i += value.length end value = @chunk[OPERATOR, 1] + tag_parameters if value && value.match(CODE) value ||= @chunk[0,1] @tokens << [value, value] @i += value.length end + # The main source of ambiguity in our grammar was Parameter lists (as opposed + # to argument lists in method calls). Tag parameter identifiers to avoid this. + def tag_parameters + index = 0 + loop do + tok = @tokens[index -= 1] + next if tok[0] == ',' + return if tok[0] != :IDENTIFIER + tok[0] = :PARAM + end + end + end \ No newline at end of file diff --git a/nodes.rb b/nodes.rb index 500a755241..49127bfa31 100644 --- a/nodes.rb +++ b/nodes.rb @@ -5,6 +5,9 @@ class Node def line_ending ';' end + + def compile(indent='', last=false) + end end # Collection of nodes each one representing an expression. @@ -38,7 +41,7 @@ def initialize(value) @value = value end - def compile(indent) + def compile(indent, last=false) @value.to_s end end @@ -48,8 +51,8 @@ def initialize(expression) @expression = expression end - def compile(indent) - "return #{@expression.compile(indent)};" + def compile(indent, last=false) + "#{indent}return #{@expression.compile(indent)};" end end @@ -61,20 +64,20 @@ def compile(indent) # receiver.method(argument1, argument2) # class CallNode < Node - def initialize(variable, arguments=[]) - @variable, @arguments = variable, arguments + def initialize(variable, arguments=[], new_instance=false) + @variable, @arguments, @new = variable, arguments, new_instance end - def compile(indent) + def compile(indent, last=false) args = @arguments.map{|a| a.compile(indent) }.join(', ') - "#{@variable.compile(indent)}(#{args})" + prefix = @new ? "new " : '' + "#{prefix}#{@variable.compile(indent)}(#{args})" end end class VariableNode < Node - def initialize(name) - @name = name - @properties = [] + def initialize(name, properties=[]) + @name, @properties = name, properties end def <<(other) @@ -86,8 +89,30 @@ def properties? return !@properties.empty? end - def compile(indent) - [@name, @properties].flatten.join('.') + def compile(indent, last=false) + [@name, @properties].flatten.map { |v| + v.respond_to?(:compile) ? v.compile(indent) : v.to_s + }.join('') + end +end + +class AccessorNode + def initialize(name) + @name = name + end + + def compile(indent, last=false) + ".#{@name}" + end +end + +class IndexNode + def initialize(index) + @index = index + end + + def compile(indent, last=false) + "[#{@index.compile(indent)}]" end end @@ -97,10 +122,10 @@ def initialize(variable, value, context=nil) @variable, @value, @context = variable, value, context end - def compile(indent) + def compile(indent, last=false) return "#{@variable}: #{@value.compile(indent + TAB)}" if @context == :object var_part = @variable.compile(indent) - var_part = "var " + var_part unless @variable.properties? + var_part = "var " + var_part unless @variable.properties? || last "#{var_part} = #{@value.compile(indent)}" end end @@ -116,6 +141,7 @@ class OpNode < Node "aint" => "!==", 'not' => '!', } + CONDITIONALS = ['||=', '&&='] def initialize(operator, first, second=nil) @first, @second = first, second @@ -126,9 +152,16 @@ def unary? @second.nil? end - def compile(indent) + def compile(indent, last=false) + return compile_conditional(indent) if CONDITIONALS.include?(@operator) "(#{@first.compile(indent)} #{@operator} #{@second.compile(indent)})" end + + def compile_conditional(indent) + first, second = @first.compile(indent), @second.compile(indent) + sym = @operator[0..1] + "(#{first} = #{first} #{sym} #{second})" + end end # Method definition. @@ -138,11 +171,12 @@ def initialize(params, body) @body = body end - def compile(indent) + def compile(indent, last=false) nodes = @body.reduce code = nodes.map { |node| - line = node.compile(indent + TAB) - line = "return #{line}" if node == nodes.last + last = node == nodes.last + line = node.compile(indent + TAB, last) + line = "return #{line}" if last indent + TAB + line + node.line_ending }.join("\n") "function(#{@params.join(', ')}) {\n#{code}\n#{indent}}" @@ -154,7 +188,7 @@ def initialize(properties = []) @properties = properties end - def compile(indent) + def compile(indent, last=false) props = @properties.map {|p| indent + TAB + p.compile(indent) }.join(",\n") "{\n#{props}\n#{indent}}" end @@ -165,7 +199,7 @@ def initialize(objects=[]) @objects = objects end - def compile(indent) + def compile(indent, last=false) objects = @objects.map {|o| o.compile(indent) }.join(', ') "[#{objects}]" end @@ -188,12 +222,12 @@ def line_ending statement? ? '' : ';' end - def compile(indent) + def compile(indent, last=false) statement? ? compile_statement(indent) : compile_ternary(indent) end def compile_statement(indent) - if_part = "if (#{@condition.compile(indent)}) {\n#{indent + TAB}#{@body.compile(indent + TAB)}\n#{indent}}" + if_part = "if (#{@condition.compile(indent)}) {\n#{@body.compile(indent + TAB)}\n#{indent}}" else_part = @else_body ? " else {\n#{@else_body.compile(indent + TAB)}\n#{indent}}" : '' if_part + else_part end diff --git a/parser.output b/parser.output deleted file mode 100644 index 7a94943984..0000000000 --- a/parser.output +++ /dev/null @@ -1,3375 +0,0 @@ -state 0 contains 1 shift/reduce conflicts -state 1 contains 3 shift/reduce conflicts -state 2 contains 1 reduce/reduce conflicts -state 5 contains 1 shift/reduce conflicts -state 8 contains 1 shift/reduce conflicts -state 8 contains 1 reduce/reduce conflicts -state 9 contains 1 shift/reduce conflicts -state 11 contains 1 shift/reduce conflicts -state 20 contains 1 shift/reduce conflicts -state 27 contains 1 shift/reduce conflicts -state 29 contains 1 shift/reduce conflicts -state 36 contains 1 shift/reduce conflicts -state 36 contains 1 reduce/reduce conflicts -state 37 contains 1 shift/reduce conflicts -state 45 contains 1 shift/reduce conflicts -state 46 contains 1 shift/reduce conflicts -state 47 contains 1 shift/reduce conflicts -state 48 contains 1 shift/reduce conflicts -state 49 contains 1 shift/reduce conflicts -state 50 contains 1 shift/reduce conflicts -state 51 contains 1 shift/reduce conflicts -state 52 contains 1 shift/reduce conflicts -state 53 contains 1 shift/reduce conflicts -state 54 contains 1 shift/reduce conflicts -state 55 contains 1 shift/reduce conflicts -state 56 contains 1 shift/reduce conflicts -state 57 contains 1 shift/reduce conflicts -state 58 contains 1 shift/reduce conflicts -state 59 contains 1 shift/reduce conflicts -state 60 contains 1 shift/reduce conflicts -state 61 contains 1 shift/reduce conflicts -state 62 contains 1 shift/reduce conflicts -state 63 contains 1 shift/reduce conflicts -state 64 contains 1 shift/reduce conflicts -state 65 contains 1 shift/reduce conflicts -state 66 contains 1 shift/reduce conflicts -state 67 contains 1 shift/reduce conflicts -state 70 contains 2 shift/reduce conflicts -state 74 contains 1 shift/reduce conflicts -state 78 contains 21 shift/reduce conflicts -state 79 contains 1 shift/reduce conflicts -state 80 contains 1 shift/reduce conflicts -state 82 contains 1 shift/reduce conflicts -state 119 contains 1 shift/reduce conflicts -state 122 contains 1 shift/reduce conflicts -state 124 contains 1 shift/reduce conflicts - - --------- Grammar -------- - -rule 1 Root: -rule 2 Root: Expressions -rule 3 Expressions: Expression -rule 4 Expressions: Expressions Terminator Expression -rule 5 Expressions: Expressions Terminator -rule 6 Expressions: Terminator Expressions -rule 7 Expression: Literal -rule 8 Expression: Variable -rule 9 Expression: Call -rule 10 Expression: Assign -rule 11 Expression: Object -rule 12 Expression: Code -rule 13 Expression: Operation -rule 14 Expression: Array -rule 15 Expression: If -rule 16 Terminator: "\n" -rule 17 Terminator: ";" -rule 18 Literal: NUMBER -rule 19 Literal: STRING -rule 20 Literal: TRUE -rule 21 Literal: FALSE -rule 22 Literal: NULL -rule 23 Assign: Variable ":" Expression -rule 24 AssignObj: IDENTIFIER ":" Expression -rule 25 Operation: "!" Expression -rule 26 Operation: "-" Expression -rule 27 Operation: NOT Expression -rule 28 Operation: Expression "*" Expression -rule 29 Operation: Expression "/" Expression -rule 30 Operation: Expression "%" Expression -rule 31 Operation: Expression "+" Expression -rule 32 Operation: Expression "-" Expression -rule 33 Operation: Expression "<=" Expression -rule 34 Operation: Expression "<" Expression -rule 35 Operation: Expression ">" Expression -rule 36 Operation: Expression ">=" Expression -rule 37 Operation: Expression "==" Expression -rule 38 Operation: Expression "!=" Expression -rule 39 Operation: Expression IS Expression -rule 40 Operation: Expression AINT Expression -rule 41 Operation: Expression "&&" Expression -rule 42 Operation: Expression "||" Expression -rule 43 Operation: Expression AND Expression -rule 44 Operation: Expression OR Expression -rule 45 Operation: Expression "-=" Expression -rule 46 Operation: Expression "+=" Expression -rule 47 Operation: Expression "/=" Expression -rule 48 Operation: Expression "*=" Expression -rule 49 Code: "=>" Expressions "." -rule 50 Code: ParamList "=>" Expressions "." -rule 51 ParamList: -rule 52 ParamList: IDENTIFIER -rule 53 ParamList: ParamList "," IDENTIFIER -rule 54 Variable: IDENTIFIER -rule 55 Variable: Variable PROPERTY_ACCESS IDENTIFIER -rule 56 Object: "{" "}" -rule 57 Object: "{" AssignList "}" -rule 58 Object: "{" Terminator AssignList Terminator "}" -rule 59 AssignList: -rule 60 AssignList: AssignObj -rule 61 AssignList: AssignList "," AssignObj -rule 62 AssignList: AssignList Terminator AssignObj -rule 63 Call: Variable "(" ArgList ")" -rule 64 Array: "[" ArgList "]" -rule 65 ArgList: -rule 66 ArgList: Expression -rule 67 ArgList: ArgList "," Expression -rule 68 If: IF Expression THEN Expression "." -rule 69 If: IF Expression Terminator Expressions "." -rule 70 If: IF Expression THEN Expression ELSE Expression "." -rule 71 If: IF Expression Terminator Expressions Terminator ELSE Expressions "." - -------- Symbols ------- - -**Nonterminals, with rules where they appear - - $start (50) - on right: - on left : - Root (51) - on right: - on left : 1 2 - Expressions (52) - on right: 2 4 5 6 49 50 69 71 - on left : 3 4 5 6 - Expression (53) - on right: 3 4 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 66 67 68 69 70 71 - on left : 7 8 9 10 11 12 13 14 15 - Terminator (54) - on right: 4 5 6 58 62 69 71 - on left : 16 17 - Literal (55) - on right: 7 - on left : 18 19 20 21 22 - Variable (56) - on right: 8 23 55 63 - on left : 54 55 - Call (57) - on right: 9 - on left : 63 - Assign (58) - on right: 10 - on left : 23 - Object (59) - on right: 11 - on left : 56 57 58 - Code (60) - on right: 12 - on left : 49 50 - Operation (61) - on right: 13 - on left : 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 - Array (62) - on right: 14 - on left : 64 - If (63) - on right: 15 - on left : 68 69 70 71 - AssignObj (64) - on right: 60 61 62 - on left : 24 - ParamList (65) - on right: 50 53 - on left : 51 52 53 - AssignList (66) - on right: 57 58 61 62 - on left : 59 60 61 62 - ArgList (67) - on right: 63 64 67 - on left : 65 66 67 - -**Terminals, with rules where they appear - - $end (0) - error (1) - IF (2) 68 69 70 71 - ELSE (3) 70 71 - THEN (4) 68 70 - NEWLINE (5) - NUMBER (6) 18 - STRING (7) 19 - TRUE (8) 20 - FALSE (9) 21 - NULL (10) 22 - IDENTIFIER (11) 24 52 53 54 55 - PROPERTY_ACCESS (12) 55 - CODE (13) - UMINUS (14) - NOT (15) 27 - "!" (16) 25 - "*" (17) 28 - "/" (18) 29 - "%" (19) 30 - "+" (20) 31 - "-" (21) 26 32 - "<=" (22) 33 - "<" (23) 34 - ">" (24) 35 - ">=" (25) 36 - "==" (26) 37 - "!=" (27) 38 - IS (28) 39 - AINT (29) 40 - "&&" (30) 41 - "||" (31) 42 - AND (32) 43 - OR (33) 44 - "-=" (34) 45 - "+=" (35) 46 - "/=" (36) 47 - "*=" (37) 48 - "\n" (38) 16 - ";" (39) 17 - ":" (40) 23 24 - "=>" (41) 49 50 - "." (42) 49 50 68 69 70 71 - "," (43) 53 61 67 - "{" (44) 56 57 58 - "}" (45) 56 57 58 - "(" (46) 63 - ")" (47) 63 - "[" (48) 64 - "]" (49) 64 - ---------- State --------- - -state 0 - - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "\n" shift, and go to state 12 - ";" shift, and go to state 15 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - "," reduce using rule 51 (ParamList) - $default reduce using rule 1 (Root) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Root go to state 19 - Array go to state 18 - Expressions go to state 23 - If go to state 22 - Expression go to state 25 - Terminator go to state 29 - ParamList go to state 26 - -state 1 - - 56) Object : "{" _ "}" - 57) Object : "{" _ AssignList "}" - 58) Object : "{" _ Terminator AssignList Terminator "}" - - IDENTIFIER shift, and go to state 31 - "\n" shift, and go to state 12 - "\n" [reduce using rule 59 (AssignList)] - ";" shift, and go to state 15 - ";" [reduce using rule 59 (AssignList)] - "}" shift, and go to state 32 - "}" [reduce using rule 59 (AssignList)] - $default reduce using rule 59 (AssignList) - - AssignList go to state 30 - AssignObj go to state 33 - Terminator go to state 34 - -state 2 - - 52) ParamList : IDENTIFIER _ - 54) Variable : IDENTIFIER _ - - "=>" reduce using rule 52 (ParamList) - "," reduce using rule 52 (ParamList) - "," [reduce using rule 54 (Variable)] - $default reduce using rule 54 (Variable) - - -state 3 - - 7) Expression : Literal _ - - $default reduce using rule 7 (Expression) - - -state 4 - - 8) Expression : Variable _ - 23) Assign : Variable _ ":" Expression - 55) Variable : Variable _ PROPERTY_ACCESS IDENTIFIER - 63) Call : Variable _ "(" ArgList ")" - - PROPERTY_ACCESS shift, and go to state 35 - ":" shift, and go to state 37 - "(" shift, and go to state 36 - $default reduce using rule 8 (Expression) - - -state 5 - - 68) If : IF _ Expression THEN Expression "." - 69) If : IF _ Expression Terminator Expressions "." - 70) If : IF _ Expression THEN Expression ELSE Expression "." - 71) If : IF _ Expression Terminator Expressions Terminator ELSE Expressions "." - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 38 - ParamList go to state 26 - -state 6 - - 9) Expression : Call _ - - $default reduce using rule 9 (Expression) - - -state 7 - - 10) Expression : Assign _ - - $default reduce using rule 10 (Expression) - - -state 8 - - 64) Array : "[" _ ArgList "]" - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - "]" reduce using rule 65 (ArgList) - "," [reduce using rule 65 (ArgList)] - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - ArgList go to state 39 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 40 - ParamList go to state 26 - -state 9 - - 27) Operation : NOT _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 41 - ParamList go to state 26 - -state 10 - - 11) Expression : Object _ - - $default reduce using rule 11 (Expression) - - -state 11 - - 25) Operation : "!" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 42 - ParamList go to state 26 - -state 12 - - 16) Terminator : "\n" _ - - $default reduce using rule 16 (Terminator) - - -state 13 - - 12) Expression : Code _ - - $default reduce using rule 12 (Expression) - - -state 14 - - 18) Literal : NUMBER _ - - $default reduce using rule 18 (Literal) - - -state 15 - - 17) Terminator : ";" _ - - $default reduce using rule 17 (Terminator) - - -state 16 - - 13) Expression : Operation _ - - $default reduce using rule 13 (Expression) - - -state 17 - - 19) Literal : STRING _ - - $default reduce using rule 19 (Literal) - - -state 18 - - 14) Expression : Array _ - - $default reduce using rule 14 (Expression) - - -state 19 - - - $end shift, and go to state 43 - - -state 20 - - 49) Code : "=>" _ Expressions "." - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "\n" shift, and go to state 12 - ";" shift, and go to state 15 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - Expressions go to state 44 - If go to state 22 - Expression go to state 25 - Terminator go to state 29 - ParamList go to state 26 - -state 21 - - 20) Literal : TRUE _ - - $default reduce using rule 20 (Literal) - - -state 22 - - 15) Expression : If _ - - $default reduce using rule 15 (Expression) - - -state 23 - - 2) Root : Expressions _ - 4) Expressions : Expressions _ Terminator Expression - 5) Expressions : Expressions _ Terminator - - "\n" shift, and go to state 12 - ";" shift, and go to state 15 - $default reduce using rule 2 (Root) - - Terminator go to state 45 - -state 24 - - 21) Literal : FALSE _ - - $default reduce using rule 21 (Literal) - - -state 25 - - 3) Expressions : Expression _ - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - "&&" shift, and go to state 61 - "||" shift, and go to state 63 - AND shift, and go to state 65 - OR shift, and go to state 46 - "-=" shift, and go to state 48 - "+=" shift, and go to state 50 - "/=" shift, and go to state 52 - "*=" shift, and go to state 54 - $default reduce using rule 3 (Expressions) - - -state 26 - - 50) Code : ParamList _ "=>" Expressions "." - 53) ParamList : ParamList _ "," IDENTIFIER - - "=>" shift, and go to state 67 - "," shift, and go to state 68 - - -state 27 - - 26) Operation : "-" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 69 - ParamList go to state 26 - -state 28 - - 22) Literal : NULL _ - - $default reduce using rule 22 (Literal) - - -state 29 - - 6) Expressions : Terminator _ Expressions - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "\n" shift, and go to state 12 - ";" shift, and go to state 15 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - Expressions go to state 70 - If go to state 22 - Expression go to state 25 - Terminator go to state 29 - ParamList go to state 26 - -state 30 - - 57) Object : "{" AssignList _ "}" - 61) AssignList : AssignList _ "," AssignObj - 62) AssignList : AssignList _ Terminator AssignObj - - "\n" shift, and go to state 12 - ";" shift, and go to state 15 - "," shift, and go to state 73 - "}" shift, and go to state 71 - - Terminator go to state 72 - -state 31 - - 24) AssignObj : IDENTIFIER _ ":" Expression - - ":" shift, and go to state 74 - - -state 32 - - 56) Object : "{" "}" _ - - $default reduce using rule 56 (Object) - - -state 33 - - 60) AssignList : AssignObj _ - - $default reduce using rule 60 (AssignList) - - -state 34 - - 58) Object : "{" Terminator _ AssignList Terminator "}" - - IDENTIFIER shift, and go to state 31 - $default reduce using rule 59 (AssignList) - - AssignList go to state 75 - AssignObj go to state 33 - -state 35 - - 55) Variable : Variable PROPERTY_ACCESS _ IDENTIFIER - - IDENTIFIER shift, and go to state 76 - - -state 36 - - 63) Call : Variable "(" _ ArgList ")" - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - ")" reduce using rule 65 (ArgList) - "," [reduce using rule 65 (ArgList)] - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - ArgList go to state 77 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 40 - ParamList go to state 26 - -state 37 - - 23) Assign : Variable ":" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 78 - ParamList go to state 26 - -state 38 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - 68) If : IF Expression _ THEN Expression "." - 69) If : IF Expression _ Terminator Expressions "." - 70) If : IF Expression _ THEN Expression ELSE Expression "." - 71) If : IF Expression _ Terminator Expressions Terminator ELSE Expressions "." - - THEN shift, and go to state 79 - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - "&&" shift, and go to state 61 - "||" shift, and go to state 63 - AND shift, and go to state 65 - OR shift, and go to state 46 - "-=" shift, and go to state 48 - "+=" shift, and go to state 50 - "/=" shift, and go to state 52 - "*=" shift, and go to state 54 - "\n" shift, and go to state 12 - ";" shift, and go to state 15 - - Terminator go to state 80 - -state 39 - - 64) Array : "[" ArgList _ "]" - 67) ArgList : ArgList _ "," Expression - - "," shift, and go to state 82 - "]" shift, and go to state 81 - - -state 40 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - 66) ArgList : Expression _ - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - "&&" shift, and go to state 61 - "||" shift, and go to state 63 - AND shift, and go to state 65 - OR shift, and go to state 46 - "-=" shift, and go to state 48 - "+=" shift, and go to state 50 - "/=" shift, and go to state 52 - "*=" shift, and go to state 54 - $default reduce using rule 66 (ArgList) - - -state 41 - - 27) Operation : NOT Expression _ - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - $default reduce using rule 27 (Operation) - - -state 42 - - 25) Operation : "!" Expression _ - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - $default reduce using rule 25 (Operation) - - -state 43 - - - $end shift, and go to state 83 - - -state 44 - - 4) Expressions : Expressions _ Terminator Expression - 5) Expressions : Expressions _ Terminator - 49) Code : "=>" Expressions _ "." - - "\n" shift, and go to state 12 - ";" shift, and go to state 15 - "." shift, and go to state 84 - - Terminator go to state 45 - -state 45 - - 4) Expressions : Expressions Terminator _ Expression - 5) Expressions : Expressions Terminator _ - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - "," reduce using rule 51 (ParamList) - $default reduce using rule 5 (Expressions) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 85 - ParamList go to state 26 - -state 46 - - 44) Operation : Expression OR _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 86 - ParamList go to state 26 - -state 47 - - 33) Operation : Expression "<=" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 87 - ParamList go to state 26 - -state 48 - - 45) Operation : Expression "-=" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 88 - ParamList go to state 26 - -state 49 - - 34) Operation : Expression "<" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 89 - ParamList go to state 26 - -state 50 - - 46) Operation : Expression "+=" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 90 - ParamList go to state 26 - -state 51 - - 35) Operation : Expression ">" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 91 - ParamList go to state 26 - -state 52 - - 47) Operation : Expression "/=" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 92 - ParamList go to state 26 - -state 53 - - 36) Operation : Expression ">=" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 93 - ParamList go to state 26 - -state 54 - - 48) Operation : Expression "*=" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 94 - ParamList go to state 26 - -state 55 - - 37) Operation : Expression "==" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 95 - ParamList go to state 26 - -state 56 - - 38) Operation : Expression "!=" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 96 - ParamList go to state 26 - -state 57 - - 39) Operation : Expression IS _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 97 - ParamList go to state 26 - -state 58 - - 28) Operation : Expression "*" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 98 - ParamList go to state 26 - -state 59 - - 40) Operation : Expression AINT _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 99 - ParamList go to state 26 - -state 60 - - 29) Operation : Expression "/" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 100 - ParamList go to state 26 - -state 61 - - 41) Operation : Expression "&&" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 101 - ParamList go to state 26 - -state 62 - - 30) Operation : Expression "%" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 102 - ParamList go to state 26 - -state 63 - - 42) Operation : Expression "||" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 103 - ParamList go to state 26 - -state 64 - - 31) Operation : Expression "+" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 104 - ParamList go to state 26 - -state 65 - - 43) Operation : Expression AND _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 105 - ParamList go to state 26 - -state 66 - - 32) Operation : Expression "-" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 106 - ParamList go to state 26 - -state 67 - - 50) Code : ParamList "=>" _ Expressions "." - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "\n" shift, and go to state 12 - ";" shift, and go to state 15 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - Expressions go to state 107 - If go to state 22 - Expression go to state 25 - Terminator go to state 29 - ParamList go to state 26 - -state 68 - - 53) ParamList : ParamList "," _ IDENTIFIER - - IDENTIFIER shift, and go to state 108 - - -state 69 - - 26) Operation : "-" Expression _ - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - $default reduce using rule 26 (Operation) - - -state 70 - - 4) Expressions : Expressions _ Terminator Expression - 5) Expressions : Expressions _ Terminator - 6) Expressions : Terminator Expressions _ - - "\n" shift, and go to state 12 - "\n" [reduce using rule 6 (Expressions)] - ";" shift, and go to state 15 - ";" [reduce using rule 6 (Expressions)] - $default reduce using rule 6 (Expressions) - - Terminator go to state 45 - -state 71 - - 57) Object : "{" AssignList "}" _ - - $default reduce using rule 57 (Object) - - -state 72 - - 62) AssignList : AssignList Terminator _ AssignObj - - IDENTIFIER shift, and go to state 31 - - AssignObj go to state 109 - -state 73 - - 61) AssignList : AssignList "," _ AssignObj - - IDENTIFIER shift, and go to state 31 - - AssignObj go to state 110 - -state 74 - - 24) AssignObj : IDENTIFIER ":" _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 111 - ParamList go to state 26 - -state 75 - - 58) Object : "{" Terminator AssignList _ Terminator "}" - 61) AssignList : AssignList _ "," AssignObj - 62) AssignList : AssignList _ Terminator AssignObj - - "\n" shift, and go to state 12 - ";" shift, and go to state 15 - "," shift, and go to state 73 - - Terminator go to state 112 - -state 76 - - 55) Variable : Variable PROPERTY_ACCESS IDENTIFIER _ - - $default reduce using rule 55 (Variable) - - -state 77 - - 63) Call : Variable "(" ArgList _ ")" - 67) ArgList : ArgList _ "," Expression - - "," shift, and go to state 82 - ")" shift, and go to state 113 - - -state 78 - - 23) Assign : Variable ":" Expression _ - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "*" [reduce using rule 23 (Assign)] - "/" shift, and go to state 60 - "/" [reduce using rule 23 (Assign)] - "%" shift, and go to state 62 - "%" [reduce using rule 23 (Assign)] - "+" shift, and go to state 64 - "+" [reduce using rule 23 (Assign)] - "-" shift, and go to state 66 - "-" [reduce using rule 23 (Assign)] - "<=" shift, and go to state 47 - "<=" [reduce using rule 23 (Assign)] - "<" shift, and go to state 49 - "<" [reduce using rule 23 (Assign)] - ">" shift, and go to state 51 - ">" [reduce using rule 23 (Assign)] - ">=" shift, and go to state 53 - ">=" [reduce using rule 23 (Assign)] - "==" shift, and go to state 55 - "==" [reduce using rule 23 (Assign)] - "!=" shift, and go to state 56 - "!=" [reduce using rule 23 (Assign)] - IS shift, and go to state 57 - IS [reduce using rule 23 (Assign)] - AINT shift, and go to state 59 - AINT [reduce using rule 23 (Assign)] - "&&" shift, and go to state 61 - "&&" [reduce using rule 23 (Assign)] - "||" shift, and go to state 63 - "||" [reduce using rule 23 (Assign)] - AND shift, and go to state 65 - AND [reduce using rule 23 (Assign)] - OR shift, and go to state 46 - OR [reduce using rule 23 (Assign)] - "-=" shift, and go to state 48 - "-=" [reduce using rule 23 (Assign)] - "+=" shift, and go to state 50 - "+=" [reduce using rule 23 (Assign)] - "/=" shift, and go to state 52 - "/=" [reduce using rule 23 (Assign)] - "*=" shift, and go to state 54 - "*=" [reduce using rule 23 (Assign)] - $default reduce using rule 23 (Assign) - - -state 79 - - 68) If : IF Expression THEN _ Expression "." - 70) If : IF Expression THEN _ Expression ELSE Expression "." - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 114 - ParamList go to state 26 - -state 80 - - 69) If : IF Expression Terminator _ Expressions "." - 71) If : IF Expression Terminator _ Expressions Terminator ELSE Expressions "." - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "\n" shift, and go to state 12 - ";" shift, and go to state 15 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - Expressions go to state 115 - If go to state 22 - Expression go to state 25 - Terminator go to state 29 - ParamList go to state 26 - -state 81 - - 64) Array : "[" ArgList "]" _ - - $default reduce using rule 64 (Array) - - -state 82 - - 67) ArgList : ArgList "," _ Expression - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 116 - ParamList go to state 26 - -state 83 - - - $default accept - - -state 84 - - 49) Code : "=>" Expressions "." _ - - $default reduce using rule 49 (Code) - - -state 85 - - 4) Expressions : Expressions Terminator Expression _ - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - "&&" shift, and go to state 61 - "||" shift, and go to state 63 - AND shift, and go to state 65 - OR shift, and go to state 46 - "-=" shift, and go to state 48 - "+=" shift, and go to state 50 - "/=" shift, and go to state 52 - "*=" shift, and go to state 54 - $default reduce using rule 4 (Expressions) - - -state 86 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 44) Operation : Expression OR Expression _ - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - $default reduce using rule 44 (Operation) - - -state 87 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 33) Operation : Expression "<=" Expression _ - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - $default reduce using rule 33 (Operation) - - -state 88 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 45) Operation : Expression "-=" Expression _ - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - "&&" shift, and go to state 61 - "||" shift, and go to state 63 - AND shift, and go to state 65 - OR shift, and go to state 46 - "-=" shift, and go to state 48 - "+=" shift, and go to state 50 - "/=" shift, and go to state 52 - "*=" shift, and go to state 54 - $default reduce using rule 45 (Operation) - - -state 89 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 34) Operation : Expression "<" Expression _ - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - $default reduce using rule 34 (Operation) - - -state 90 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 46) Operation : Expression "+=" Expression _ - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - "&&" shift, and go to state 61 - "||" shift, and go to state 63 - AND shift, and go to state 65 - OR shift, and go to state 46 - "-=" shift, and go to state 48 - "+=" shift, and go to state 50 - "/=" shift, and go to state 52 - "*=" shift, and go to state 54 - $default reduce using rule 46 (Operation) - - -state 91 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 35) Operation : Expression ">" Expression _ - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - $default reduce using rule 35 (Operation) - - -state 92 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 47) Operation : Expression "/=" Expression _ - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - "&&" shift, and go to state 61 - "||" shift, and go to state 63 - AND shift, and go to state 65 - OR shift, and go to state 46 - "-=" shift, and go to state 48 - "+=" shift, and go to state 50 - "/=" shift, and go to state 52 - "*=" shift, and go to state 54 - $default reduce using rule 47 (Operation) - - -state 93 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 36) Operation : Expression ">=" Expression _ - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - $default reduce using rule 36 (Operation) - - -state 94 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - 48) Operation : Expression "*=" Expression _ - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - "&&" shift, and go to state 61 - "||" shift, and go to state 63 - AND shift, and go to state 65 - OR shift, and go to state 46 - "-=" shift, and go to state 48 - "+=" shift, and go to state 50 - "/=" shift, and go to state 52 - "*=" shift, and go to state 54 - $default reduce using rule 48 (Operation) - - -state 95 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 37) Operation : Expression "==" Expression _ - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - $default reduce using rule 37 (Operation) - - -state 96 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 38) Operation : Expression "!=" Expression _ - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - $default reduce using rule 38 (Operation) - - -state 97 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 39) Operation : Expression IS Expression _ - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - $default reduce using rule 39 (Operation) - - -state 98 - - 28) Operation : Expression _ "*" Expression - 28) Operation : Expression "*" Expression _ - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - $default reduce using rule 28 (Operation) - - -state 99 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 40) Operation : Expression AINT Expression _ - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - $default reduce using rule 40 (Operation) - - -state 100 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 29) Operation : Expression "/" Expression _ - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - $default reduce using rule 29 (Operation) - - -state 101 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 41) Operation : Expression "&&" Expression _ - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - $default reduce using rule 41 (Operation) - - -state 102 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 30) Operation : Expression "%" Expression _ - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - $default reduce using rule 30 (Operation) - - -state 103 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 42) Operation : Expression "||" Expression _ - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - $default reduce using rule 42 (Operation) - - -state 104 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 31) Operation : Expression "+" Expression _ - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - $default reduce using rule 31 (Operation) - - -state 105 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 43) Operation : Expression AND Expression _ - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - $default reduce using rule 43 (Operation) - - -state 106 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 32) Operation : Expression "-" Expression _ - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - $default reduce using rule 32 (Operation) - - -state 107 - - 4) Expressions : Expressions _ Terminator Expression - 5) Expressions : Expressions _ Terminator - 50) Code : ParamList "=>" Expressions _ "." - - "\n" shift, and go to state 12 - ";" shift, and go to state 15 - "." shift, and go to state 117 - - Terminator go to state 45 - -state 108 - - 53) ParamList : ParamList "," IDENTIFIER _ - - $default reduce using rule 53 (ParamList) - - -state 109 - - 62) AssignList : AssignList Terminator AssignObj _ - - $default reduce using rule 62 (AssignList) - - -state 110 - - 61) AssignList : AssignList "," AssignObj _ - - $default reduce using rule 61 (AssignList) - - -state 111 - - 24) AssignObj : IDENTIFIER ":" Expression _ - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - "&&" shift, and go to state 61 - "||" shift, and go to state 63 - AND shift, and go to state 65 - OR shift, and go to state 46 - "-=" shift, and go to state 48 - "+=" shift, and go to state 50 - "/=" shift, and go to state 52 - "*=" shift, and go to state 54 - $default reduce using rule 24 (AssignObj) - - -state 112 - - 58) Object : "{" Terminator AssignList Terminator _ "}" - 62) AssignList : AssignList Terminator _ AssignObj - - IDENTIFIER shift, and go to state 31 - "}" shift, and go to state 118 - - AssignObj go to state 109 - -state 113 - - 63) Call : Variable "(" ArgList ")" _ - - $default reduce using rule 63 (Call) - - -state 114 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - 68) If : IF Expression THEN Expression _ "." - 70) If : IF Expression THEN Expression _ ELSE Expression "." - - ELSE shift, and go to state 119 - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - "&&" shift, and go to state 61 - "||" shift, and go to state 63 - AND shift, and go to state 65 - OR shift, and go to state 46 - "-=" shift, and go to state 48 - "+=" shift, and go to state 50 - "/=" shift, and go to state 52 - "*=" shift, and go to state 54 - "." shift, and go to state 120 - - -state 115 - - 4) Expressions : Expressions _ Terminator Expression - 5) Expressions : Expressions _ Terminator - 69) If : IF Expression Terminator Expressions _ "." - 71) If : IF Expression Terminator Expressions _ Terminator ELSE Expressions "." - - "\n" shift, and go to state 12 - ";" shift, and go to state 15 - "." shift, and go to state 121 - - Terminator go to state 122 - -state 116 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - 67) ArgList : ArgList "," Expression _ - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - "&&" shift, and go to state 61 - "||" shift, and go to state 63 - AND shift, and go to state 65 - OR shift, and go to state 46 - "-=" shift, and go to state 48 - "+=" shift, and go to state 50 - "/=" shift, and go to state 52 - "*=" shift, and go to state 54 - $default reduce using rule 67 (ArgList) - - -state 117 - - 50) Code : ParamList "=>" Expressions "." _ - - $default reduce using rule 50 (Code) - - -state 118 - - 58) Object : "{" Terminator AssignList Terminator "}" _ - - $default reduce using rule 58 (Object) - - -state 119 - - 70) If : IF Expression THEN Expression ELSE _ Expression "." - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 123 - ParamList go to state 26 - -state 120 - - 68) If : IF Expression THEN Expression "." _ - - $default reduce using rule 68 (If) - - -state 121 - - 69) If : IF Expression Terminator Expressions "." _ - - $default reduce using rule 69 (If) - - -state 122 - - 4) Expressions : Expressions Terminator _ Expression - 5) Expressions : Expressions Terminator _ - 71) If : IF Expression Terminator Expressions Terminator _ ELSE Expressions "." - - IF shift, and go to state 5 - ELSE shift, and go to state 124 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - "," reduce using rule 51 (ParamList) - $default reduce using rule 5 (Expressions) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - If go to state 22 - Expression go to state 85 - ParamList go to state 26 - -state 123 - - 28) Operation : Expression _ "*" Expression - 29) Operation : Expression _ "/" Expression - 30) Operation : Expression _ "%" Expression - 31) Operation : Expression _ "+" Expression - 32) Operation : Expression _ "-" Expression - 33) Operation : Expression _ "<=" Expression - 34) Operation : Expression _ "<" Expression - 35) Operation : Expression _ ">" Expression - 36) Operation : Expression _ ">=" Expression - 37) Operation : Expression _ "==" Expression - 38) Operation : Expression _ "!=" Expression - 39) Operation : Expression _ IS Expression - 40) Operation : Expression _ AINT Expression - 41) Operation : Expression _ "&&" Expression - 42) Operation : Expression _ "||" Expression - 43) Operation : Expression _ AND Expression - 44) Operation : Expression _ OR Expression - 45) Operation : Expression _ "-=" Expression - 46) Operation : Expression _ "+=" Expression - 47) Operation : Expression _ "/=" Expression - 48) Operation : Expression _ "*=" Expression - 70) If : IF Expression THEN Expression ELSE Expression _ "." - - "*" shift, and go to state 58 - "/" shift, and go to state 60 - "%" shift, and go to state 62 - "+" shift, and go to state 64 - "-" shift, and go to state 66 - "<=" shift, and go to state 47 - "<" shift, and go to state 49 - ">" shift, and go to state 51 - ">=" shift, and go to state 53 - "==" shift, and go to state 55 - "!=" shift, and go to state 56 - IS shift, and go to state 57 - AINT shift, and go to state 59 - "&&" shift, and go to state 61 - "||" shift, and go to state 63 - AND shift, and go to state 65 - OR shift, and go to state 46 - "-=" shift, and go to state 48 - "+=" shift, and go to state 50 - "/=" shift, and go to state 52 - "*=" shift, and go to state 54 - "." shift, and go to state 125 - - -state 124 - - 71) If : IF Expression Terminator Expressions Terminator ELSE _ Expressions "." - - IF shift, and go to state 5 - NUMBER shift, and go to state 14 - STRING shift, and go to state 17 - TRUE shift, and go to state 21 - FALSE shift, and go to state 24 - NULL shift, and go to state 28 - IDENTIFIER shift, and go to state 2 - NOT shift, and go to state 9 - "!" shift, and go to state 11 - "-" shift, and go to state 27 - "\n" shift, and go to state 12 - ";" shift, and go to state 15 - "=>" shift, and go to state 20 - "=>" [reduce using rule 51 (ParamList)] - "{" shift, and go to state 1 - "[" shift, and go to state 8 - $default reduce using rule 51 (ParamList) - - Literal go to state 3 - Variable go to state 4 - Call go to state 6 - Assign go to state 7 - Object go to state 10 - Code go to state 13 - Operation go to state 16 - Array go to state 18 - Expressions go to state 126 - If go to state 22 - Expression go to state 25 - Terminator go to state 29 - ParamList go to state 26 - -state 125 - - 70) If : IF Expression THEN Expression ELSE Expression "." _ - - $default reduce using rule 70 (If) - - -state 126 - - 4) Expressions : Expressions _ Terminator Expression - 5) Expressions : Expressions _ Terminator - 71) If : IF Expression Terminator Expressions Terminator ELSE Expressions _ "." - - "\n" shift, and go to state 12 - ";" shift, and go to state 15 - "." shift, and go to state 127 - - Terminator go to state 45 - -state 127 - - 71) If : IF Expression Terminator Expressions Terminator ELSE Expressions "." _ - - $default reduce using rule 71 (If) - diff --git a/parser.rb b/parser.rb index 429b48a985..4084b62270 100644 --- a/parser.rb +++ b/parser.rb @@ -11,7 +11,7 @@ class Parser < Racc::Parser -module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 206) +module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 217) def parse(code, show_tokens=false) # @yydebug = true @tokens = Lexer.new.tokenize(code) @@ -26,498 +26,564 @@ def next_token ##### State transition tables begin ### racc_action_table = [ - 7, 64, 59, 59, 17, 20, 23, 26, 30, 1, - 4, 21, 24, 12, 109, 16, 19, 59, 7, 106, - 110, 5, 17, 20, 23, 26, 30, 1, 4, 72, - 66, 12, 59, 16, 19, 59, 65, 127, 99, 5, - 100, 29, 21, 24, 8, 21, 24, 102, 15, -69, - 21, 24, 61, 104, 109, 102, 111, 103, 121, 29, - 21, 24, 8, 7, 112, nil, 15, 17, 20, 23, - 26, 30, 1, 4, nil, -55, 12, -55, 16, 19, - 63, 7, 62, nil, 5, 17, 20, 23, 26, 30, - 1, 4, 21, 24, 12, nil, 16, 19, nil, 21, - 24, nil, 5, 123, 29, 21, 24, 8, nil, 120, - nil, 15, 49, 51, 53, 34, 36, 49, 51, 53, - 34, 36, 29, 21, 24, 8, 7, 132, nil, 15, - 17, 20, 23, 26, 30, 1, 4, nil, nil, 12, - nil, 16, 19, nil, nil, 7, nil, 5, nil, 17, - 20, 23, 26, 30, 1, 4, nil, nil, 12, nil, - 16, 19, nil, nil, 21, 24, 5, 29, nil, nil, - 8, 49, 51, 53, 15, 7, 128, nil, nil, 17, - 20, 23, 26, 30, 1, 4, 29, nil, 12, 8, - 16, 19, nil, 15, 7, nil, 5, nil, 17, 20, - 23, 26, 30, 1, 4, nil, nil, 12, nil, 16, - 19, 49, 51, 53, nil, 5, 29, nil, -54, 8, - nil, nil, nil, 15, 7, nil, nil, nil, 17, 20, - 23, 26, 30, 1, 4, 29, nil, 12, 8, 16, - 19, nil, 15, 7, nil, 5, nil, 17, 20, 23, - 26, 30, 1, 4, nil, nil, 12, nil, 16, 19, - nil, nil, nil, nil, 5, 29, nil, nil, 8, nil, - nil, nil, 15, 7, nil, nil, nil, 17, 20, 23, - 26, 30, 1, 4, 29, nil, 12, 8, 16, 19, - nil, 15, 7, nil, 5, nil, 17, 20, 23, 26, - 30, 1, 4, nil, nil, 12, nil, 16, 19, nil, - nil, 21, 24, 5, 29, nil, -54, 8, nil, nil, - nil, 15, 7, nil, nil, nil, 17, 20, 23, 26, - 30, 1, 4, 29, nil, 12, 8, 16, 19, nil, - 15, 7, nil, 5, nil, 17, 20, 23, 26, 30, - 1, 4, nil, nil, 12, nil, 16, 19, nil, nil, - nil, nil, 5, 29, nil, nil, 8, nil, nil, nil, - 15, 7, nil, nil, nil, 17, 20, 23, 26, 30, - 1, 4, 29, nil, 12, 8, 16, 19, nil, 15, - 7, nil, 5, nil, 17, 20, 23, 26, 30, 1, - 4, nil, nil, 12, nil, 16, 19, nil, nil, 21, - 24, 5, 29, nil, nil, 8, nil, nil, nil, 15, - 49, 51, 53, 34, 36, nil, nil, nil, 21, 24, - nil, 29, nil, nil, 8, 7, nil, nil, 15, 17, - 20, 23, 26, 30, 1, 4, nil, nil, 12, nil, - 16, 19, nil, 7, nil, nil, 5, 17, 20, 23, - 26, 30, 1, 4, nil, nil, 12, nil, 16, 19, - nil, nil, nil, nil, 5, nil, 29, nil, nil, 8, - nil, nil, nil, 15, 49, 51, 53, 34, 36, nil, - nil, nil, nil, nil, 29, nil, nil, 8, 7, nil, - nil, 15, 17, 20, 23, 26, 30, 1, 4, nil, - nil, 12, nil, 16, 19, nil, 7, nil, nil, 5, - 17, 20, 23, 26, 30, 1, 4, nil, nil, 12, - nil, 16, 19, nil, nil, nil, nil, 5, nil, 29, - nil, nil, 8, nil, nil, nil, 15, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 29, nil, nil, - 8, 7, nil, nil, 15, 17, 20, 23, 26, 30, - 1, 4, nil, nil, 12, nil, 16, 19, nil, nil, - 7, nil, 5, nil, 17, 20, 23, 26, 30, 1, - 4, nil, nil, 12, nil, 16, 19, nil, nil, 21, - 24, 5, 29, nil, nil, 8, nil, nil, nil, 15, - 7, nil, nil, nil, 17, 20, 23, 26, 30, 1, - 4, 29, nil, 12, 8, 16, 19, nil, 15, 7, - nil, 5, nil, 17, 20, 23, 26, 30, 1, 4, - nil, nil, 12, nil, 16, 19, nil, nil, nil, nil, - 5, 29, nil, nil, 8, nil, nil, nil, 15, nil, - nil, nil, nil, nil, nil, nil, nil, 21, 24, nil, - 29, nil, nil, 8, 7, nil, nil, 15, 17, 20, - 23, 26, 30, 1, 4, nil, nil, 12, nil, 16, - 19, nil, 7, nil, nil, 5, 17, 20, 23, 26, - 30, 1, 4, nil, nil, 12, nil, 16, 19, nil, - nil, nil, nil, 5, nil, 29, nil, nil, 8, nil, - nil, nil, 15, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 29, nil, nil, 8, 7, nil, nil, - 15, 17, 20, 23, 26, 30, 1, 4, nil, nil, - 12, nil, 16, 19, nil, 7, nil, nil, 5, 17, - 20, 23, 26, 30, 1, 4, nil, nil, 12, nil, - 16, 19, nil, nil, nil, nil, 5, nil, 29, nil, - nil, 8, nil, nil, nil, 15, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, 29, nil, nil, 8, - 7, nil, nil, 15, 17, 20, 23, 26, 30, 1, - 4, nil, nil, 12, nil, 16, 19, nil, 7, nil, - nil, 5, 17, 20, 23, 26, 30, 1, 4, nil, - nil, 12, nil, 16, 19, nil, nil, nil, nil, 5, - nil, 29, nil, nil, 8, nil, nil, nil, 15, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 29, - nil, nil, 8, 7, nil, nil, 15, 17, 20, 23, - 26, 30, 1, 4, nil, nil, 12, nil, 16, 19, - nil, 7, nil, nil, 5, 17, 20, 23, 26, 30, - 1, 4, nil, nil, 12, nil, 16, 19, nil, nil, - nil, nil, 5, nil, 29, nil, nil, 8, nil, nil, - nil, 15, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 29, nil, nil, 8, 7, nil, nil, 15, - 17, 20, 23, 26, 30, 1, 4, nil, nil, 12, - nil, 16, 19, nil, 7, nil, nil, 5, 17, 20, - 23, 26, 30, 1, 4, nil, nil, 12, nil, 16, - 19, nil, nil, nil, nil, 5, nil, 29, nil, nil, - 8, nil, nil, nil, 15, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, 29, nil, nil, 8, 7, - nil, nil, 15, 17, 20, 23, 26, 30, 1, 4, - nil, nil, 12, nil, 16, 19, nil, 7, nil, nil, - 5, 17, 20, 23, 26, 30, 1, 4, nil, nil, - 12, nil, 16, 19, nil, nil, nil, nil, 5, nil, - 29, nil, nil, 8, nil, nil, nil, 15, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 29, nil, - nil, 8, 7, nil, nil, 15, 17, 20, 23, 26, - 30, 1, 4, nil, nil, 12, nil, 16, 19, nil, - 7, nil, nil, 5, 17, 20, 23, 26, 30, 1, - 4, nil, nil, 12, nil, 16, 19, nil, nil, nil, - nil, 5, nil, 29, nil, nil, 8, nil, nil, nil, - 15, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 29, nil, -54, 8, 7, nil, nil, 15, 17, - 20, 23, 26, 30, 1, 4, nil, nil, 12, nil, - 16, 19, nil, 7, nil, nil, 5, 17, 20, 23, - 26, 30, 1, 4, nil, nil, 12, nil, 16, 19, - nil, nil, nil, nil, 5, nil, 29, nil, nil, 8, - nil, nil, nil, 15, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 29, nil, nil, 8, 7, nil, - -69, 15, 17, 20, 23, 26, 30, 1, 4, nil, - nil, 12, nil, 16, 19, nil, nil, nil, nil, 5, + -1, -73, 5, 75, 70, 116, 19, 21, 25, 28, + 31, 1, 3, 75, 3, 11, 14, 18, 14, 24, + 27, 66, 5, 67, 118, 8, 19, 21, 25, 28, + 31, 1, 3, 40, 43, 11, 14, 18, -73, 24, + 27, 71, 29, 32, 144, 8, 70, 40, 43, 85, + 16, 5, 23, 70, 123, 19, 21, 25, 28, 31, + 1, 3, 40, 43, 11, 14, 18, 75, 24, 27, + 16, 5, 23, 133, 8, 19, 21, 25, 28, 31, + 1, 3, 121, 71, 11, 14, 18, 110, 24, 27, + 71, 29, 32, 35, 8, 29, 32, 29, 32, 16, + 5, 23, 125, 149, 19, 21, 25, 28, 31, 1, + 3, 75, 75, 11, 14, 18, nil, 24, 27, 16, + 5, 23, nil, 8, 19, 21, 25, 28, 31, 1, + 3, 40, 43, 11, 14, 18, nil, 24, 27, 29, + 32, 29, 32, 8, nil, -56, nil, -56, 16, 5, + 23, nil, 79, 19, 21, 25, 28, 31, 1, 3, + 29, 32, 11, 14, 18, nil, 24, 27, 16, 5, + 23, nil, 8, 19, 21, 25, 28, 31, 1, 3, + 40, 43, 11, 14, 18, nil, 24, 27, 29, 32, + 29, 32, 8, 29, 32, 112, 132, 16, 5, 23, + nil, 134, 19, 21, 25, 28, 31, 1, 3, 29, + 32, 11, 14, 18, nil, 24, 27, 16, nil, 23, + nil, 8, 40, 43, 5, 146, nil, nil, 19, 21, + 25, 28, 31, 1, 3, nil, nil, 11, 14, 18, + nil, 24, 27, -56, nil, -56, 16, 8, 23, nil, + 5, nil, nil, nil, 19, 21, 25, 28, 31, 1, + 3, nil, nil, 11, 14, 18, nil, 24, 27, -56, + nil, -56, 16, 8, 23, nil, 5, nil, nil, nil, + 19, 21, 25, 28, 31, 1, 3, nil, nil, 11, + 14, 18, nil, 24, 27, nil, nil, 5, 16, 8, + 23, 19, 21, 25, 28, 31, 1, 3, nil, nil, + 11, 14, 18, nil, 24, 27, 29, 32, nil, nil, + 8, nil, 141, 5, 16, nil, 23, 19, 21, 25, + 28, 31, 1, 3, nil, nil, 11, 14, 18, nil, + 24, 27, nil, nil, 5, 16, 8, 23, 19, 21, + 25, 28, 31, 1, 3, nil, nil, 11, 14, 18, + nil, 24, 27, nil, nil, nil, nil, 8, nil, nil, + 5, 16, nil, 23, 19, 21, 25, 28, 31, 1, + 3, nil, nil, 11, 14, 18, nil, 24, 27, -56, + nil, -56, 16, 8, 23, nil, 5, nil, nil, nil, + 19, 21, 25, 28, 31, 1, 3, nil, nil, 11, + 14, 18, nil, 24, 27, nil, nil, 5, 16, 8, + 23, 19, 21, 25, 28, 31, 1, 3, nil, nil, + 11, 14, 18, nil, 24, 27, nil, nil, nil, nil, + 8, nil, nil, 5, 16, nil, 23, 19, 21, 25, + 28, 31, 1, 3, nil, nil, 11, 14, 18, nil, + 24, 27, nil, nil, 5, 16, 8, 23, 19, 21, + 25, 28, 31, 1, 3, nil, nil, 11, 14, 18, + nil, 24, 27, nil, nil, nil, nil, 8, nil, nil, + 5, 16, nil, 23, 19, 21, 25, 28, 31, 1, + 3, nil, nil, 11, 14, 18, nil, 24, 27, -56, + nil, -56, 16, 8, 23, nil, 5, nil, nil, nil, + 19, 21, 25, 28, 31, 1, 3, nil, nil, 11, + 14, 18, nil, 24, 27, nil, nil, 5, 16, 8, + 23, 19, 21, 25, 28, 31, 1, 3, nil, nil, + 11, 14, 18, nil, 24, 27, nil, nil, nil, nil, + 8, nil, nil, 5, 16, nil, 23, 19, 21, 25, + 28, 31, 1, 3, nil, nil, 11, 14, 18, nil, + 24, 27, nil, nil, 5, 16, 8, 23, 19, 21, + 25, 28, 31, 1, 3, nil, nil, 11, 14, 18, + nil, 24, 27, nil, nil, nil, nil, 8, nil, nil, + 5, 16, nil, 23, 19, 21, 25, 28, 31, 1, + 3, nil, nil, 11, 14, 18, nil, 24, 27, nil, + nil, 5, 16, 8, 23, 19, 21, 25, 28, 31, + 1, 3, nil, nil, 11, 14, 18, nil, 24, 27, + nil, nil, nil, nil, 8, nil, nil, 5, 16, nil, + 23, 19, 21, 25, 28, 31, 1, 3, nil, nil, + 11, 14, 18, nil, 24, 27, nil, nil, 5, 16, + 8, 23, 19, 21, 25, 28, 31, 1, 3, nil, + nil, 11, 14, 18, nil, 24, 27, nil, nil, nil, + nil, 8, nil, nil, 5, 16, nil, 23, 19, 21, + 25, 28, 31, 1, 3, nil, nil, 11, 14, 18, + nil, 24, 27, nil, nil, 5, 16, 8, 23, 19, + 21, 25, 28, 31, 1, 3, nil, nil, 11, 14, + 18, nil, 24, 27, nil, nil, nil, nil, 8, nil, + nil, 5, 16, nil, 23, 19, 21, 25, 28, 31, + 1, 3, nil, nil, 11, 14, 18, nil, 24, 27, + nil, nil, 5, 16, 8, 23, 19, 21, 25, 28, + 31, 1, 3, nil, nil, 11, 14, 18, nil, 24, + 27, nil, nil, nil, nil, 8, nil, nil, 5, 16, + nil, 23, 19, 21, 25, 28, 31, 1, 3, nil, + nil, 11, 14, 18, nil, 24, 27, nil, nil, 5, + 16, 8, 23, 19, 21, 25, 28, 31, 1, 3, + nil, nil, 11, 14, 18, nil, 24, 27, nil, nil, + nil, nil, 8, nil, nil, 5, 16, nil, 23, 19, + 21, 25, 28, 31, 1, 3, nil, nil, 11, 14, + 18, nil, 24, 27, nil, nil, 5, 16, 8, 23, + 19, 21, 25, 28, 31, 1, 3, nil, nil, 11, + 14, 18, nil, 24, 27, nil, nil, nil, nil, 8, + nil, nil, 5, 16, nil, 23, 19, 21, 25, 28, + 31, 1, 3, nil, nil, 11, 14, 18, nil, 24, + 27, nil, nil, 5, 16, 8, 23, 19, 21, 25, + 28, 31, 1, 3, nil, nil, 11, 14, 18, nil, + 24, 27, nil, nil, nil, nil, 8, nil, nil, 5, + 16, nil, 23, 19, 21, 25, 28, 31, 1, 3, + nil, nil, 11, 14, 18, nil, 24, 27, nil, nil, + 5, 16, 8, 23, 19, 21, 25, 28, 31, 1, + 3, nil, nil, 11, 14, 18, nil, 24, 27, nil, + nil, nil, nil, 8, nil, nil, 5, 16, nil, 23, + 19, 21, 25, 28, 31, 1, 3, nil, nil, 11, + 14, 18, nil, 24, 27, nil, nil, 5, 16, 8, + 23, 19, 21, 25, 28, 31, 1, 3, nil, nil, + 11, 14, 18, 70, 24, 27, nil, nil, nil, nil, + 8, nil, nil, 5, 16, nil, 23, 19, 21, 25, + 28, 31, 1, 3, nil, nil, 11, 14, 18, nil, + 24, 27, 29, 32, 69, 16, 8, 23, nil, 112, + 71, 29, 32, nil, 74, 143, 139, nil, 125, 29, + 32, nil, 126, 29, 32, nil, 112, nil, 113, nil, + nil, 16, nil, 23, 60, 39, 42, 45, 47, 49, + 51, 53, 55, 57, 58, 59, 38, 41, 44, 46, + 48, 50, 52, 54, 56, 83, nil, nil, 40, 43, + nil, 140, 19, 21, 25, 28, 31, 1, nil, nil, + nil, nil, 60, 39, 42, 45, 47, 49, 51, 53, + 55, 57, 58, 59, 38, 41, 44, 46, 48, 50, + 52, 54, 56, 29, 32, nil, 40, 43, 60, 39, + 42, 45, 47, 49, 51, 53, 55, 57, 58, 59, + 38, 41, 44, 46, 48, 50, 52, 54, 56, nil, + nil, nil, 40, 43, nil, 147, 60, 39, 42, 45, + 47, 49, 51, 53, 55, 57, 58, 59, 38, 41, + 44, 46, 48, 50, 52, 54, 56, -3, -3, nil, + 40, 43, nil, -3, 60, 39, 42, 45, 47, 49, + 51, 53, 55, 57, 58, 59, 38, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 40, 43, + 60, 39, 42, 45, 47, 49, 51, 53, 55, 57, + 58, 59, 38, 41, 44, 46, 48, 50, 52, 54, + 56, nil, nil, nil, 40, 43, 60, 39, 42, 45, + 47, 49, 51, 53, 55, 57, 58, 59, 38, 41, + 44, 46, 48, 50, 52, 54, 56, nil, nil, nil, + 40, 43, 60, 39, 42, 45, 47, 49, 51, 53, + 55, 57, 58, 59, 38, 41, 44, 46, 48, 50, + 52, 54, 56, nil, nil, nil, 40, 43, 60, 39, + 42, 45, 47, 49, 51, 53, 55, 57, 58, 59, + 38, 41, 44, 46, 48, 50, 52, 54, 56, nil, + nil, nil, 40, 43, 60, 39, 42, 45, 47, 49, + 51, 53, 55, 57, 58, 59, 38, 41, 44, 46, + 48, 50, 52, 54, 56, nil, nil, nil, 40, 43, + 60, 39, 42, 45, 47, 49, 51, 53, 55, 57, + 58, 59, 38, 41, 44, 46, 48, 50, 52, 54, + 56, nil, nil, nil, 40, 43, 60, 39, 42, 45, + 47, 49, 51, 53, 55, 57, 58, 59, 38, 41, + 44, 46, 48, 50, 52, 54, 56, nil, nil, nil, + 40, 43, 60, 39, 42, 45, 47, 49, 51, 53, + 55, 57, 58, 59, 38, 41, 44, 46, 48, 50, + 52, 54, 56, nil, nil, nil, 40, 43, 60, 39, + 42, 45, 47, 49, 51, 53, 55, 57, 58, 59, + 38, 41, 44, 46, 48, 50, 52, 54, 56, 60, + 39, 42, 40, 43, 60, 39, 42, 45, 47, 49, + 51, 53, 55, 57, 58, 59, 38, nil, nil, 60, + 39, 42, nil, 40, 43, nil, nil, nil, 40, 43, + 60, 39, 42, 45, 47, 49, 51, 53, 55, 57, + 58, 59, 38, 40, 43, nil, nil, nil, nil, nil, + nil, nil, nil, nil, 40, 43, 60, 39, 42, 45, + 47, 49, 51, 53, 55, 57, 58, 59, 38, 41, + 44, 46, 48, 50, 52, 54, 56, nil, nil, nil, + 40, 43, 60, 39, 42, 45, 47, 49, 51, 53, + 55, 57, 58, 59, 38, nil, nil, 60, 39, 42, + 45, 47, nil, nil, nil, nil, 40, 43, 60, 39, + 42, 45, 47, 49, 51, 53, 55, 57, 58, 59, + 38, 40, 43, 60, 39, 42, 45, 47, nil, nil, + nil, nil, 40, 43, 60, 39, 42, 45, 47, 49, + 51, 53, 55, 57, 58, 59, 38, 40, 43, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 40, 43, + 60, 39, 42, 45, 47, 49, 51, 53, 55, 57, + 58, 59, 38, 41, 44, 46, 48, 50, 52, 54, + 56, nil, nil, nil, 40, 43, 60, 39, 42, 45, + 47, 49, 51, 53, 55, 57, 58, 59, 38, 41, + 44, 46, 48, 50, 52, 54, 56, nil, nil, nil, + 40, 43, 60, 39, 42, 45, 47, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 126, nil, nil, nil, nil, nil, nil, nil, 29, - nil, nil, 8, nil, nil, nil, 15, 49, 51, 53, - 34, 36, 38, 40, 42, 44, 46, 47, 48, 50, - 52, 33, 35, 37, 39, 41, 43, 45, 97, nil, - nil, nil, 125, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 49, 51, 53, 34, 36, 38, 40, - 42, 44, 46, 47, 48, 50, 52, 33, 35, 37, - 39, 41, 43, 45, 21, 24, 49, 51, 53, 34, - 36, 38, 40, 42, 44, 46, 47, 48, 50, 52, - 33, 35, 37, 39, 41, 43, 45, nil, nil, nil, - nil, 131, 49, 51, 53, 34, 36, 38, 40, 42, - 44, 46, 47, 48, 50, 52, 33, 35, 37, 39, - 41, 43, 45, 49, 51, 53, 34, 36, 38, 40, - 42, 44, 46, 47, 48, 50, 52, 33, 35, 37, - 39, 41, 43, 45, 49, 51, 53, 34, 36, 38, - 40, 42, 44, 46, 47, 48, 50, 52, 33, 35, - 37, 39, 41, 43, 45, 49, 51, 53, 34, 36, - 38, 40, 42, 44, 46, 47, 48, 50, 52, 33, - 35, 37, 39, 41, 43, 45, 49, 51, 53, 34, - 36, 38, 40, 42, 44, 46, 47, 48, 50, 52, - 33, 35, 37, 39, 41, 43, 45, 49, 51, 53, - 34, 36, 38, 40, 42, 44, 46, 47, 48, 50, - 52, 33, 35, 37, 39, 41, 43, 45, 49, 51, - 53, 34, 36, 38, 40, 42, 44, 46, 47, 48, - 50, 52, 33, 35, 37, 39, 41, 43, 45, 49, - 51, 53, 34, 36, 38, 40, 42, 44, 46, 47, - 48, 50, 52, 33, 35, 37, 39, 41, 43, 45, - 49, 51, 53, 34, 36, 38, 40, 42, 44, 46, - 47, 48, 50, 52, 33, 35, 37, 39, 41, 43, - 45, 49, 51, 53, 34, 36, 38, 40, 42, 44, - 46, 47, 48, 50, 52, 33, 35, 37, 39, 41, - 43, 45, 49, 51, 53, 34, 36, 38, 40, 42, - 44, 46, 47, 48, 50, 52, 33, 35, 37, 39, - 41, 43, 45, 49, 51, 53, 34, 36, 38, 40, - 42, 44, 46, 47, 48, 50, 49, 51, 53, 34, - 36, 38, 40, 42, 44, 46, 47, 48, 50, 49, - 51, 53, 34, 36, 38, 40, 42, 44, 46, 47, - 48, 50, 49, 51, 53, 34, 36, 38, 40, 42, - 44, 46, 47, 48, 50, 49, 51, 53, 34, 36, - 38, 40, 42, 44, 46, 47, 48, 50, 49, 51, - 53, 34, 36, 38, 40, 42, 44, 46, 47, 48, - 50, 49, 51, 53, 34, 36, 38, 40, 42, 44, - 46, 47, 48, 50, 49, 51, 53, 34, 36, 38, - 40, 42, 44, 46, 47, 48, 50 ] + nil, nil, nil, nil, nil, nil, 40, 43, 60, 39, + 42, 45, 47, 49, 51, 53, 55, 57, 58, 59, + 38, 41, 44, 46, 48, 50, 52, 54, 56, nil, + nil, nil, 40, 43, 60, 39, 42, 45, 47, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 40, 43, + 60, 39, 42, 45, 47, 49, 51, 53, 55, 57, + 58, 59, 38, 41, 44, 46, 48, 50, 52, 54, + 56, nil, nil, nil, 40, 43, 60, 39, 42, 45, + 47, 49, 51, 53, 55, 57, 58, 59, 38, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 40, 43, 60, 39, 42, 45, 47, 49, 51, 53, + 55, 57, 58, 59, 38, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 40, 43 ] racc_action_check = [ - 15, 11, 116, 58, 15, 15, 15, 15, 15, 15, - 15, 55, 55, 15, 69, 15, 15, 8, 37, 64, - 69, 15, 37, 37, 37, 37, 37, 37, 37, 28, - 11, 37, 101, 37, 37, 102, 11, 116, 58, 37, - 59, 15, 98, 98, 15, 8, 8, 98, 15, 15, - 60, 60, 8, 62, 107, 60, 72, 60, 107, 37, - 73, 73, 37, 126, 73, nil, 37, 126, 126, 126, - 126, 126, 126, 126, nil, 4, 126, 4, 126, 126, - 9, 5, 9, nil, 126, 5, 5, 5, 5, 5, - 5, 5, 32, 32, 5, nil, 5, 5, nil, 114, - 114, nil, 5, 114, 126, 105, 105, 126, nil, 105, - nil, 126, 86, 86, 86, 86, 86, 84, 84, 84, - 84, 84, 5, 130, 130, 5, 6, 130, nil, 5, - 6, 6, 6, 6, 6, 6, 6, nil, nil, 6, - nil, 6, 6, nil, nil, 7, nil, 6, nil, 7, - 7, 7, 7, 7, 7, 7, nil, nil, 7, nil, - 7, 7, nil, nil, 6, 6, 7, 6, nil, nil, - 6, 78, 78, 78, 6, 124, 124, nil, nil, 124, - 124, 124, 124, 124, 124, 124, 7, nil, 124, 7, - 124, 124, nil, 7, 109, nil, 124, nil, 109, 109, - 109, 109, 109, 109, 109, nil, nil, 109, nil, 109, - 109, 76, 76, 76, nil, 109, 124, nil, 124, 124, - nil, nil, nil, 124, 100, nil, nil, nil, 100, 100, - 100, 100, 100, 100, 100, 109, nil, 100, 109, 100, - 100, nil, 109, 12, nil, 100, nil, 12, 12, 12, - 12, 12, 12, 12, nil, nil, 12, nil, 12, 12, - nil, nil, nil, nil, 12, 100, nil, nil, 100, nil, - nil, nil, 100, 0, nil, nil, nil, 0, 0, 0, - 0, 0, 0, 0, 12, nil, 0, 12, 0, 0, - nil, 12, 16, nil, 0, nil, 16, 16, 16, 16, - 16, 16, 16, nil, nil, 16, nil, 16, 16, nil, - nil, 0, 0, 16, 0, nil, 0, 0, nil, nil, - nil, 0, 19, nil, nil, nil, 19, 19, 19, 19, - 19, 19, 19, 16, nil, 19, 16, 19, 19, nil, - 16, 97, nil, 19, nil, 97, 97, 97, 97, 97, - 97, 97, nil, nil, 97, nil, 97, 97, nil, nil, - nil, nil, 97, 19, nil, nil, 19, nil, nil, nil, - 19, 29, nil, nil, nil, 29, 29, 29, 29, 29, - 29, 29, 97, nil, 29, 97, 29, 29, nil, 97, - 96, nil, 29, nil, 96, 96, 96, 96, 96, 96, - 96, nil, nil, 96, nil, 96, 96, nil, nil, 29, - 29, 96, 29, nil, nil, 29, nil, nil, nil, 29, - 82, 82, 82, 82, 82, nil, nil, nil, 96, 96, - nil, 96, nil, nil, 96, 33, nil, nil, 96, 33, - 33, 33, 33, 33, 33, 33, nil, nil, 33, nil, - 33, 33, nil, 34, nil, nil, 33, 34, 34, 34, - 34, 34, 34, 34, nil, nil, 34, nil, 34, 34, - nil, nil, nil, nil, 34, nil, 33, nil, nil, 33, - nil, nil, nil, 33, 80, 80, 80, 80, 80, nil, - nil, nil, nil, nil, 34, nil, nil, 34, 35, nil, - nil, 34, 35, 35, 35, 35, 35, 35, 35, nil, - nil, 35, nil, 35, 35, nil, 36, nil, nil, 35, - 36, 36, 36, 36, 36, 36, 36, nil, nil, 36, - nil, 36, 36, nil, nil, nil, nil, 36, nil, 35, - nil, nil, 35, nil, nil, nil, 35, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 36, nil, nil, - 36, 128, nil, nil, 36, 128, 128, 128, 128, 128, - 128, 128, nil, nil, 128, nil, 128, 128, nil, nil, - 38, nil, 128, nil, 38, 38, 38, 38, 38, 38, - 38, nil, nil, 38, nil, 38, 38, nil, nil, 128, - 128, 38, 128, nil, nil, 128, nil, nil, nil, 128, - 39, nil, nil, nil, 39, 39, 39, 39, 39, 39, - 39, 38, nil, 39, 38, 39, 39, nil, 38, 63, - nil, 39, nil, 63, 63, 63, 63, 63, 63, 63, - nil, nil, 63, nil, 63, 63, nil, nil, nil, nil, - 63, 39, nil, nil, 39, nil, nil, nil, 39, nil, - nil, nil, nil, nil, nil, nil, nil, 63, 63, nil, - 63, nil, nil, 63, 41, nil, nil, 63, 41, 41, - 41, 41, 41, 41, 41, nil, nil, 41, nil, 41, - 41, nil, 42, nil, nil, 41, 42, 42, 42, 42, - 42, 42, 42, nil, nil, 42, nil, 42, 42, nil, - nil, nil, nil, 42, nil, 41, nil, nil, 41, nil, - nil, nil, 41, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 42, nil, nil, 42, 43, nil, nil, - 42, 43, 43, 43, 43, 43, 43, 43, nil, nil, - 43, nil, 43, 43, nil, 44, nil, nil, 43, 44, - 44, 44, 44, 44, 44, 44, nil, nil, 44, nil, - 44, 44, nil, nil, nil, nil, 44, nil, 43, nil, - nil, 43, nil, nil, nil, 43, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, 44, nil, nil, 44, - 45, nil, nil, 44, 45, 45, 45, 45, 45, 45, - 45, nil, nil, 45, nil, 45, 45, nil, 46, nil, - nil, 45, 46, 46, 46, 46, 46, 46, 46, nil, - nil, 46, nil, 46, 46, nil, nil, nil, nil, 46, - nil, 45, nil, nil, 45, nil, nil, nil, 45, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 46, - nil, nil, 46, 47, nil, nil, 46, 47, 47, 47, - 47, 47, 47, 47, nil, nil, 47, nil, 47, 47, - nil, 48, nil, nil, 47, 48, 48, 48, 48, 48, - 48, 48, nil, nil, 48, nil, 48, 48, nil, nil, - nil, nil, 48, nil, 47, nil, nil, 47, nil, nil, - nil, 47, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 48, nil, nil, 48, 49, nil, nil, 48, - 49, 49, 49, 49, 49, 49, 49, nil, nil, 49, - nil, 49, 49, nil, 50, nil, nil, 49, 50, 50, - 50, 50, 50, 50, 50, nil, nil, 50, nil, 50, - 50, nil, nil, nil, nil, 50, nil, 49, nil, nil, - 49, nil, nil, nil, 49, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, 50, nil, nil, 50, 51, - nil, nil, 50, 51, 51, 51, 51, 51, 51, 51, - nil, nil, 51, nil, 51, 51, nil, 52, nil, nil, - 51, 52, 52, 52, 52, 52, 52, 52, nil, nil, - 52, nil, 52, 52, nil, nil, nil, nil, 52, nil, - 51, nil, nil, 51, nil, nil, nil, 51, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 52, nil, - nil, 52, 53, nil, nil, 52, 53, 53, 53, 53, - 53, 53, 53, nil, nil, 53, nil, 53, 53, nil, - 74, nil, nil, 53, 74, 74, 74, 74, 74, 74, - 74, nil, nil, 74, nil, 74, 74, nil, nil, nil, - nil, 74, nil, 53, nil, nil, 53, nil, nil, nil, - 53, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 74, nil, 74, 74, 66, nil, nil, 74, 66, - 66, 66, 66, 66, 66, 66, nil, nil, 66, nil, - 66, 66, nil, 65, nil, nil, 66, 65, 65, 65, - 65, 65, 65, 65, nil, nil, 65, nil, 65, 65, - nil, nil, nil, nil, 65, nil, 66, nil, nil, 66, - nil, nil, nil, 66, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 65, nil, nil, 65, 40, nil, - 65, 65, 40, 40, 40, 40, 40, 40, 40, nil, - nil, 40, nil, 40, 40, nil, nil, nil, nil, 40, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 115, nil, nil, nil, nil, nil, nil, nil, 40, - nil, nil, 40, nil, nil, nil, 40, 115, 115, 115, + 0, 143, 0, 136, 26, 67, 0, 0, 0, 0, + 0, 0, 0, 77, 14, 0, 0, 0, 14, 0, + 0, 17, 5, 17, 70, 0, 5, 5, 5, 5, + 5, 5, 5, 80, 80, 5, 5, 5, 143, 5, + 5, 26, 0, 0, 136, 5, 61, 82, 82, 35, + 0, 146, 0, 62, 77, 146, 146, 146, 146, 146, + 146, 146, 88, 88, 146, 146, 146, 124, 146, 146, + 5, 8, 5, 119, 146, 8, 8, 8, 8, 8, + 8, 8, 75, 61, 8, 8, 8, 61, 8, 8, + 62, 146, 146, 7, 8, 122, 122, 148, 148, 146, + 110, 146, 122, 148, 110, 110, 110, 110, 110, 110, + 110, 23, 125, 110, 110, 110, nil, 110, 110, 8, + 66, 8, nil, 110, 66, 66, 66, 66, 66, 66, + 66, 36, 36, 66, 66, 66, nil, 66, 66, 10, + 10, 23, 23, 66, nil, 110, nil, 110, 110, 83, + 110, nil, 23, 83, 83, 83, 83, 83, 83, 83, + 66, 66, 83, 83, 83, nil, 83, 83, 66, 15, + 66, nil, 83, 15, 15, 15, 15, 15, 15, 15, + 109, 109, 15, 15, 15, nil, 15, 15, 120, 120, + 114, 114, 15, 63, 63, 120, 114, 83, 16, 83, + nil, 120, 16, 16, 16, 16, 16, 16, 16, 15, + 15, 16, 16, 16, nil, 16, 16, 15, nil, 15, + nil, 16, 91, 91, 142, 142, nil, nil, 142, 142, + 142, 142, 142, 142, 142, nil, nil, 142, 142, 142, + nil, 142, 142, 16, nil, 16, 16, 142, 16, nil, + 18, nil, nil, nil, 18, 18, 18, 18, 18, 18, + 18, nil, nil, 18, 18, 18, nil, 18, 18, 142, + nil, 142, 142, 18, 142, nil, 111, nil, nil, nil, + 111, 111, 111, 111, 111, 111, 111, nil, nil, 111, + 111, 111, nil, 111, 111, nil, nil, 112, 18, 111, + 18, 112, 112, 112, 112, 112, 112, 112, nil, nil, + 112, 112, 112, nil, 112, 112, 128, 128, nil, nil, + 112, nil, 128, 24, 111, nil, 111, 24, 24, 24, + 24, 24, 24, 24, nil, nil, 24, 24, 24, nil, + 24, 24, nil, nil, 74, 112, 24, 112, 74, 74, + 74, 74, 74, 74, 74, nil, nil, 74, 74, 74, + nil, 74, 74, nil, nil, nil, nil, 74, nil, nil, + 27, 24, nil, 24, 27, 27, 27, 27, 27, 27, + 27, nil, nil, 27, 27, 27, nil, 27, 27, 74, + nil, 74, 74, 27, 74, nil, 121, nil, nil, nil, + 121, 121, 121, 121, 121, 121, 121, nil, nil, 121, + 121, 121, nil, 121, 121, nil, nil, 139, 27, 121, + 27, 139, 139, 139, 139, 139, 139, 139, nil, nil, + 139, 139, 139, nil, 139, 139, nil, nil, nil, nil, + 139, nil, nil, 69, 121, nil, 121, 69, 69, 69, + 69, 69, 69, 69, nil, nil, 69, 69, 69, nil, + 69, 69, nil, nil, 37, 139, 69, 139, 37, 37, + 37, 37, 37, 37, 37, nil, nil, 37, 37, 37, + nil, 37, 37, nil, nil, nil, nil, 37, nil, nil, + 38, 69, nil, 69, 38, 38, 38, 38, 38, 38, + 38, nil, nil, 38, 38, 38, nil, 38, 38, 37, + nil, 37, 37, 38, 37, nil, 39, nil, nil, nil, + 39, 39, 39, 39, 39, 39, 39, nil, nil, 39, + 39, 39, nil, 39, 39, nil, nil, 40, 38, 39, + 38, 40, 40, 40, 40, 40, 40, 40, nil, nil, + 40, 40, 40, nil, 40, 40, nil, nil, nil, nil, + 40, nil, nil, 41, 39, nil, 39, 41, 41, 41, + 41, 41, 41, 41, nil, nil, 41, 41, 41, nil, + 41, 41, nil, nil, 42, 40, 41, 40, 42, 42, + 42, 42, 42, 42, 42, nil, nil, 42, 42, 42, + nil, 42, 42, nil, nil, nil, nil, 42, nil, nil, + 43, 41, nil, 41, 43, 43, 43, 43, 43, 43, + 43, nil, nil, 43, 43, 43, nil, 43, 43, nil, + nil, 44, 42, 43, 42, 44, 44, 44, 44, 44, + 44, 44, nil, nil, 44, 44, 44, nil, 44, 44, + nil, nil, nil, nil, 44, nil, nil, 45, 43, nil, + 43, 45, 45, 45, 45, 45, 45, 45, nil, nil, + 45, 45, 45, nil, 45, 45, nil, nil, 46, 44, + 45, 44, 46, 46, 46, 46, 46, 46, 46, nil, + nil, 46, 46, 46, nil, 46, 46, nil, nil, nil, + nil, 46, nil, nil, 47, 45, nil, 45, 47, 47, + 47, 47, 47, 47, 47, nil, nil, 47, 47, 47, + nil, 47, 47, nil, nil, 48, 46, 47, 46, 48, + 48, 48, 48, 48, 48, 48, nil, nil, 48, 48, + 48, nil, 48, 48, nil, nil, nil, nil, 48, nil, + nil, 49, 47, nil, 47, 49, 49, 49, 49, 49, + 49, 49, nil, nil, 49, 49, 49, nil, 49, 49, + nil, nil, 50, 48, 49, 48, 50, 50, 50, 50, + 50, 50, 50, nil, nil, 50, 50, 50, nil, 50, + 50, nil, nil, nil, nil, 50, nil, nil, 51, 49, + nil, 49, 51, 51, 51, 51, 51, 51, 51, nil, + nil, 51, 51, 51, nil, 51, 51, nil, nil, 52, + 50, 51, 50, 52, 52, 52, 52, 52, 52, 52, + nil, nil, 52, 52, 52, nil, 52, 52, nil, nil, + nil, nil, 52, nil, nil, 53, 51, nil, 51, 53, + 53, 53, 53, 53, 53, 53, nil, nil, 53, 53, + 53, nil, 53, 53, nil, nil, 54, 52, 53, 52, + 54, 54, 54, 54, 54, 54, 54, nil, nil, 54, + 54, 54, nil, 54, 54, nil, nil, nil, nil, 54, + nil, nil, 55, 53, nil, 53, 55, 55, 55, 55, + 55, 55, 55, nil, nil, 55, 55, 55, nil, 55, + 55, nil, nil, 56, 54, 55, 54, 56, 56, 56, + 56, 56, 56, 56, nil, nil, 56, 56, 56, nil, + 56, 56, nil, nil, nil, nil, 56, nil, nil, 57, + 55, nil, 55, 57, 57, 57, 57, 57, 57, 57, + nil, nil, 57, 57, 57, nil, 57, 57, nil, nil, + 58, 56, 57, 56, 58, 58, 58, 58, 58, 58, + 58, nil, nil, 58, 58, 58, nil, 58, 58, nil, + nil, nil, nil, 58, nil, nil, 59, 57, nil, 57, + 59, 59, 59, 59, 59, 59, 59, nil, nil, 59, + 59, 59, nil, 59, 59, nil, nil, 60, 58, 59, + 58, 60, 60, 60, 60, 60, 60, 60, nil, nil, + 60, 60, 60, 22, 60, 60, nil, nil, nil, nil, + 60, nil, nil, 84, 59, nil, 59, 84, 84, 84, + 84, 84, 84, 84, nil, nil, 84, 84, 84, nil, + 84, 84, 129, 129, 22, 60, 84, 60, nil, 129, + 22, 78, 78, nil, 22, 129, 127, nil, 78, 65, + 65, nil, 78, 84, 84, nil, 65, nil, 65, nil, + nil, 84, nil, 84, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 34, nil, nil, 127, 127, + nil, 127, 71, 71, 71, 71, 71, 71, nil, nil, + nil, nil, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, nil, 34, 34, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, nil, + nil, nil, 145, 145, nil, 145, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 56, nil, - nil, nil, 115, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, nil, nil, nil, - nil, 129, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 122, 122, 122, 122, 122, 122, 122, - 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, - 122, 122, 122, 122, 68, 68, 68, 68, 68, 68, + 115, 115, 115, 115, 115, 115, 115, 115, 115, nil, + 115, 115, nil, 115, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 87, 87, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, nil, nil, nil, 68, 68, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, nil, nil, nil, + 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, nil, nil, nil, 131, 131, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, nil, + nil, nil, 64, 64, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, nil, nil, nil, 13, 13, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, + 86, nil, nil, nil, 86, 86, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, nil, nil, nil, + 117, 117, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, nil, nil, nil, 135, 135, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 94, + 94, 94, 89, 89, 90, 90, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 90, nil, nil, 96, + 96, 96, nil, 94, 94, nil, nil, nil, 90, 90, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 79, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89 ] + 108, 108, 108, 96, 96, nil, nil, nil, nil, nil, + nil, nil, nil, nil, 108, 108, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, nil, nil, nil, + 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, + 93, 93, 93, 93, 93, nil, nil, 98, 98, 98, + 98, 98, nil, nil, nil, nil, 93, 93, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 98, 98, 100, 100, 100, 100, 100, nil, nil, + nil, nil, 95, 95, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 100, 100, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 97, 97, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, nil, nil, nil, 99, 99, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 101, 101, 101, 101, 101, nil, nil, nil, + 101, 101, 102, 102, 102, 102, 102, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 102, 102, 103, 103, + 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, + 103, 103, 103, 103, 103, 103, 103, 103, 103, nil, + nil, nil, 103, 103, 104, 104, 104, 104, 104, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 104, 104, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, nil, nil, nil, 105, 105, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 107, 107, 106, 106, 106, 106, 106, 106, 106, 106, + 106, 106, 106, 106, 106, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 106, 106 ] racc_action_pointer = [ - 271, nil, nil, 1377, 32, 79, 124, 143, 5, 37, - nil, -12, 241, nil, nil, -2, 290, nil, nil, 320, - nil, nil, nil, nil, nil, nil, nil, nil, 29, 369, - nil, nil, 52, 433, 451, 496, 514, 16, 578, 608, - 1176, 672, 690, 735, 753, 798, 816, 861, 879, 924, - 942, 987, 1005, 1050, nil, -29, 1244, nil, -9, -2, - 10, nil, 41, 627, 7, 1131, 1113, 1356, 1335, -31, - nil, nil, 56, 20, 1068, 1602, 192, 1550, 152, 1576, - 465, 1482, 401, 1440, 98, 1419, 93, 1398, 1524, 1615, - 1589, nil, 1563, nil, 1537, nil, 388, 339, 2, nil, - 222, 20, 23, nil, nil, 65, nil, 9, 1461, 192, - nil, nil, nil, 1503, 59, 1208, -10, 1293, nil, nil, - nil, nil, 1314, nil, 173, nil, 61, nil, 559, 1267, - 83, nil, nil ] + 0, nil, nil, nil, nil, 20, nil, 93, 69, nil, + 97, nil, nil, 1313, 2, 167, 196, -26, 248, nil, + nil, nil, 1010, 99, 321, nil, -9, 368, nil, nil, + nil, nil, nil, nil, 1101, 49, 86, 462, 488, 514, + 535, 561, 582, 608, 629, 655, 676, 702, 723, 749, + 770, 796, 817, 843, 864, 890, 911, 937, 958, 984, + 1005, 33, 40, 151, 1287, 1027, 118, -10, 1209, 441, + 12, 1106, nil, nil, 342, 38, nil, 1, 1019, nil, + -12, nil, 2, 147, 1031, nil, 1339, 1183, 17, 1417, + 1443, 177, 1495, 1521, 1438, 1547, 1458, 1573, 1536, 1599, + 1562, 1625, 1651, 1677, 1703, 1729, 1781, 1755, 1469, 135, + 98, 274, 295, nil, 148, 1155, nil, 1365, nil, 22, + 146, 394, 53, nil, 55, 100, nil, 1063, 274, 1010, + 1235, 1261, nil, nil, nil, 1391, -9, nil, nil, 415, + nil, nil, 222, -12, nil, 1127, 49, nil, 55, nil ] racc_action_default = [ - -1, -24, -16, -3, -57, -54, -54, -54, -63, -76, - -7, -8, -54, -9, -10, -54, -54, -19, -11, -54, - -20, -17, -12, -21, -18, -13, -22, -14, -76, -54, - -23, -15, -2, -54, -54, -54, -54, -54, -54, -54, - -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, - -54, -54, -54, -54, -29, -6, -76, -64, -63, -76, - -76, -59, -76, -54, -76, -54, -54, -27, -70, -76, - -30, -28, -76, -76, -5, -45, -34, -46, -35, -47, - -36, -48, -37, -49, -38, -50, -39, -51, -40, -41, - -42, -31, -43, -32, -44, -33, -54, -54, -76, -60, - -54, -76, -76, -61, -56, -76, -58, -76, -25, -54, - -68, 133, -52, -4, -76, -76, -76, -26, -66, -65, - -53, -67, -71, -73, -5, -72, -54, -62, -54, -76, - -76, -74, -75 ] + -56, -24, -12, -59, -13, -56, -14, -84, -56, -15, + -2, -57, -16, -3, -84, -56, -76, -84, -56, -19, + -7, -20, -8, -69, -56, -21, -9, -56, -22, -17, + -10, -23, -18, -11, -84, -84, -29, -5, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, + -56, -84, -84, -6, -77, -84, -56, -84, -27, -56, + -84, -84, -60, -63, -76, -84, -70, -69, -84, -65, + -30, -61, -28, -56, -56, 150, -4, -43, -32, -52, + -44, -33, -53, -45, -34, -46, -35, -47, -36, -48, + -37, -49, -38, -50, -39, -51, -40, -41, -42, -31, + -76, -56, -56, -75, -84, -54, -58, -25, -62, -84, + -84, -56, -84, -66, -84, -84, -67, -84, -84, -84, + -79, -78, -55, -64, -73, -26, -84, -72, -71, -56, + -80, -81, -5, -74, -68, -84, -56, -82, -84, -83 ] racc_goto_table = [ - 32, 58, 60, 118, 119, 69, 55, 28, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 118, nil, - nil, nil, nil, nil, nil, 74, nil, nil, nil, 73, + 10, 37, 65, 78, 81, 137, 138, 61, 62, 119, + 7, nil, nil, nil, 77, 63, nil, 137, nil, nil, + nil, nil, nil, nil, nil, 84, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 81, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, 37, nil, 111, 122, nil, nil, + 120, nil, nil, nil, nil, nil, 114, nil, nil, 124, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - 54, nil, 56, nil, nil, nil, nil, 67, 74, 96, - 68, 70, 98, 101, 71, 107, nil, nil, nil, nil, - nil, nil, nil, 105, nil, nil, 74, nil, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, nil, - nil, 116, nil, nil, nil, nil, 114, nil, 74, nil, - 68, 108, nil, nil, nil, nil, nil, 124, nil, 113, + nil, nil, nil, nil, 128, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 129, nil, nil, nil, + nil, nil, nil, nil, nil, 37, nil, nil, nil, nil, + nil, 111, nil, 136, nil, 34, nil, nil, 36, 142, + 111, nil, nil, nil, nil, nil, 64, nil, 68, nil, + nil, nil, nil, nil, 80, nil, nil, 82, nil, 37, + nil, nil, nil, nil, nil, nil, 148, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, nil, nil, nil, nil, nil, 115, nil, nil, 117, + nil, nil, nil, nil, 64, nil, nil, nil, nil, nil, + nil, nil, nil, 127, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 74, nil, nil, nil, nil, 130, nil, - nil, nil, 115, nil, nil, 117, nil, nil, nil, nil, - nil, nil, nil, nil, 122, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 113, - nil, 129 ] + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 64, 130, 131, nil, nil, nil, nil, nil, nil, nil, + nil, 135, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, 145, + nil, nil, 86 ] racc_goto_check = [ - 2, 4, 17, 15, 15, 18, 2, 1, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 15, nil, - nil, nil, nil, nil, nil, 4, nil, nil, nil, 2, + 2, 4, 20, 19, 17, 15, 15, 6, 7, 5, + 1, nil, nil, nil, 4, 2, nil, 15, nil, nil, + nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - 3, nil, 3, nil, nil, nil, nil, 3, 4, 4, - 3, 3, 17, 4, 3, 18, nil, nil, nil, nil, - nil, nil, nil, 2, nil, nil, 4, nil, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, nil, - nil, 4, nil, nil, nil, nil, 2, nil, 4, nil, - 3, 3, nil, nil, nil, nil, nil, 4, nil, 3, + 17, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, 4, nil, 4, 19, nil, nil, + 20, nil, nil, nil, nil, nil, 2, nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 4, nil, nil, nil, nil, 2, nil, - nil, nil, 3, nil, nil, 3, nil, nil, nil, nil, + nil, nil, nil, nil, 2, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 20, nil, nil, nil, + nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, + nil, 4, nil, 4, nil, 3, nil, nil, 3, 4, + 4, nil, nil, nil, nil, nil, 3, nil, 3, nil, + nil, nil, nil, nil, 3, nil, nil, 3, nil, 4, + nil, nil, nil, nil, nil, nil, 2, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, nil, nil, nil, nil, nil, 3, nil, nil, 3, nil, nil, nil, nil, 3, nil, nil, nil, nil, nil, + nil, nil, nil, 3, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 3, 3, 3, nil, nil, nil, nil, nil, nil, nil, + nil, 3, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 3, - nil, 3 ] + nil, nil, 3 ] racc_goto_pointer = [ - nil, 7, 0, 35, -7, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, -98, nil, -6, -10 ] + nil, 10, 0, 110, -9, -62, -7, -6, nil, nil, + nil, nil, nil, nil, nil, -119, nil, -22, nil, -20, + -14 ] racc_goto_default = [ - nil, nil, nil, 3, 6, 10, 11, 13, 14, 18, - 22, 25, 27, 31, 2, 57, 9, nil, nil ] + nil, nil, nil, 13, 15, 20, 22, 26, 30, 33, + 2, 4, 6, 9, 12, 76, 17, 72, 73, nil, + nil ] racc_reduce_table = [ 0, 0, :racc_error, - 0, 53, :_reduce_1, - 1, 53, :_reduce_2, - 1, 54, :_reduce_3, - 3, 54, :_reduce_4, - 2, 54, :_reduce_5, - 2, 54, :_reduce_6, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 55, :_reduce_none, - 1, 56, :_reduce_none, - 1, 56, :_reduce_none, - 1, 57, :_reduce_19, - 1, 57, :_reduce_20, - 1, 57, :_reduce_21, - 1, 57, :_reduce_22, - 1, 57, :_reduce_23, - 1, 57, :_reduce_24, - 3, 60, :_reduce_25, - 3, 67, :_reduce_26, - 2, 66, :_reduce_27, - 2, 63, :_reduce_28, - 2, 63, :_reduce_29, - 2, 63, :_reduce_30, - 3, 63, :_reduce_31, - 3, 63, :_reduce_32, - 3, 63, :_reduce_33, - 3, 63, :_reduce_34, - 3, 63, :_reduce_35, - 3, 63, :_reduce_36, - 3, 63, :_reduce_37, - 3, 63, :_reduce_38, - 3, 63, :_reduce_39, - 3, 63, :_reduce_40, - 3, 63, :_reduce_41, - 3, 63, :_reduce_42, - 3, 63, :_reduce_43, - 3, 63, :_reduce_44, - 3, 63, :_reduce_45, - 3, 63, :_reduce_46, - 3, 63, :_reduce_47, - 3, 63, :_reduce_48, - 3, 63, :_reduce_49, - 3, 63, :_reduce_50, - 3, 63, :_reduce_51, - 3, 62, :_reduce_52, - 4, 62, :_reduce_53, - 0, 68, :_reduce_54, - 1, 68, :_reduce_55, - 3, 68, :_reduce_56, - 1, 58, :_reduce_57, - 3, 58, :_reduce_58, - 2, 61, :_reduce_59, - 3, 61, :_reduce_60, - 3, 61, :_reduce_61, - 5, 61, :_reduce_62, - 0, 69, :_reduce_63, - 1, 69, :_reduce_64, - 3, 69, :_reduce_65, - 3, 69, :_reduce_66, - 4, 59, :_reduce_67, - 3, 64, :_reduce_68, - 0, 70, :_reduce_69, - 1, 70, :_reduce_70, - 3, 70, :_reduce_71, - 5, 65, :_reduce_72, - 5, 65, :_reduce_73, - 7, 65, :_reduce_74, - 8, 65, :_reduce_75 ] - -racc_reduce_n = 76 - -racc_shift_n = 133 + 0, 57, :_reduce_1, + 1, 57, :_reduce_2, + 1, 58, :_reduce_3, + 3, 58, :_reduce_4, + 2, 58, :_reduce_5, + 2, 58, :_reduce_6, + 1, 59, :_reduce_none, + 1, 59, :_reduce_none, + 1, 59, :_reduce_none, + 1, 59, :_reduce_none, + 1, 59, :_reduce_none, + 1, 59, :_reduce_none, + 1, 59, :_reduce_none, + 1, 59, :_reduce_none, + 1, 59, :_reduce_none, + 1, 59, :_reduce_none, + 1, 60, :_reduce_none, + 1, 60, :_reduce_none, + 1, 61, :_reduce_19, + 1, 61, :_reduce_20, + 1, 61, :_reduce_21, + 1, 61, :_reduce_22, + 1, 61, :_reduce_23, + 1, 61, :_reduce_24, + 3, 64, :_reduce_25, + 3, 71, :_reduce_26, + 2, 70, :_reduce_27, + 2, 67, :_reduce_28, + 2, 67, :_reduce_29, + 2, 67, :_reduce_30, + 3, 67, :_reduce_31, + 3, 67, :_reduce_32, + 3, 67, :_reduce_33, + 3, 67, :_reduce_34, + 3, 67, :_reduce_35, + 3, 67, :_reduce_36, + 3, 67, :_reduce_37, + 3, 67, :_reduce_38, + 3, 67, :_reduce_39, + 3, 67, :_reduce_40, + 3, 67, :_reduce_41, + 3, 67, :_reduce_42, + 3, 67, :_reduce_43, + 3, 67, :_reduce_44, + 3, 67, :_reduce_45, + 3, 67, :_reduce_46, + 3, 67, :_reduce_47, + 3, 67, :_reduce_48, + 3, 67, :_reduce_49, + 3, 67, :_reduce_50, + 3, 67, :_reduce_51, + 3, 67, :_reduce_52, + 3, 67, :_reduce_53, + 3, 66, :_reduce_54, + 4, 66, :_reduce_55, + 0, 72, :_reduce_56, + 1, 72, :_reduce_57, + 3, 72, :_reduce_58, + 1, 62, :_reduce_59, + 2, 62, :_reduce_60, + 2, 62, :_reduce_61, + 2, 73, :_reduce_62, + 1, 73, :_reduce_63, + 3, 74, :_reduce_64, + 2, 65, :_reduce_65, + 3, 65, :_reduce_66, + 3, 65, :_reduce_67, + 5, 65, :_reduce_68, + 0, 75, :_reduce_69, + 1, 75, :_reduce_70, + 3, 75, :_reduce_71, + 3, 75, :_reduce_72, + 4, 63, :_reduce_73, + 5, 63, :_reduce_74, + 3, 68, :_reduce_75, + 0, 76, :_reduce_76, + 1, 76, :_reduce_77, + 3, 76, :_reduce_78, + 3, 76, :_reduce_79, + 5, 69, :_reduce_80, + 5, 69, :_reduce_81, + 7, 69, :_reduce_82, + 8, 69, :_reduce_83 ] + +racc_reduce_n = 84 + +racc_shift_n = 150 racc_token_table = { false => 0, @@ -535,45 +601,49 @@ def next_token :IDENTIFIER => 12, :PROPERTY_ACCESS => 13, :CODE => 14, - :RETURN => 15, - :UMINUS => 16, - :NOT => 17, - "!" => 18, - "*" => 19, - "/" => 20, - "%" => 21, - "+" => 22, - "-" => 23, - "<=" => 24, - "<" => 25, - ">" => 26, - ">=" => 27, - "==" => 28, - "!=" => 29, - :IS => 30, - :AINT => 31, - "&&" => 32, - "||" => 33, - :AND => 34, - :OR => 35, - "-=" => 36, - "+=" => 37, - "/=" => 38, - "*=" => 39, - "\n" => 40, - ";" => 41, - ":" => 42, - "=>" => 43, - "." => 44, - "," => 45, - "{" => 46, - "}" => 47, - "(" => 48, - ")" => 49, + :PARAM => 15, + :NEW => 16, + :RETURN => 17, + :UMINUS => 18, + :NOT => 19, + "!" => 20, + "*" => 21, + "/" => 22, + "%" => 23, + "+" => 24, + "-" => 25, + "<=" => 26, + "<" => 27, + ">" => 28, + ">=" => 29, + "==" => 30, + "!=" => 31, + :IS => 32, + :AINT => 33, + "&&" => 34, + "||" => 35, + :AND => 36, + :OR => 37, + "-=" => 38, + "+=" => 39, + "/=" => 40, + "*=" => 41, + "\n" => 42, + ";" => 43, + ":" => 44, + "||=" => 45, + "&&=" => 46, + "=>" => 47, + "." => 48, + "," => 49, "[" => 50, - "]" => 51 } + "]" => 51, + "{" => 52, + "}" => 53, + "(" => 54, + ")" => 55 } -racc_nt_base = 52 +racc_nt_base = 56 racc_use_result_var = true @@ -609,6 +679,8 @@ def next_token "IDENTIFIER", "PROPERTY_ACCESS", "CODE", + "PARAM", + "NEW", "RETURN", "UMINUS", "NOT", @@ -637,15 +709,17 @@ def next_token "\"\\n\"", "\";\"", "\":\"", + "\"||=\"", + "\"&&=\"", "\"=>\"", "\".\"", "\",\"", + "\"[\"", + "\"]\"", "\"{\"", "\"}\"", "\"(\"", "\")\"", - "\"[\"", - "\"]\"", "$start", "Root", "Expressions", @@ -663,6 +737,8 @@ def next_token "Return", "AssignObj", "ParamList", + "Accessor", + "Index", "AssignList", "ArgList" ] @@ -969,169 +1045,225 @@ def _reduce_51(val, _values, result) end .,., -module_eval(<<'.,.,', 'grammar.y', 136) +module_eval(<<'.,.,', 'grammar.y', 130) def _reduce_52(val, _values, result) - result = CodeNode.new([], val[1]) + result = OpNode.new(val[1], val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 138) +module_eval(<<'.,.,', 'grammar.y', 131) def _reduce_53(val, _values, result) + result = OpNode.new(val[1], val[0], val[2]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 137) + def _reduce_54(val, _values, result) + result = CodeNode.new(val[0], val[2]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 138) + def _reduce_55(val, _values, result) result = CodeNode.new(val[0], val[2]) result end .,., module_eval(<<'.,.,', 'grammar.y', 142) - def _reduce_54(val, _values, result) + def _reduce_56(val, _values, result) result = [] result end .,., module_eval(<<'.,.,', 'grammar.y', 143) - def _reduce_55(val, _values, result) + def _reduce_57(val, _values, result) result = val result end .,., module_eval(<<'.,.,', 'grammar.y', 144) - def _reduce_56(val, _values, result) + def _reduce_58(val, _values, result) result = val[0] << val[2] result end .,., module_eval(<<'.,.,', 'grammar.y', 148) - def _reduce_57(val, _values, result) + def _reduce_59(val, _values, result) result = VariableNode.new(val) result end .,., +module_eval(<<'.,.,', 'grammar.y', 149) + def _reduce_60(val, _values, result) + result = val[0] << val[1] + result + end +.,., + module_eval(<<'.,.,', 'grammar.y', 150) - def _reduce_58(val, _values, result) - result = val[0] << val[2] + def _reduce_61(val, _values, result) + result = VariableNode.new(val[0], [val[1]]) result end .,., module_eval(<<'.,.,', 'grammar.y', 154) - def _reduce_59(val, _values, result) - result = ObjectNode.new([]) + def _reduce_62(val, _values, result) + result = AccessorNode.new(val[1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 155) - def _reduce_60(val, _values, result) + def _reduce_63(val, _values, result) + result = val[0] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 159) + def _reduce_64(val, _values, result) + result = IndexNode.new(val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 163) + def _reduce_65(val, _values, result) result = ObjectNode.new([]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 156) - def _reduce_61(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 164) + def _reduce_66(val, _values, result) + result = ObjectNode.new([]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 165) + def _reduce_67(val, _values, result) result = ObjectNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 158) - def _reduce_62(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 167) + def _reduce_68(val, _values, result) result = ObjectNode.new(val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 162) - def _reduce_63(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 171) + def _reduce_69(val, _values, result) result = [] result end .,., -module_eval(<<'.,.,', 'grammar.y', 163) - def _reduce_64(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 172) + def _reduce_70(val, _values, result) result = val result end .,., -module_eval(<<'.,.,', 'grammar.y', 164) - def _reduce_65(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 173) + def _reduce_71(val, _values, result) result = val[0] << val[2] result end .,., -module_eval(<<'.,.,', 'grammar.y', 165) - def _reduce_66(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 174) + def _reduce_72(val, _values, result) result = val[0] << val[2] result end .,., -module_eval(<<'.,.,', 'grammar.y', 170) - def _reduce_67(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 179) + def _reduce_73(val, _values, result) result = CallNode.new(val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 175) - def _reduce_68(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 180) + def _reduce_74(val, _values, result) + result = CallNode.new(val[1], val[3], true) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 185) + def _reduce_75(val, _values, result) result = ArrayNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 180) - def _reduce_69(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 190) + def _reduce_76(val, _values, result) result = [] result end .,., -module_eval(<<'.,.,', 'grammar.y', 181) - def _reduce_70(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 191) + def _reduce_77(val, _values, result) result = val result end .,., -module_eval(<<'.,.,', 'grammar.y', 182) - def _reduce_71(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 192) + def _reduce_78(val, _values, result) result = val[0] << val[2] result end .,., -module_eval(<<'.,.,', 'grammar.y', 187) - def _reduce_72(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 193) + def _reduce_79(val, _values, result) + result = val[0] << val[2] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 198) + def _reduce_80(val, _values, result) result = IfNode.new(val[1], val[3]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 189) - def _reduce_73(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 200) + def _reduce_81(val, _values, result) result = IfNode.new(val[1], val[3]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 192) - def _reduce_74(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 203) + def _reduce_82(val, _values, result) result = IfNode.new(val[1], val[3], val[5]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 195) - def _reduce_75(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 206) + def _reduce_83(val, _values, result) result = IfNode.new(val[1], val[3], val[6]) result end diff --git a/parser_test.rb b/parser_test.rb index 080c24f3b1..c383224963 100644 --- a/parser_test.rb +++ b/parser_test.rb @@ -4,7 +4,7 @@ # Parse and print "code.jaa". require "parser.rb" -js = Parser.new.parse(File.read('documents.jaa')).compile +js = Parser.new.parse(File.read('code.jaa')).compile puts "\n\n" puts js