hotcell 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +4 -1
- data/.rspec +1 -0
- data/.rvmrc +1 -1
- data/.travis.yml +7 -0
- data/Gemfile +4 -1
- data/README.md +361 -2
- data/Rakefile +28 -6
- data/ext/lexerc/extconf.rb +3 -0
- data/ext/lexerc/lexerc.c +618 -0
- data/ext/lexerc/lexerc.h +20 -0
- data/ext/lexerc/lexerc.rl +167 -0
- data/hotcell.gemspec +8 -7
- data/lib/hotcell/commands/case.rb +59 -0
- data/lib/hotcell/commands/cycle.rb +38 -0
- data/lib/hotcell/commands/for.rb +70 -0
- data/lib/hotcell/commands/if.rb +51 -0
- data/lib/hotcell/commands/include.rb +21 -0
- data/lib/hotcell/commands/scope.rb +13 -0
- data/lib/hotcell/commands/unless.rb +23 -0
- data/lib/hotcell/commands.rb +13 -0
- data/lib/hotcell/config.rb +33 -6
- data/lib/hotcell/context.rb +40 -7
- data/lib/hotcell/errors.rb +37 -28
- data/lib/hotcell/extensions.rb +4 -0
- data/lib/hotcell/lexer.rb +19 -635
- data/lib/hotcell/lexerr.rb +572 -0
- data/lib/hotcell/lexerr.rl +137 -0
- data/lib/hotcell/node/assigner.rb +1 -5
- data/lib/hotcell/node/block.rb +17 -40
- data/lib/hotcell/node/command.rb +29 -22
- data/lib/hotcell/node/hasher.rb +1 -1
- data/lib/hotcell/node/summoner.rb +2 -6
- data/lib/hotcell/node/tag.rb +10 -7
- data/lib/hotcell/node.rb +12 -1
- data/lib/hotcell/parser.rb +474 -408
- data/lib/hotcell/parser.y +175 -117
- data/lib/hotcell/resolver.rb +44 -0
- data/lib/hotcell/source.rb +35 -0
- data/lib/hotcell/template.rb +15 -6
- data/lib/hotcell/version.rb +1 -1
- data/lib/hotcell.rb +15 -10
- data/spec/data/templates/simple.hc +1 -0
- data/spec/lib/hotcell/commands/case_spec.rb +39 -0
- data/spec/lib/hotcell/commands/cycle_spec.rb +29 -0
- data/spec/lib/hotcell/commands/for_spec.rb +65 -0
- data/spec/lib/hotcell/commands/if_spec.rb +35 -0
- data/spec/lib/hotcell/commands/include_spec.rb +39 -0
- data/spec/lib/hotcell/commands/scope_spec.rb +16 -0
- data/spec/lib/hotcell/commands/unless_spec.rb +23 -0
- data/spec/lib/hotcell/config_spec.rb +35 -10
- data/spec/lib/hotcell/context_spec.rb +58 -18
- data/spec/lib/hotcell/lexer_spec.rb +37 -28
- data/spec/lib/hotcell/node/block_spec.rb +28 -56
- data/spec/lib/hotcell/node/command_spec.rb +7 -31
- data/spec/lib/hotcell/node/tag_spec.rb +16 -0
- data/spec/lib/hotcell/parser_spec.rb +152 -123
- data/spec/lib/hotcell/resolver_spec.rb +28 -0
- data/spec/lib/hotcell/source_spec.rb +41 -0
- data/spec/lib/hotcell/template_spec.rb +47 -4
- data/spec/lib/hotcell_spec.rb +2 -1
- data/spec/spec_helper.rb +6 -2
- metadata +54 -24
- data/lib/hotcell/.DS_Store +0 -0
- data/lib/hotcell/lexer.rl +0 -299
- data/misc/rage.rl +0 -1999
- data/misc/unicode2ragel.rb +0 -305
    
        data/lib/hotcell/parser.rb
    CHANGED
    
    | @@ -5,31 +5,59 @@ | |
| 5 5 | 
             
            #
         | 
| 6 6 |  | 
| 7 7 | 
             
            require 'racc/parser.rb'
         | 
| 8 | 
            -
             | 
| 9 | 
            -
              require 'hotcell/lexer'
         | 
| 10 8 | 
             
            module Hotcell
         | 
| 11 9 | 
             
              class Parser < Racc::Parser
         | 
| 12 10 |  | 
| 13 | 
            -
            module_eval(<<'...end parser.y/module_eval...', 'parser.y',  | 
| 14 | 
            -
               | 
| 15 | 
            -
             | 
| 11 | 
            +
            module_eval(<<'...end parser.y/module_eval...', 'parser.y', 194)
         | 
| 12 | 
            +
              OPERATIONS = {
         | 
| 13 | 
            +
                '+' => :PLUS, '-' => :MINUS, '*' => :MULTIPLY, '**' => :POWER, '/' => :DIVIDE, '%' => :MODULO,
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                '&&' => :AND, '||' => :OR, '!' => :NOT, '==' => :EQUAL, '!=' => :INEQUAL,
         | 
| 16 | 
            +
                '>' => :GT, '>=' => :GTE, '<' => :LT, '<=' => :LTE,
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                '=' => :ASSIGN, ',' => :COMMA, '.' => :PERIOD, ':' => :COLON, '?' => :QUESTION,
         | 
| 19 | 
            +
                ';' => :SEMICOLON
         | 
| 20 | 
            +
              }
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              BOPEN = { '[' => :AOPEN, '{' => :HOPEN, '(' => :POPEN }
         | 
| 23 | 
            +
              BCLOSE = { ']' => :ACLOSE, '}' => :HCLOSE, ')' => :PCLOSE }
         | 
| 24 | 
            +
             | 
| 25 | 
            +
              NEWLINE_PRED = Set.new(BOPEN.values + OPERATIONS.values)
         | 
| 26 | 
            +
              NEWLINE_NEXT = Set.new(BCLOSE.values + [:NEWLINE])
         | 
| 16 27 |  | 
| 17 28 | 
             
              TAG_MODES = { '{{' => :normal, '{{!' => :silence }
         | 
| 18 29 |  | 
| 19 | 
            -
              def initialize  | 
| 20 | 
            -
                @ | 
| 30 | 
            +
              def initialize source, options = {}
         | 
| 31 | 
            +
                @source = Source.wrap(source)
         | 
| 32 | 
            +
                @lexer = Lexer.new(source)
         | 
| 21 33 | 
             
                @tokens = @lexer.tokens
         | 
| 22 34 | 
             
                @position = -1
         | 
| 23 35 |  | 
| 24 | 
            -
                @commands =  | 
| 25 | 
            -
                @blocks =  | 
| 26 | 
            -
                @endblocks = Set.new( | 
| 27 | 
            -
             | 
| 36 | 
            +
                @commands = options[:commands] || {}
         | 
| 37 | 
            +
                @blocks = options[:blocks] || {}
         | 
| 38 | 
            +
                @endblocks = Set.new(@blocks.keys.map { |identifer| "end#{identifer}" })
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                @substack = []
         | 
| 41 | 
            +
                @posstack = []
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
              def build klass, *args
         | 
| 45 | 
            +
                options = args.extract_options!
         | 
| 46 | 
            +
                options[:source] = @source
         | 
| 47 | 
            +
                klass.build *args.push(options)
         | 
| 48 | 
            +
              end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
              def pospoppush pop, push = 0
         | 
| 51 | 
            +
                # because fuck the brains, that's why!
         | 
| 52 | 
            +
                last = @posstack.pop
         | 
| 53 | 
            +
                reduced = @posstack.push(@posstack.pop(pop)[push])[-1]
         | 
| 54 | 
            +
                @posstack.push last
         | 
| 55 | 
            +
                reduced
         | 
| 28 56 | 
             
              end
         | 
| 29 57 |  | 
| 30 58 | 
             
              def parse
         | 
| 31 59 | 
             
                if @tokens.size == 0
         | 
| 32 | 
            -
                   | 
| 60 | 
            +
                  build Joiner, :JOINER, position: 0
         | 
| 33 61 | 
             
                else
         | 
| 34 62 | 
             
                  do_parse
         | 
| 35 63 | 
             
                end
         | 
| @@ -37,27 +65,32 @@ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 176) | |
| 37 65 |  | 
| 38 66 | 
             
              def next_token
         | 
| 39 67 | 
             
                @position = @position + 1
         | 
| 40 | 
            -
             | 
| 41 68 | 
             
                tcurr = @tokens[@position]
         | 
| 42 | 
            -
                tnext = @tokens[@position.next]
         | 
| 43 | 
            -
                tpred = @tokens[@position.pred]
         | 
| 44 69 |  | 
| 45 70 | 
             
                if tcurr && (tcurr[0] == :COMMENT || tcurr[0] == :NEWLINE && (
         | 
| 46 | 
            -
                  (tpred && NEWLINE_PRED.include?(tpred[0])) ||
         | 
| 47 | 
            -
                  (tnext && NEWLINE_NEXT.include?(tnext[0]))
         | 
| 71 | 
            +
                  ((tpred = @tokens[@position.pred]) && NEWLINE_PRED.include?(tpred[0])) ||
         | 
| 72 | 
            +
                  ((tnext = @tokens[@position.next]) && NEWLINE_NEXT.include?(tnext[0]))
         | 
| 48 73 | 
             
                ))
         | 
| 49 74 | 
             
                  next_token
         | 
| 50 75 | 
             
                else
         | 
| 76 | 
            +
                  if tcurr
         | 
| 77 | 
            +
                    @posstack << tcurr[1][1]
         | 
| 78 | 
            +
                    tcurr = [tcurr[0], tcurr[1][0]]
         | 
| 79 | 
            +
                  end
         | 
| 80 | 
            +
             | 
| 51 81 | 
             
                  if tcurr && tcurr[0] == :IDENTIFER
         | 
| 52 | 
            -
                    if @commands. | 
| 82 | 
            +
                    if @commands.key?(tcurr[1])
         | 
| 53 83 | 
             
                      [:COMMAND, tcurr[1]]
         | 
| 54 | 
            -
                    elsif @blocks. | 
| 84 | 
            +
                    elsif @blocks.key?(tcurr[1])
         | 
| 85 | 
            +
                      @substack.push(@blocks[tcurr[1]].subcommands)
         | 
| 55 86 | 
             
                      [:BLOCK, tcurr[1]]
         | 
| 87 | 
            +
                    elsif @substack.last && @substack.last.key?(tcurr[1])
         | 
| 88 | 
            +
                      [:SUBCOMMAND, tcurr[1]]
         | 
| 56 89 | 
             
                    elsif @endblocks.include?(tcurr[1])
         | 
| 90 | 
            +
                      @substack.pop
         | 
| 57 91 | 
             
                      [:ENDBLOCK, tcurr[1]]
         | 
| 58 | 
            -
                    elsif @subcommands.include?(tcurr[1])
         | 
| 59 | 
            -
                      [:SUBCOMMAND, tcurr[1]]
         | 
| 60 92 | 
             
                    elsif tcurr[1] == 'end'
         | 
| 93 | 
            +
                      @substack.pop
         | 
| 61 94 | 
             
                      [:END, tcurr[1]]
         | 
| 62 95 | 
             
                    else
         | 
| 63 96 | 
             
                      tcurr
         | 
| @@ -67,43 +100,48 @@ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 176) | |
| 67 100 | 
             
                  end
         | 
| 68 101 | 
             
                end
         | 
| 69 102 | 
             
              end
         | 
| 103 | 
            +
             | 
| 104 | 
            +
              def on_error(token, value, vstack)
         | 
| 105 | 
            +
                raise Hotcell::UnexpectedLexem.new("#{token_to_str(token) || '?'} `#{value}`",
         | 
| 106 | 
            +
                  *@source.info(@posstack.last).values_at(:line, :column))
         | 
| 107 | 
            +
              end
         | 
| 70 108 | 
             
            ...end parser.y/module_eval...
         | 
| 71 109 | 
             
            ##### State transition tables begin ###
         | 
| 72 110 |  | 
| 73 111 | 
             
            racc_action_table = [
         | 
| 74 112 | 
             
                42,    10,    26,   106,    92,   141,   103,    92,    25,    24,
         | 
| 75 | 
            -
               135, | 
| 76 | 
            -
                90,     | 
| 77 | 
            -
                 8,    | 
| 78 | 
            -
                39,    40,    41,    43,     | 
| 79 | 
            -
                27,    | 
| 80 | 
            -
                42,   129,    26,     | 
| 81 | 
            -
                68,    | 
| 82 | 
            -
             | 
| 83 | 
            -
                 | 
| 113 | 
            +
               136,   103,   135,   104,    81,    82,    42,    59,    26,   134,
         | 
| 114 | 
            +
                90,    60,    21,    22,    25,    24,    60,   132,    65,     7,
         | 
| 115 | 
            +
                 8,   104,    60,   131,    27,    87,    35,    36,    37,    38,
         | 
| 116 | 
            +
                39,    40,    41,    43,    55,   127,   130,   106,    51,    52,
         | 
| 117 | 
            +
                27,   105,    35,    36,    37,    38,    39,    40,    41,    43,
         | 
| 118 | 
            +
                42,   129,    26,     7,    44,    60,    81,    82,    25,    24,
         | 
| 119 | 
            +
                68,   142,    67,    69,    72,    63,    42,    61,    26,    81,
         | 
| 120 | 
            +
                82,    49,    21,    22,    25,    24,    12,    14,    16,   106,
         | 
| 121 | 
            +
                18,    81,    82,   nil,    27,    68,    35,    36,    37,    38,
         | 
| 84 122 | 
             
                39,    40,    41,    43,    65,    81,    82,    81,    82,    68,
         | 
| 85 123 | 
             
                27,    68,    35,    36,    37,    38,    39,    40,    41,    43,
         | 
| 86 | 
            -
                42,    | 
| 124 | 
            +
                42,   nil,    26,    51,    52,     7,     8,    50,    25,    24,
         | 
| 87 125 | 
             
               nil,    81,    82,    81,    82,    68,    42,    68,    26,    67,
         | 
| 88 | 
            -
                69,    72,    70,    71,    25,    24,    81,    82,     | 
| 89 | 
            -
                68, | 
| 90 | 
            -
                39,    40,    41,    43,     | 
| 126 | 
            +
                69,    72,    70,    71,    25,    24,    81,    82,    65,   nil,
         | 
| 127 | 
            +
                68,     7,    44,   nil,    27,   nil,    35,    36,    37,    38,
         | 
| 128 | 
            +
                39,    40,    41,    43,    55,   nil,   nil,   nil,   nil,   nil,
         | 
| 91 129 | 
             
                27,   nil,    35,    36,    37,    38,    39,    40,    41,    43,
         | 
| 92 130 | 
             
                42,   nil,    26,   nil,   nil,   nil,   nil,   nil,    25,    24,
         | 
| 93 131 | 
             
               nil,   nil,   nil,    81,    82,   nil,    42,    68,    26,    67,
         | 
| 94 | 
            -
                69,    72,    70,    71,    25,    24,   nil,   nil,     | 
| 132 | 
            +
                69,    72,    70,    71,    25,    24,   nil,   nil,    55,   nil,
         | 
| 95 133 | 
             
               nil,   nil,   nil,   nil,    27,   nil,    35,    36,    37,    38,
         | 
| 96 | 
            -
                39,    40,    41,    43,     | 
| 134 | 
            +
                39,    40,    41,    43,    55,   nil,   nil,   nil,   nil,   nil,
         | 
| 97 135 | 
             
                27,   nil,    35,    36,    37,    38,    39,    40,    41,    43,
         | 
| 98 136 | 
             
                42,   nil,    26,   nil,   nil,   nil,   nil,   nil,    25,    24,
         | 
| 99 137 | 
             
               nil,   nil,   nil,    81,    82,   nil,    42,    68,    26,    67,
         | 
| 100 | 
            -
                69,    72,    70,    71,    25,    24,   nil,   nil,     | 
| 138 | 
            +
                69,    72,    70,    71,    25,    24,   nil,   nil,    65,   nil,
         | 
| 101 139 | 
             
               nil,   nil,   nil,   nil,    27,   nil,    35,    36,    37,    38,
         | 
| 102 | 
            -
                39,    40,    41,    43,     | 
| 140 | 
            +
                39,    40,    41,    43,    55,   nil,   nil,   nil,   nil,   nil,
         | 
| 103 141 | 
             
                27,   nil,    35,    36,    37,    38,    39,    40,    41,    43,
         | 
| 104 142 | 
             
                42,   nil,    26,   nil,   nil,   nil,   nil,   nil,    25,    24,
         | 
| 105 143 | 
             
               nil,   nil,   nil,    81,    82,   nil,    42,    68,    26,    67,
         | 
| 106 | 
            -
                69,    72,    70,    71,    25,    24,   nil,   nil,     | 
| 144 | 
            +
                69,    72,    70,    71,    25,    24,   nil,   nil,    65,   nil,
         | 
| 107 145 | 
             
               nil,   nil,   nil,   nil,    27,   nil,    35,    36,    37,    38,
         | 
| 108 146 | 
             
                39,    40,    41,    43,    65,   nil,   nil,   nil,   nil,   nil,
         | 
| 109 147 | 
             
                27,   nil,    35,    36,    37,    38,    39,    40,    41,    43,
         | 
| @@ -123,7 +161,7 @@ racc_action_table = [ | |
| 123 161 | 
             
               nil,   nil,   nil,   nil,   nil,   nil,    42,   nil,    26,   nil,
         | 
| 124 162 | 
             
               nil,   nil,   nil,   nil,    25,    24,   nil,   nil,    65,   nil,
         | 
| 125 163 | 
             
               nil,   nil,   nil,   nil,    27,   nil,    35,    36,    37,    38,
         | 
| 126 | 
            -
                39,    40,    41,    43,     | 
| 164 | 
            +
                39,    40,    41,    43,    65,   nil,   nil,   nil,   nil,   nil,
         | 
| 127 165 | 
             
                27,   nil,    35,    36,    37,    38,    39,    40,    41,    43,
         | 
| 128 166 | 
             
                42,   nil,    26,   nil,   nil,   nil,   nil,   nil,    25,    24,
         | 
| 129 167 | 
             
               nil,   nil,   nil,   nil,   nil,   nil,    42,   nil,    26,   nil,
         | 
| @@ -133,8 +171,8 @@ racc_action_table = [ | |
| 133 171 | 
             
                27,   nil,    35,    36,    37,    38,    39,    40,    41,    43,
         | 
| 134 172 | 
             
                42,   nil,    26,   nil,   nil,   nil,   nil,   nil,    25,    24,
         | 
| 135 173 | 
             
               nil,   nil,   nil,   nil,   nil,   nil,    42,   nil,    26,   nil,
         | 
| 136 | 
            -
               nil,   nil,    21,    22,    25,    24,    12,     | 
| 137 | 
            -
                95,    96, | 
| 174 | 
            +
               nil,   nil,    21,    22,    25,    24,    12,    14,    16,    93,
         | 
| 175 | 
            +
                18,    95,    96,   nil,    27,   nil,    35,    36,    37,    38,
         | 
| 138 176 | 
             
                39,    40,    41,    43,    65,   nil,   nil,   nil,   nil,   nil,
         | 
| 139 177 | 
             
                27,   nil,    35,    36,    37,    38,    39,    40,    41,    43,
         | 
| 140 178 | 
             
                42,   nil,    26,   nil,   nil,   nil,   nil,   nil,    25,    24,
         | 
| @@ -159,7 +197,7 @@ racc_action_table = [ | |
| 159 197 | 
             
               nil,   nil,   nil,   nil,   nil,   nil,    42,   nil,    26,   nil,
         | 
| 160 198 | 
             
               nil,   nil,   nil,   nil,    25,    24,   nil,   nil,    65,   nil,
         | 
| 161 199 | 
             
               nil,   nil,   nil,   nil,    27,   nil,    35,    36,    37,    38,
         | 
| 162 | 
            -
                39,    40,    41,    43,     | 
| 200 | 
            +
                39,    40,    41,    43,    55,   nil,   nil,   nil,   nil,   nil,
         | 
| 163 201 | 
             
                27,   110,    35,    36,    37,    38,    39,    40,    41,    43,
         | 
| 164 202 | 
             
                42,   nil,    26,   nil,   nil,   nil,   nil,   nil,    25,    24,
         | 
| 165 203 | 
             
               nil,   nil,   nil,   nil,   nil,   nil,    42,   nil,    26,   nil,
         | 
| @@ -175,8 +213,8 @@ racc_action_table = [ | |
| 175 213 | 
             
                27,   nil,    35,    36,    37,    38,    39,    40,    41,    43,
         | 
| 176 214 | 
             
                42,   nil,    26,   nil,   nil,   nil,    81,    82,    25,    24,
         | 
| 177 215 | 
             
                68,   nil,    67,    69,    72,    70,    71,    75,    76,    77,
         | 
| 178 | 
            -
                78,    79,    80,    73,    74,   nil,   nil,     | 
| 179 | 
            -
             | 
| 216 | 
            +
                78,    79,    80,    73,    74,   nil,   nil,    14,    65,   nil,
         | 
| 217 | 
            +
                18,   nil,   nil,   nil,    27,   nil,    35,    36,    37,    38,
         | 
| 180 218 | 
             
                39,    40,    41,    43,    81,    82,   nil,   nil,    68,   nil,
         | 
| 181 219 | 
             
                67,    69,    72,    70,    71,    75,    76,    77,    78,    79,
         | 
| 182 220 | 
             
                80,    73,    74,    81,    82,   nil,   nil,    68,   nil,    67,
         | 
| @@ -188,54 +226,54 @@ racc_action_table = [ | |
| 188 226 | 
             
                81,    82,   nil,   nil,    68,   nil,    67,    69,    72,    70,
         | 
| 189 227 | 
             
                71,    75,    76,    77,    78,    79,    80,    73,    81,    82,
         | 
| 190 228 | 
             
               nil,   nil,    68,   nil,    67,    69,    72,    70,    71,    75,
         | 
| 191 | 
            -
                76,    77,    78, | 
| 229 | 
            +
                76,    77,    78,    79,    80,    81,    82,   nil,   nil,    68,
         | 
| 192 230 | 
             
               nil,    67,    69,    72,    70,    71,    75,    76,    77,    78,
         | 
| 193 | 
            -
               - | 
| 194 | 
            -
                72,    70,    71,    75,    76,    77,    78, | 
| 231 | 
            +
               -93,   -93,    81,    82,   nil,   nil,    68,   nil,    67,    69,
         | 
| 232 | 
            +
                72,    70,    71,    75,    76,    77,    78,   -93,   -93 ]
         | 
| 195 233 |  | 
| 196 234 | 
             
            racc_action_check = [
         | 
| 197 235 | 
             
                27,     1,    27,    91,    43,   111,    65,   106,    27,    27,
         | 
| 198 | 
            -
                96,     | 
| 199 | 
            -
                43,    65,    27,    27, | 
| 200 | 
            -
                 1,     | 
| 201 | 
            -
                27,    27,    27,    27, | 
| 202 | 
            -
             | 
| 203 | 
            -
                 8,    86,     8, | 
| 204 | 
            -
               116, | 
| 205 | 
            -
             | 
| 206 | 
            -
             | 
| 207 | 
            -
                 8,     8,     8,     8,    | 
| 208 | 
            -
                | 
| 209 | 
            -
                | 
| 210 | 
            -
               nil,   113,   113,   122,   122,   113, | 
| 211 | 
            -
               122,   122,   122,   122, | 
| 212 | 
            -
               112, | 
| 213 | 
            -
                | 
| 236 | 
            +
                97,    55,    96,    55,    85,    85,    93,    16,    93,    94,
         | 
| 237 | 
            +
                43,    65,    27,    27,    93,    93,    55,    91,    27,     1,
         | 
| 238 | 
            +
                 1,    92,    16,    89,    27,    27,    27,    27,    27,    27,
         | 
| 239 | 
            +
                27,    27,    27,    27,    93,    81,    89,    57,    86,    86,
         | 
| 240 | 
            +
                93,    56,    93,    93,    93,    93,    93,    93,    93,    93,
         | 
| 241 | 
            +
                 8,    86,     8,     9,     9,   127,   116,   116,     8,     8,
         | 
| 242 | 
            +
               116,   128,   116,   116,   116,    20,   103,    17,   103,    84,
         | 
| 243 | 
            +
                84,    10,     8,     8,   103,   103,     8,     8,     8,   139,
         | 
| 244 | 
            +
                 8,   117,   117,   nil,     8,   117,     8,     8,     8,     8,
         | 
| 245 | 
            +
                 8,     8,     8,     8,   103,   114,   114,    83,    83,   114,
         | 
| 246 | 
            +
               103,    83,   103,   103,   103,   103,   103,   103,   103,   103,
         | 
| 247 | 
            +
               104,   nil,   104,    13,    13,     0,     0,    13,   104,   104,
         | 
| 248 | 
            +
               nil,   113,   113,   122,   122,   113,   105,   122,   105,   122,
         | 
| 249 | 
            +
               122,   122,   122,   122,   105,   105,   112,   112,   104,   nil,
         | 
| 250 | 
            +
               112,    45,    45,   nil,   104,   nil,   104,   104,   104,   104,
         | 
| 251 | 
            +
               104,   104,   104,   104,   105,   nil,   nil,   nil,   nil,   nil,
         | 
| 252 | 
            +
               105,   nil,   105,   105,   105,   105,   105,   105,   105,   105,
         | 
| 253 | 
            +
                14,   nil,    14,   nil,   nil,   nil,   nil,   nil,    14,    14,
         | 
| 254 | 
            +
               nil,   nil,   nil,   123,   123,   nil,    82,   123,    82,   123,
         | 
| 255 | 
            +
               123,   123,   123,   123,    82,    82,   nil,   nil,    14,   nil,
         | 
| 256 | 
            +
               nil,   nil,   nil,   nil,    14,   nil,    14,    14,    14,    14,
         | 
| 257 | 
            +
                14,    14,    14,    14,    82,   nil,   nil,   nil,   nil,   nil,
         | 
| 214 258 | 
             
                82,   nil,    82,    82,    82,    82,    82,    82,    82,    82,
         | 
| 215 259 | 
             
                80,   nil,    80,   nil,   nil,   nil,   nil,   nil,    80,    80,
         | 
| 216 | 
            -
               nil,   nil,   nil,    | 
| 217 | 
            -
                | 
| 260 | 
            +
               nil,   nil,   nil,   120,   120,   nil,    18,   120,    18,   120,
         | 
| 261 | 
            +
               120,   120,   120,   120,    18,    18,   nil,   nil,    80,   nil,
         | 
| 218 262 | 
             
               nil,   nil,   nil,   nil,    80,   nil,    80,    80,    80,    80,
         | 
| 219 | 
            -
                80,    80,    80,    80, | 
| 220 | 
            -
             | 
| 221 | 
            -
             | 
| 222 | 
            -
               nil,   nil,   nil,   121,   121,   nil,     | 
| 223 | 
            -
               121,   121,   121,   121,     | 
| 224 | 
            -
               nil,   nil,   nil,   nil, | 
| 225 | 
            -
             | 
| 226 | 
            -
                79,   nil,    79,    79,    79,    79,    79,    79,    79,    79,
         | 
| 227 | 
            -
                19,   nil,    19,   nil,   nil,   nil,   nil,   nil,    19,    19,
         | 
| 228 | 
            -
               nil,   nil,   nil,   120,   120,   nil,    21,   120,    21,   120,
         | 
| 229 | 
            -
               120,   120,   120,   120,    21,    21,   nil,   nil,    19,   nil,
         | 
| 230 | 
            -
               nil,   nil,   nil,   nil,    19,   nil,    19,    19,    19,    19,
         | 
| 231 | 
            -
                19,    19,    19,    19,    21,   nil,   nil,   nil,   nil,   nil,
         | 
| 263 | 
            +
                80,    80,    80,    80,    18,   nil,   nil,   nil,   nil,   nil,
         | 
| 264 | 
            +
                18,   nil,    18,    18,    18,    18,    18,    18,    18,    18,
         | 
| 265 | 
            +
               131,   nil,   131,   nil,   nil,   nil,   nil,   nil,   131,   131,
         | 
| 266 | 
            +
               nil,   nil,   nil,   121,   121,   nil,    21,   121,    21,   121,
         | 
| 267 | 
            +
               121,   121,   121,   121,    21,    21,   nil,   nil,   131,   nil,
         | 
| 268 | 
            +
               nil,   nil,   nil,   nil,   131,   nil,   131,   131,   131,   131,
         | 
| 269 | 
            +
               131,   131,   131,   131,    21,   nil,   nil,   nil,   nil,   nil,
         | 
| 232 270 | 
             
                21,   nil,    21,    21,    21,    21,    21,    21,    21,    21,
         | 
| 233 271 | 
             
                22,   nil,    22,   nil,   nil,   nil,   115,   115,    22,    22,
         | 
| 234 | 
            -
               115,   nil,   115,   115,   115,   nil,     | 
| 235 | 
            -
               nil,   nil,   nil,   nil,     | 
| 272 | 
            +
               115,   nil,   115,   115,   115,   nil,    79,   nil,    79,   nil,
         | 
| 273 | 
            +
               nil,   nil,   nil,   nil,    79,    79,   nil,   nil,    22,   nil,
         | 
| 236 274 | 
             
               nil,   nil,   nil,   nil,    22,   nil,    22,    22,    22,    22,
         | 
| 237 | 
            -
                22,    22,    22,    22,     | 
| 238 | 
            -
                 | 
| 275 | 
            +
                22,    22,    22,    22,    79,   nil,   nil,   nil,   nil,   nil,
         | 
| 276 | 
            +
                79,   nil,    79,    79,    79,    79,    79,    79,    79,    79,
         | 
| 239 277 | 
             
                24,   nil,    24,   nil,   nil,   nil,   nil,   nil,    24,    24,
         | 
| 240 278 | 
             
               nil,   nil,   nil,   nil,   nil,   nil,    25,   nil,    25,   nil,
         | 
| 241 279 | 
             
               nil,   nil,   nil,   nil,    25,    25,   nil,   nil,    24,   nil,
         | 
| @@ -243,11 +281,11 @@ racc_action_check = [ | |
| 243 281 | 
             
                24,    24,    24,    24,    25,   nil,   nil,   nil,   nil,   nil,
         | 
| 244 282 | 
             
                25,   nil,    25,    25,    25,    25,    25,    25,    25,    25,
         | 
| 245 283 | 
             
                26,   nil,    26,   nil,   nil,   nil,   nil,   nil,    26,    26,
         | 
| 246 | 
            -
               nil,   nil,   nil,   nil,   nil,   nil,     | 
| 247 | 
            -
               nil,   nil,   nil,   nil,     | 
| 284 | 
            +
               nil,   nil,   nil,   nil,   nil,   nil,    78,   nil,    78,   nil,
         | 
| 285 | 
            +
               nil,   nil,   nil,   nil,    78,    78,   nil,   nil,    26,   nil,
         | 
| 248 286 | 
             
               nil,   nil,   nil,   nil,    26,   nil,    26,    26,    26,    26,
         | 
| 249 | 
            -
                26,    26,    26,    26,     | 
| 250 | 
            -
                 | 
| 287 | 
            +
                26,    26,    26,    26,    78,   nil,   nil,   nil,   nil,   nil,
         | 
| 288 | 
            +
                78,   nil,    78,    78,    78,    78,    78,    78,    78,    78,
         | 
| 251 289 | 
             
                42,   nil,    42,   nil,   nil,   nil,   nil,   nil,    42,    42,
         | 
| 252 290 | 
             
               nil,   nil,   nil,   nil,   nil,   nil,    77,   nil,    77,   nil,
         | 
| 253 291 | 
             
               nil,   nil,   nil,   nil,    77,    77,   nil,   nil,    42,   nil,
         | 
| @@ -279,11 +317,11 @@ racc_action_check = [ | |
| 279 317 | 
             
                73,    73,    73,    73,    72,   nil,   nil,   nil,   nil,   nil,
         | 
| 280 318 | 
             
                72,   nil,    72,    72,    72,    72,    72,    72,    72,    72,
         | 
| 281 319 | 
             
                70,   nil,    70,   nil,   nil,   nil,   nil,   nil,    70,    70,
         | 
| 282 | 
            -
               nil,   nil,   nil,   nil,   nil,   nil,     | 
| 283 | 
            -
               nil,   nil,   nil,   nil,     | 
| 320 | 
            +
               nil,   nil,   nil,   nil,   nil,   nil,    60,   nil,    60,   nil,
         | 
| 321 | 
            +
               nil,   nil,   nil,   nil,    60,    60,   nil,   nil,    70,   nil,
         | 
| 284 322 | 
             
               nil,   nil,   nil,   nil,    70,   nil,    70,    70,    70,    70,
         | 
| 285 | 
            -
                70,    70,    70,    70,     | 
| 286 | 
            -
                 | 
| 323 | 
            +
                70,    70,    70,    70,    60,   nil,   nil,   nil,   nil,   nil,
         | 
| 324 | 
            +
                60,    60,    60,    60,    60,    60,    60,    60,    60,    60,
         | 
| 287 325 | 
             
                71,   nil,    71,   nil,   nil,   nil,   nil,   nil,    71,    71,
         | 
| 288 326 | 
             
               nil,   nil,   nil,   nil,   nil,   nil,    67,   nil,    67,   nil,
         | 
| 289 327 | 
             
               nil,   nil,   nil,   nil,    67,    67,   nil,   nil,    71,   nil,
         | 
| @@ -296,97 +334,97 @@ racc_action_check = [ | |
| 296 334 | 
             
               nil,   nil,   nil,   nil,    68,   nil,    68,    68,    68,    68,
         | 
| 297 335 | 
             
                68,    68,    68,    68,    69,   nil,   nil,   nil,   nil,   nil,
         | 
| 298 336 | 
             
                69,   nil,    69,    69,    69,    69,    69,    69,    69,    69,
         | 
| 299 | 
            -
                 | 
| 300 | 
            -
                | 
| 301 | 
            -
                | 
| 302 | 
            -
             | 
| 303 | 
            -
                 | 
| 304 | 
            -
               137,   137,   137,   137,   137,   137,   137,   137,   137,   137,
         | 
| 305 | 
            -
               137,   137,   137,    56,    56,   nil,   nil,    56,   nil,    56,
         | 
| 306 | 
            -
                56,    56,    56,    56,    56,    56,    56,    56,    56,    56,
         | 
| 307 | 
            -
                56,    56,    23,    23,   nil,   nil,    23,   nil,    23,    23,
         | 
| 308 | 
            -
                23,    23,    23,    23,    23,    23,    23,    23,    23,    23,
         | 
| 309 | 
            -
                23,   138,   138,   nil,   nil,   138,   nil,   138,   138,   138,
         | 
| 337 | 
            +
                59,   nil,    59,   nil,   nil,   nil,   137,   137,    59,    59,
         | 
| 338 | 
            +
               137,   nil,   137,   137,   137,   137,   137,   137,   137,   137,
         | 
| 339 | 
            +
               137,   137,   137,   137,   137,   nil,   nil,    59,    59,   nil,
         | 
| 340 | 
            +
                59,   nil,   nil,   nil,    59,   nil,    59,    59,    59,    59,
         | 
| 341 | 
            +
                59,    59,    59,    59,   138,   138,   nil,   nil,   138,   nil,
         | 
| 310 342 | 
             
               138,   138,   138,   138,   138,   138,   138,   138,   138,   138,
         | 
| 343 | 
            +
               138,   138,   138,    54,    54,   nil,   nil,    54,   nil,    54,
         | 
| 344 | 
            +
                54,    54,    54,    54,    54,    54,    54,    54,    54,    54,
         | 
| 345 | 
            +
                54,    54,   109,   109,   nil,   nil,   109,   nil,   109,   109,
         | 
| 346 | 
            +
               109,   109,   109,   109,   109,   109,   109,   109,   109,   109,
         | 
| 347 | 
            +
               109,    23,    23,   nil,   nil,    23,   nil,    23,    23,    23,
         | 
| 348 | 
            +
                23,    23,    23,    23,    23,    23,    23,    23,    23,    23,
         | 
| 311 349 | 
             
               119,   119,   nil,   nil,   119,   nil,   119,   119,   119,   119,
         | 
| 312 | 
            -
               119,   119,   119,   119,   119,   119,   119,   119,    | 
| 313 | 
            -
               nil,   nil,    | 
| 314 | 
            -
                | 
| 350 | 
            +
               119,   119,   119,   119,   119,   119,   119,   119,   118,   118,
         | 
| 351 | 
            +
               nil,   nil,   118,   nil,   118,   118,   118,   118,   118,   118,
         | 
| 352 | 
            +
               118,   118,   118,   118,   118,   125,   125,   nil,   nil,   125,
         | 
| 315 353 | 
             
               nil,   125,   125,   125,   125,   125,   125,   125,   125,   125,
         | 
| 316 | 
            -
               125,   125,    | 
| 317 | 
            -
                | 
| 354 | 
            +
               125,   125,   124,   124,   nil,   nil,   124,   nil,   124,   124,
         | 
| 355 | 
            +
               124,   124,   124,   124,   124,   124,   124,   124,   124 ]
         | 
| 318 356 |  | 
| 319 357 | 
             
            racc_action_pointer = [
         | 
| 320 | 
            -
                 | 
| 321 | 
            -
                 | 
| 322 | 
            -
             | 
| 358 | 
            +
                97,     1,   nil,   nil,   nil,   nil,   nil,   nil,    56,    35,
         | 
| 359 | 
            +
                81,   nil,   nil,    97,   176,   nil,    -6,    47,   252,   nil,
         | 
| 360 | 
            +
                45,   312,   356,  1118,   416,   432,   476,    -4,   nil,   nil,
         | 
| 323 361 | 
             
               nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
         | 
| 324 | 
            -
               nil,   nil,   536,   -28,   596, | 
| 325 | 
            -
               nil,   656,   672,   nil, | 
| 326 | 
            -
               nil, | 
| 327 | 
            -
               836,   896,   792,   776,   732,   716,   612,   552,    | 
| 328 | 
            -
                | 
| 329 | 
            -
               nil,   -21, | 
| 330 | 
            -
               nil,   nil,   nil,     | 
| 331 | 
            -
               nil,   -34,   143,   128,   102,   363,    63,    88,   | 
| 332 | 
            -
                | 
| 333 | 
            -
               nil,    | 
| 362 | 
            +
               nil,   nil,   536,   -28,   596,   123,   nil,   nil,   nil,   nil,
         | 
| 363 | 
            +
               nil,   656,   672,   nil,  1080,   -12,    27,    23,   nil,  1016,
         | 
| 364 | 
            +
               852,   nil,   nil,   nil,   nil,   -17,   nil,   912,   956,   972,
         | 
| 365 | 
            +
               836,   896,   792,   776,   732,   716,   612,   552,   492,   372,
         | 
| 366 | 
            +
               236,    13,   192,   104,    76,    11,    22,   nil,   nil,     9,
         | 
| 367 | 
            +
               nil,   -21,     6,    12,   -11,   nil,   -22,   -20,   nil,   nil,
         | 
| 368 | 
            +
               nil,   nil,   nil,    72,   116,   132,   -25,   nil,   nil,  1099,
         | 
| 369 | 
            +
               nil,   -34,   143,   128,   102,   363,    63,    88,  1155,  1137,
         | 
| 370 | 
            +
               250,   310,   130,   190,  1189,  1172,   nil,    27,    34,   nil,
         | 
| 371 | 
            +
               nil,   296,   nil,   nil,   nil,   nil,   nil,  1023,  1061,    65,
         | 
| 334 372 | 
             
               nil,   nil,   nil ]
         | 
| 335 373 |  | 
| 336 374 | 
             
            racc_action_default = [
         | 
| 337 | 
            -
               - | 
| 338 | 
            -
               - | 
| 339 | 
            -
               - | 
| 340 | 
            -
               - | 
| 341 | 
            -
               - | 
| 342 | 
            -
                -9,   - | 
| 343 | 
            -
               - | 
| 344 | 
            -
               - | 
| 345 | 
            -
               - | 
| 346 | 
            -
               - | 
| 347 | 
            -
               - | 
| 348 | 
            -
               - | 
| 349 | 
            -
               - | 
| 350 | 
            -
               - | 
| 351 | 
            -
               - | 
| 375 | 
            +
               -93,   -93,    -2,    -3,    -4,    -5,    -6,    -7,   -93,   -93,
         | 
| 376 | 
            +
               -93,    -1,    -8,   -93,   -10,   -12,   -90,   -93,   -18,   -20,
         | 
| 377 | 
            +
               -93,   -36,   -40,   -41,   -93,   -93,   -93,   -93,   -64,   -65,
         | 
| 378 | 
            +
               -66,   -67,   -68,   -69,   -70,   -71,   -72,   -73,   -74,   -75,
         | 
| 379 | 
            +
               -76,   -77,   -93,   -93,   -93,   -93,   -29,   -30,   -31,   143,
         | 
| 380 | 
            +
                -9,   -34,   -38,   -11,   -81,   -90,   -88,   -89,   -85,   -93,
         | 
| 381 | 
            +
               -93,   -14,   -19,   -25,   -35,   -90,   -39,   -93,   -93,   -93,
         | 
| 382 | 
            +
               -93,   -93,   -93,   -93,   -93,   -93,   -93,   -93,   -93,   -93,
         | 
| 383 | 
            +
               -93,   -93,   -93,   -48,   -49,   -58,   -93,   -62,   -78,   -93,
         | 
| 384 | 
            +
               -82,   -93,   -93,   -15,   -93,   -22,   -24,   -93,   -27,   -28,
         | 
| 385 | 
            +
               -32,   -33,   -37,   -93,   -93,   -93,   -93,   -13,   -21,   -59,
         | 
| 386 | 
            +
               -91,   -93,   -42,   -43,   -44,   -45,   -46,   -47,   -50,   -51,
         | 
| 387 | 
            +
               -52,   -53,   -54,   -55,   -56,   -57,   -60,   -90,   -93,   -63,
         | 
| 388 | 
            +
               -79,   -93,   -83,   -16,   -17,   -23,   -26,   -86,   -80,   -87,
         | 
| 389 | 
            +
               -84,   -92,   -61 ]
         | 
| 352 390 |  | 
| 353 391 | 
             
            racc_goto_table = [
         | 
| 354 | 
            -
                 | 
| 355 | 
            -
                 | 
| 356 | 
            -
             | 
| 357 | 
            -
               nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   100, | 
| 358 | 
            -
               nil, | 
| 359 | 
            -
               nil,   112,   113,   114,   115,   116,   117,   118, | 
| 360 | 
            -
               121,   122,   123,   124,   125, | 
| 361 | 
            -
                | 
| 362 | 
            -
               nil, | 
| 363 | 
            -
                | 
| 392 | 
            +
                54,    53,    47,    48,    54,    62,     2,    11,    91,    97,
         | 
| 393 | 
            +
                83,    84,    85,    64,    66,    46,   108,    94,    45,    86,
         | 
| 394 | 
            +
               107,   126,    89,     1,   140,   nil,   nil,   nil,    54,   nil,
         | 
| 395 | 
            +
               nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    99,   100,
         | 
| 396 | 
            +
               nil,   nil,   nil,   101,   102,   109,    54,   111,   nil,   nil,
         | 
| 397 | 
            +
               nil,    98,   nil,   112,   113,   114,   115,   116,   117,   118,
         | 
| 398 | 
            +
               119,   120,   121,   122,   123,   124,   125,   nil,    54,   128,
         | 
| 399 | 
            +
               139,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    54,
         | 
| 400 | 
            +
               133,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   109,
         | 
| 401 | 
            +
               137,   138,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
         | 
| 364 402 | 
             
               nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
         | 
| 365 | 
            -
               nil,   nil,   nil,   nil,   nil,   138 ]
         | 
| 403 | 
            +
               nil,   nil,   nil,   nil,   nil,   nil,   nil,   138 ]
         | 
| 366 404 |  | 
| 367 405 | 
             
            racc_goto_check = [
         | 
| 368 | 
            -
                19,     | 
| 369 | 
            -
                19,     | 
| 370 | 
            -
                  | 
| 371 | 
            -
               nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,     | 
| 372 | 
            -
               nil, | 
| 373 | 
            -
               nil, | 
| 374 | 
            -
                19,    19,    19,    19,    19, | 
| 375 | 
            -
             | 
| 376 | 
            -
               nil, | 
| 377 | 
            -
             | 
| 406 | 
            +
                19,     9,    12,    17,    19,     9,     2,     2,    28,    15,
         | 
| 407 | 
            +
                19,    19,    19,     7,     7,     2,    13,    11,    18,     7,
         | 
| 408 | 
            +
                 8,    20,    27,     1,    29,   nil,   nil,   nil,    19,   nil,
         | 
| 409 | 
            +
               nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    12,    17,
         | 
| 410 | 
            +
               nil,   nil,   nil,     7,     7,    19,    19,     9,   nil,   nil,
         | 
| 411 | 
            +
               nil,     2,   nil,    19,    19,    19,    19,    19,    19,    19,
         | 
| 412 | 
            +
                19,    19,    19,    19,    19,    19,    19,   nil,    19,     9,
         | 
| 413 | 
            +
                28,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    19,
         | 
| 414 | 
            +
                 9,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    19,
         | 
| 415 | 
            +
                19,    19,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
         | 
| 378 416 | 
             
               nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
         | 
| 379 | 
            -
               nil,   nil,   nil,   nil,   nil,    19 ]
         | 
| 417 | 
            +
               nil,   nil,   nil,   nil,   nil,   nil,   nil,    19 ]
         | 
| 380 418 |  | 
| 381 419 | 
             
            racc_goto_pointer = [
         | 
| 382 | 
            -
               nil,     | 
| 383 | 
            -
               nil, | 
| 384 | 
            -
               - | 
| 420 | 
            +
               nil,    23,     6,   nil,   nil,   nil,   nil,    -8,   -39,   -13,
         | 
| 421 | 
            +
               nil,   -27,    -7,   -43,   nil,   -35,   nil,    -6,     9,   -14,
         | 
| 422 | 
            +
               -60,   nil,   nil,   nil,   nil,   nil,   nil,   -20,   -35,   -82 ]
         | 
| 385 423 |  | 
| 386 424 | 
             
            racc_goto_default = [
         | 
| 387 | 
            -
               nil,   nil,   nil,     3,     4,     5,     6,    13,     | 
| 388 | 
            -
                 | 
| 389 | 
            -
                34,    28,    29,    30,    31,    32,    33,     | 
| 425 | 
            +
               nil,   nil,   nil,     3,     4,     5,     6,    13,    15,   nil,
         | 
| 426 | 
            +
                17,   nil,   nil,    19,    20,   nil,     9,   nil,   nil,    23,
         | 
| 427 | 
            +
                34,    28,    29,    30,    31,    32,    33,    56,    57,    58 ]
         | 
| 390 428 |  | 
| 391 429 | 
             
            racc_reduce_table = [
         | 
| 392 430 | 
             
              0, 0, :racc_error,
         | 
| @@ -397,48 +435,48 @@ racc_reduce_table = [ | |
| 397 435 | 
             
              1, 51, :_reduce_none,
         | 
| 398 436 | 
             
              1, 51, :_reduce_none,
         | 
| 399 437 | 
             
              1, 52, :_reduce_7,
         | 
| 400 | 
            -
              2,  | 
| 401 | 
            -
              3,  | 
| 402 | 
            -
               | 
| 403 | 
            -
               | 
| 404 | 
            -
               | 
| 405 | 
            -
               | 
| 406 | 
            -
               | 
| 407 | 
            -
              1,  | 
| 408 | 
            -
               | 
| 409 | 
            -
               | 
| 410 | 
            -
               | 
| 411 | 
            -
               | 
| 412 | 
            -
              1,  | 
| 413 | 
            -
               | 
| 414 | 
            -
              1,  | 
| 415 | 
            -
               | 
| 416 | 
            -
              1,  | 
| 417 | 
            -
               | 
| 418 | 
            -
               | 
| 419 | 
            -
               | 
| 420 | 
            -
               | 
| 421 | 
            -
               | 
| 422 | 
            -
              1,  | 
| 423 | 
            -
              2,  | 
| 424 | 
            -
              3,  | 
| 425 | 
            -
               | 
| 438 | 
            +
              2, 53, :_reduce_8,
         | 
| 439 | 
            +
              3, 53, :_reduce_9,
         | 
| 440 | 
            +
              1, 57, :_reduce_10,
         | 
| 441 | 
            +
              2, 57, :_reduce_11,
         | 
| 442 | 
            +
              1, 59, :_reduce_none,
         | 
| 443 | 
            +
              3, 59, :_reduce_13,
         | 
| 444 | 
            +
              3, 55, :_reduce_14,
         | 
| 445 | 
            +
              1, 60, :_reduce_15,
         | 
| 446 | 
            +
              2, 60, :_reduce_16,
         | 
| 447 | 
            +
              3, 61, :_reduce_17,
         | 
| 448 | 
            +
              1, 62, :_reduce_18,
         | 
| 449 | 
            +
              2, 62, :_reduce_19,
         | 
| 450 | 
            +
              1, 63, :_reduce_none,
         | 
| 451 | 
            +
              3, 63, :_reduce_21,
         | 
| 452 | 
            +
              1, 64, :_reduce_none,
         | 
| 453 | 
            +
              2, 64, :_reduce_23,
         | 
| 454 | 
            +
              1, 64, :_reduce_none,
         | 
| 455 | 
            +
              3, 65, :_reduce_25,
         | 
| 456 | 
            +
              3, 66, :_reduce_26,
         | 
| 457 | 
            +
              2, 67, :_reduce_27,
         | 
| 458 | 
            +
              2, 67, :_reduce_28,
         | 
| 459 | 
            +
              1, 67, :_reduce_29,
         | 
| 460 | 
            +
              1, 67, :_reduce_30,
         | 
| 461 | 
            +
              2, 54, :_reduce_31,
         | 
| 462 | 
            +
              3, 54, :_reduce_32,
         | 
| 463 | 
            +
              3, 56, :_reduce_33,
         | 
| 426 464 | 
             
              2, 56, :_reduce_34,
         | 
| 427 | 
            -
               | 
| 428 | 
            -
               | 
| 429 | 
            -
               | 
| 465 | 
            +
              2, 56, :_reduce_35,
         | 
| 466 | 
            +
              1, 56, :_reduce_36,
         | 
| 467 | 
            +
              3, 56, :_reduce_37,
         | 
| 430 468 | 
             
              2, 56, :_reduce_38,
         | 
| 431 | 
            -
               | 
| 469 | 
            +
              2, 56, :_reduce_39,
         | 
| 432 470 | 
             
              1, 56, :_reduce_40,
         | 
| 433 | 
            -
               | 
| 471 | 
            +
              1, 56, :_reduce_41,
         | 
| 434 472 | 
             
              3, 68, :_reduce_42,
         | 
| 435 473 | 
             
              3, 68, :_reduce_43,
         | 
| 436 474 | 
             
              3, 68, :_reduce_44,
         | 
| 437 475 | 
             
              3, 68, :_reduce_45,
         | 
| 438 476 | 
             
              3, 68, :_reduce_46,
         | 
| 439 | 
            -
               | 
| 477 | 
            +
              3, 68, :_reduce_47,
         | 
| 440 478 | 
             
              2, 68, :_reduce_48,
         | 
| 441 | 
            -
               | 
| 479 | 
            +
              2, 68, :_reduce_49,
         | 
| 442 480 | 
             
              3, 68, :_reduce_50,
         | 
| 443 481 | 
             
              3, 68, :_reduce_51,
         | 
| 444 482 | 
             
              3, 68, :_reduce_52,
         | 
| @@ -446,12 +484,13 @@ racc_reduce_table = [ | |
| 446 484 | 
             
              3, 68, :_reduce_54,
         | 
| 447 485 | 
             
              3, 68, :_reduce_55,
         | 
| 448 486 | 
             
              3, 68, :_reduce_56,
         | 
| 449 | 
            -
               | 
| 450 | 
            -
               | 
| 487 | 
            +
              3, 68, :_reduce_57,
         | 
| 488 | 
            +
              2, 68, :_reduce_58,
         | 
| 451 489 | 
             
              3, 68, :_reduce_59,
         | 
| 452 | 
            -
               | 
| 453 | 
            -
               | 
| 454 | 
            -
               | 
| 490 | 
            +
              3, 68, :_reduce_60,
         | 
| 491 | 
            +
              4, 68, :_reduce_61,
         | 
| 492 | 
            +
              2, 68, :_reduce_62,
         | 
| 493 | 
            +
              3, 68, :_reduce_63,
         | 
| 455 494 | 
             
              1, 68, :_reduce_none,
         | 
| 456 495 | 
             
              1, 70, :_reduce_none,
         | 
| 457 496 | 
             
              1, 70, :_reduce_none,
         | 
| @@ -466,23 +505,23 @@ racc_reduce_table = [ | |
| 466 505 | 
             
              1, 72, :_reduce_none,
         | 
| 467 506 | 
             
              1, 73, :_reduce_none,
         | 
| 468 507 | 
             
              1, 73, :_reduce_none,
         | 
| 469 | 
            -
              2, 74, : | 
| 470 | 
            -
              3, 74, : | 
| 471 | 
            -
              3, 76, : | 
| 472 | 
            -
              1, 76, : | 
| 473 | 
            -
              2, 75, : | 
| 474 | 
            -
              3, 75, : | 
| 475 | 
            -
              3, 77, : | 
| 476 | 
            -
              1, 77, : | 
| 477 | 
            -
              3, 78, : | 
| 478 | 
            -
              3,  | 
| 479 | 
            -
              1,  | 
| 480 | 
            -
              1,  | 
| 481 | 
            -
              1, 69, : | 
| 482 | 
            -
              3, 69, : | 
| 483 | 
            -
              4, 69, : | 
| 484 | 
            -
             | 
| 485 | 
            -
            racc_reduce_n =  | 
| 508 | 
            +
              2, 74, :_reduce_78,
         | 
| 509 | 
            +
              3, 74, :_reduce_79,
         | 
| 510 | 
            +
              3, 76, :_reduce_80,
         | 
| 511 | 
            +
              1, 76, :_reduce_81,
         | 
| 512 | 
            +
              2, 75, :_reduce_82,
         | 
| 513 | 
            +
              3, 75, :_reduce_83,
         | 
| 514 | 
            +
              3, 77, :_reduce_84,
         | 
| 515 | 
            +
              1, 77, :_reduce_85,
         | 
| 516 | 
            +
              3, 78, :_reduce_86,
         | 
| 517 | 
            +
              3, 58, :_reduce_87,
         | 
| 518 | 
            +
              1, 58, :_reduce_none,
         | 
| 519 | 
            +
              1, 58, :_reduce_89,
         | 
| 520 | 
            +
              1, 69, :_reduce_90,
         | 
| 521 | 
            +
              3, 69, :_reduce_91,
         | 
| 522 | 
            +
              4, 69, :_reduce_92 ]
         | 
| 523 | 
            +
             | 
| 524 | 
            +
            racc_reduce_n = 93
         | 
| 486 525 |  | 
| 487 526 | 
             
            racc_shift_n = 143
         | 
| 488 527 |  | 
| @@ -520,10 +559,10 @@ racc_token_table = { | |
| 520 559 | 
             
              :TCLOSE => 30,
         | 
| 521 560 | 
             
              :COMMAND => 31,
         | 
| 522 561 | 
             
              :IDENTIFER => 32,
         | 
| 523 | 
            -
              : | 
| 524 | 
            -
              : | 
| 525 | 
            -
              : | 
| 526 | 
            -
              : | 
| 562 | 
            +
              :SUBCOMMAND => 33,
         | 
| 563 | 
            +
              :BLOCK => 34,
         | 
| 564 | 
            +
              :ENDBLOCK => 35,
         | 
| 565 | 
            +
              :END => 36,
         | 
| 527 566 | 
             
              :ACLOSE => 37,
         | 
| 528 567 | 
             
              :POPEN => 38,
         | 
| 529 568 | 
             
              :PCLOSE => 39,
         | 
| @@ -591,10 +630,10 @@ Racc_token_to_s_table = [ | |
| 591 630 | 
             
              "TCLOSE",
         | 
| 592 631 | 
             
              "COMMAND",
         | 
| 593 632 | 
             
              "IDENTIFER",
         | 
| 633 | 
            +
              "SUBCOMMAND",
         | 
| 594 634 | 
             
              "BLOCK",
         | 
| 595 635 | 
             
              "ENDBLOCK",
         | 
| 596 636 | 
             
              "END",
         | 
| 597 | 
            -
              "SUBCOMMAND",
         | 
| 598 637 | 
             
              "ACLOSE",
         | 
| 599 638 | 
             
              "POPEN",
         | 
| 600 639 | 
             
              "PCLOSE",
         | 
| @@ -611,21 +650,21 @@ Racc_token_to_s_table = [ | |
| 611 650 | 
             
              "document",
         | 
| 612 651 | 
             
              "document_unit",
         | 
| 613 652 | 
             
              "template",
         | 
| 614 | 
            -
              "command_tag",
         | 
| 615 | 
            -
              "block_tag",
         | 
| 616 653 | 
             
              "tag",
         | 
| 654 | 
            +
              "block_tag",
         | 
| 655 | 
            +
              "command_tag",
         | 
| 617 656 | 
             
              "sequence",
         | 
| 618 | 
            -
              " | 
| 657 | 
            +
              "command_body",
         | 
| 658 | 
            +
              "arguments",
         | 
| 659 | 
            +
              "command",
         | 
| 660 | 
            +
              "subcommand",
         | 
| 661 | 
            +
              "subcommand_tag",
         | 
| 662 | 
            +
              "block_body",
         | 
| 619 663 | 
             
              "block_open",
         | 
| 620 | 
            -
              "assigned_block",
         | 
| 621 664 | 
             
              "block_close",
         | 
| 622 | 
            -
              " | 
| 623 | 
            -
              " | 
| 624 | 
            -
              " | 
| 625 | 
            -
              "subcommand",
         | 
| 626 | 
            -
              "command",
         | 
| 627 | 
            -
              "arguments",
         | 
| 628 | 
            -
              "block",
         | 
| 665 | 
            +
              "block_open_tag",
         | 
| 666 | 
            +
              "block_close_tag",
         | 
| 667 | 
            +
              "block_subnodes",
         | 
| 629 668 | 
             
              "expr",
         | 
| 630 669 | 
             
              "method",
         | 
| 631 670 | 
             
              "value",
         | 
| @@ -638,7 +677,7 @@ Racc_token_to_s_table = [ | |
| 638 677 | 
             
              "pairs",
         | 
| 639 678 | 
             
              "pair" ]
         | 
| 640 679 |  | 
| 641 | 
            -
            Racc_debug_parser =  | 
| 680 | 
            +
            Racc_debug_parser = false
         | 
| 642 681 |  | 
| 643 682 | 
             
            ##### State transition tables end #####
         | 
| 644 683 |  | 
| @@ -646,14 +685,14 @@ Racc_debug_parser = true | |
| 646 685 |  | 
| 647 686 | 
             
            module_eval(<<'.,.,', 'parser.y', 54)
         | 
| 648 687 | 
             
              def _reduce_1(val, _values, result)
         | 
| 649 | 
            -
                 val[0].children.push(val[1]) 
         | 
| 688 | 
            +
                 pospoppush(2); val[0].children.push(val[1]) 
         | 
| 650 689 | 
             
                result
         | 
| 651 690 | 
             
              end
         | 
| 652 691 | 
             
            .,.,
         | 
| 653 692 |  | 
| 654 693 | 
             
            module_eval(<<'.,.,', 'parser.y', 55)
         | 
| 655 694 | 
             
              def _reduce_2(val, _values, result)
         | 
| 656 | 
            -
                 result =  | 
| 695 | 
            +
                 result = build Joiner, :JOINER, val[0], position: pospoppush(1) 
         | 
| 657 696 | 
             
                result
         | 
| 658 697 | 
             
              end
         | 
| 659 698 | 
             
            .,.,
         | 
| @@ -675,382 +714,406 @@ module_eval(<<'.,.,', 'parser.y', 58) | |
| 675 714 |  | 
| 676 715 | 
             
            module_eval(<<'.,.,', 'parser.y', 59)
         | 
| 677 716 | 
             
              def _reduce_8(val, _values, result)
         | 
| 678 | 
            -
                 result =  | 
| 717 | 
            +
                 result = build Tag, :TAG, mode: TAG_MODES[val[0]], position: pospoppush(2) 
         | 
| 679 718 | 
             
                result
         | 
| 680 719 | 
             
              end
         | 
| 681 720 | 
             
            .,.,
         | 
| 682 721 |  | 
| 683 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 722 | 
            +
            module_eval(<<'.,.,', 'parser.y', 61)
         | 
| 684 723 | 
             
              def _reduce_9(val, _values, result)
         | 
| 685 | 
            -
             | 
| 724 | 
            +
                         result = build Tag, :TAG, *Array.wrap(val[1]).flatten, mode: TAG_MODES[val[0]], position: pospoppush(3)
         | 
| 725 | 
            +
                   
         | 
| 686 726 | 
             
                result
         | 
| 687 727 | 
             
              end
         | 
| 688 728 | 
             
            .,.,
         | 
| 689 729 |  | 
| 690 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 730 | 
            +
            module_eval(<<'.,.,', 'parser.y', 64)
         | 
| 691 731 | 
             
              def _reduce_10(val, _values, result)
         | 
| 692 | 
            -
             | 
| 693 | 
            -
                assign = val[1][:assign]
         | 
| 694 | 
            -
                command.options[:mode] = TAG_MODES[val[0]]
         | 
| 695 | 
            -
                command.options[:assign] = assign if assign
         | 
| 696 | 
            -
                command.validate!
         | 
| 697 | 
            -
                result = command
         | 
| 698 | 
            -
              
         | 
| 732 | 
            +
                 result = build @commands[val[0]] || Command, val[0], position: pospoppush(1) 
         | 
| 699 733 | 
             
                result
         | 
| 700 734 | 
             
              end
         | 
| 701 735 | 
             
            .,.,
         | 
| 702 736 |  | 
| 703 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 737 | 
            +
            module_eval(<<'.,.,', 'parser.y', 66)
         | 
| 704 738 | 
             
              def _reduce_11(val, _values, result)
         | 
| 705 | 
            -
             | 
| 706 | 
            -
             | 
| 707 | 
            -
                block.options[:mode] = TAG_MODES[val[0]]
         | 
| 708 | 
            -
                block.options[:assign] = assign if assign
         | 
| 709 | 
            -
                result = block
         | 
| 710 | 
            -
              
         | 
| 739 | 
            +
                                  result = build @commands[val[0]] || Command, val[0], *val[1], position: pospoppush(2)
         | 
| 740 | 
            +
                            
         | 
| 711 741 | 
             
                result
         | 
| 712 742 | 
             
              end
         | 
| 713 743 | 
             
            .,.,
         | 
| 714 744 |  | 
| 715 745 | 
             
            # reduce 12 omitted
         | 
| 716 746 |  | 
| 717 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 747 | 
            +
            module_eval(<<'.,.,', 'parser.y', 70)
         | 
| 718 748 | 
             
              def _reduce_13(val, _values, result)
         | 
| 719 | 
            -
             | 
| 720 | 
            -
             | 
| 721 | 
            -
                              val[0].push(Joiner.build(:JOINER, val[1]))
         | 
| 722 | 
            -
                          
         | 
| 749 | 
            +
                             result = build Assigner, val[0], val[2], position: pospoppush(3)
         | 
| 750 | 
            +
                       
         | 
| 723 751 | 
             
                result
         | 
| 724 752 | 
             
              end
         | 
| 725 753 | 
             
            .,.,
         | 
| 726 754 |  | 
| 727 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 755 | 
            +
            module_eval(<<'.,.,', 'parser.y', 73)
         | 
| 728 756 | 
             
              def _reduce_14(val, _values, result)
         | 
| 729 | 
            -
             | 
| 757 | 
            +
                                 command = val[1].is_a?(Command) ? val[1] : val[1].children[0]
         | 
| 758 | 
            +
                             command.validate!
         | 
| 759 | 
            +
                             result = build Tag, :TAG, val[1], mode: TAG_MODES[val[0]], position: pospoppush(3)
         | 
| 760 | 
            +
                           
         | 
| 730 761 | 
             
                result
         | 
| 731 762 | 
             
              end
         | 
| 732 763 | 
             
            .,.,
         | 
| 733 764 |  | 
| 734 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 765 | 
            +
            module_eval(<<'.,.,', 'parser.y', 78)
         | 
| 735 766 | 
             
              def _reduce_15(val, _values, result)
         | 
| 736 | 
            -
                 result = [ | 
| 767 | 
            +
                 result = build @substack.last[val[0]], val[0], position: pospoppush(1) 
         | 
| 737 768 | 
             
                result
         | 
| 738 769 | 
             
              end
         | 
| 739 770 | 
             
            .,.,
         | 
| 740 771 |  | 
| 741 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 772 | 
            +
            module_eval(<<'.,.,', 'parser.y', 80)
         | 
| 742 773 | 
             
              def _reduce_16(val, _values, result)
         | 
| 743 | 
            -
             | 
| 774 | 
            +
                                result = build @substack.last[val[0]], val[0], *val[1], position: pospoppush(2)
         | 
| 775 | 
            +
                          
         | 
| 744 776 | 
             
                result
         | 
| 745 777 | 
             
              end
         | 
| 746 778 | 
             
            .,.,
         | 
| 747 779 |  | 
| 748 | 
            -
             | 
| 749 | 
            -
             | 
| 750 | 
            -
             | 
| 751 | 
            -
              def _reduce_18(val, _values, result)
         | 
| 752 | 
            -
                 val[0].options[:subnodes] = val[1]; val[0].validate! 
         | 
| 780 | 
            +
            module_eval(<<'.,.,', 'parser.y', 82)
         | 
| 781 | 
            +
              def _reduce_17(val, _values, result)
         | 
| 782 | 
            +
                 pospoppush(3); result = val[1] 
         | 
| 753 783 | 
             
                result
         | 
| 754 784 | 
             
              end
         | 
| 755 785 | 
             
            .,.,
         | 
| 756 786 |  | 
| 757 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 758 | 
            -
              def  | 
| 759 | 
            -
                 result = val[ | 
| 787 | 
            +
            module_eval(<<'.,.,', 'parser.y', 84)
         | 
| 788 | 
            +
              def _reduce_18(val, _values, result)
         | 
| 789 | 
            +
                 result = build @blocks[val[0]] || Block, val[0], position: pospoppush(1) 
         | 
| 760 790 | 
             
                result
         | 
| 761 791 | 
             
              end
         | 
| 762 792 | 
             
            .,.,
         | 
| 763 793 |  | 
| 764 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 765 | 
            -
              def  | 
| 766 | 
            -
             | 
| 794 | 
            +
            module_eval(<<'.,.,', 'parser.y', 86)
         | 
| 795 | 
            +
              def _reduce_19(val, _values, result)
         | 
| 796 | 
            +
                                result = build @blocks[val[0]] || Block, val[0], *val[1], position: pospoppush(2)
         | 
| 797 | 
            +
                          
         | 
| 767 798 | 
             
                result
         | 
| 768 799 | 
             
              end
         | 
| 769 800 | 
             
            .,.,
         | 
| 770 801 |  | 
| 771 | 
            -
             | 
| 802 | 
            +
            # reduce 20 omitted
         | 
| 803 | 
            +
             | 
| 804 | 
            +
            module_eval(<<'.,.,', 'parser.y', 90)
         | 
| 772 805 | 
             
              def _reduce_21(val, _values, result)
         | 
| 773 | 
            -
             | 
| 806 | 
            +
                                result = build Assigner, val[0], val[2], position: pospoppush(3)
         | 
| 807 | 
            +
                          
         | 
| 774 808 | 
             
                result
         | 
| 775 809 | 
             
              end
         | 
| 776 810 | 
             
            .,.,
         | 
| 777 811 |  | 
| 778 | 
            -
             | 
| 779 | 
            -
              def _reduce_22(val, _values, result)
         | 
| 780 | 
            -
                 result = { command: val[0] } 
         | 
| 781 | 
            -
                result
         | 
| 782 | 
            -
              end
         | 
| 783 | 
            -
            .,.,
         | 
| 812 | 
            +
            # reduce 22 omitted
         | 
| 784 813 |  | 
| 785 814 | 
             
            module_eval(<<'.,.,', 'parser.y', 93)
         | 
| 786 815 | 
             
              def _reduce_23(val, _values, result)
         | 
| 787 | 
            -
                  | 
| 816 | 
            +
                 pospoppush(2) 
         | 
| 788 817 | 
             
                result
         | 
| 789 818 | 
             
              end
         | 
| 790 819 | 
             
            .,.,
         | 
| 791 820 |  | 
| 792 | 
            -
             | 
| 793 | 
            -
              def _reduce_24(val, _values, result)
         | 
| 794 | 
            -
                 result = Block.build val[0] 
         | 
| 795 | 
            -
                result
         | 
| 796 | 
            -
              end
         | 
| 797 | 
            -
            .,.,
         | 
| 821 | 
            +
            # reduce 24 omitted
         | 
| 798 822 |  | 
| 799 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 823 | 
            +
            module_eval(<<'.,.,', 'parser.y', 96)
         | 
| 800 824 | 
             
              def _reduce_25(val, _values, result)
         | 
| 801 | 
            -
             | 
| 825 | 
            +
                                    result = build Tag, :TAG, val[1], mode: TAG_MODES[val[0]], position: pospoppush(3)
         | 
| 826 | 
            +
                              
         | 
| 802 827 | 
             
                result
         | 
| 803 828 | 
             
              end
         | 
| 804 829 | 
             
            .,.,
         | 
| 805 830 |  | 
| 806 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 831 | 
            +
            module_eval(<<'.,.,', 'parser.y', 98)
         | 
| 807 832 | 
             
              def _reduce_26(val, _values, result)
         | 
| 808 | 
            -
                  | 
| 833 | 
            +
                 pospoppush(3) 
         | 
| 809 834 | 
             
                result
         | 
| 810 835 | 
             
              end
         | 
| 811 836 | 
             
            .,.,
         | 
| 812 837 |  | 
| 813 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 838 | 
            +
            module_eval(<<'.,.,', 'parser.y', 100)
         | 
| 814 839 | 
             
              def _reduce_27(val, _values, result)
         | 
| 815 | 
            -
             | 
| 840 | 
            +
                                    pospoppush(2)
         | 
| 841 | 
            +
                                val[0][-1].is_a?(Joiner) ?
         | 
| 842 | 
            +
                                  val[0][-1].children.push(val[1]) :
         | 
| 843 | 
            +
                                  val[0].push(build(Joiner, :JOINER, val[1]))
         | 
| 844 | 
            +
                              
         | 
| 816 845 | 
             
                result
         | 
| 817 846 | 
             
              end
         | 
| 818 847 | 
             
            .,.,
         | 
| 819 848 |  | 
| 820 | 
            -
             | 
| 849 | 
            +
            module_eval(<<'.,.,', 'parser.y', 105)
         | 
| 850 | 
            +
              def _reduce_28(val, _values, result)
         | 
| 851 | 
            +
                 pospoppush(2); val[0].push(val[1]) 
         | 
| 852 | 
            +
                result
         | 
| 853 | 
            +
              end
         | 
| 854 | 
            +
            .,.,
         | 
| 821 855 |  | 
| 822 | 
            -
             | 
| 856 | 
            +
            module_eval(<<'.,.,', 'parser.y', 106)
         | 
| 857 | 
            +
              def _reduce_29(val, _values, result)
         | 
| 858 | 
            +
                 result = [build(Joiner, :JOINER, val[0], position: pospoppush(1))] 
         | 
| 859 | 
            +
                result
         | 
| 860 | 
            +
              end
         | 
| 861 | 
            +
            .,.,
         | 
| 823 862 |  | 
| 824 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 863 | 
            +
            module_eval(<<'.,.,', 'parser.y', 107)
         | 
| 825 864 | 
             
              def _reduce_30(val, _values, result)
         | 
| 826 | 
            -
                 result =  | 
| 865 | 
            +
                 result = [val[0]] 
         | 
| 827 866 | 
             
                result
         | 
| 828 867 | 
             
              end
         | 
| 829 868 | 
             
            .,.,
         | 
| 830 869 |  | 
| 831 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 870 | 
            +
            module_eval(<<'.,.,', 'parser.y', 109)
         | 
| 832 871 | 
             
              def _reduce_31(val, _values, result)
         | 
| 833 | 
            -
             | 
| 872 | 
            +
                               pospoppush(2)
         | 
| 873 | 
            +
                           block = val[0].children[0].is_a?(Block) ?
         | 
| 874 | 
            +
                             val[0].children[0] : val[0].children[0].children[0]
         | 
| 875 | 
            +
                           block.validate!
         | 
| 876 | 
            +
                         
         | 
| 834 877 | 
             
                result
         | 
| 835 878 | 
             
              end
         | 
| 836 879 | 
             
            .,.,
         | 
| 837 880 |  | 
| 838 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 881 | 
            +
            module_eval(<<'.,.,', 'parser.y', 115)
         | 
| 839 882 | 
             
              def _reduce_32(val, _values, result)
         | 
| 840 | 
            -
             | 
| 883 | 
            +
                               pospoppush(3)
         | 
| 884 | 
            +
                           block = val[0].children[0].is_a?(Block) ?
         | 
| 885 | 
            +
                             val[0].children[0] : val[0].children[0].children[0]
         | 
| 886 | 
            +
                           block.options[:subnodes] = val[1]
         | 
| 887 | 
            +
                           block.validate!
         | 
| 888 | 
            +
                         
         | 
| 841 889 | 
             
                result
         | 
| 842 890 | 
             
              end
         | 
| 843 891 | 
             
            .,.,
         | 
| 844 892 |  | 
| 845 | 
            -
             | 
| 893 | 
            +
            module_eval(<<'.,.,', 'parser.y', 122)
         | 
| 894 | 
            +
              def _reduce_33(val, _values, result)
         | 
| 895 | 
            +
                 pospoppush(2); result = val[0].push(val[2]) 
         | 
| 896 | 
            +
                result
         | 
| 897 | 
            +
              end
         | 
| 898 | 
            +
            .,.,
         | 
| 846 899 |  | 
| 847 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 900 | 
            +
            module_eval(<<'.,.,', 'parser.y', 123)
         | 
| 848 901 | 
             
              def _reduce_34(val, _values, result)
         | 
| 849 | 
            -
                  | 
| 902 | 
            +
                 pospoppush(2) 
         | 
| 850 903 | 
             
                result
         | 
| 851 904 | 
             
              end
         | 
| 852 905 | 
             
            .,.,
         | 
| 853 906 |  | 
| 854 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 907 | 
            +
            module_eval(<<'.,.,', 'parser.y', 124)
         | 
| 855 908 | 
             
              def _reduce_35(val, _values, result)
         | 
| 856 | 
            -
                 result = [] 
         | 
| 909 | 
            +
                 pospoppush(2, 1); result = val[1] 
         | 
| 857 910 | 
             
                result
         | 
| 858 911 | 
             
              end
         | 
| 859 912 | 
             
            .,.,
         | 
| 860 913 |  | 
| 861 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 914 | 
            +
            module_eval(<<'.,.,', 'parser.y', 125)
         | 
| 862 915 | 
             
              def _reduce_36(val, _values, result)
         | 
| 863 | 
            -
                 result =  | 
| 916 | 
            +
                 result = [] 
         | 
| 864 917 | 
             
                result
         | 
| 865 918 | 
             
              end
         | 
| 866 919 | 
             
            .,.,
         | 
| 867 920 |  | 
| 868 | 
            -
             | 
| 921 | 
            +
            module_eval(<<'.,.,', 'parser.y', 126)
         | 
| 922 | 
            +
              def _reduce_37(val, _values, result)
         | 
| 923 | 
            +
                 pospoppush(2); result = val[0].push(val[2]) 
         | 
| 924 | 
            +
                result
         | 
| 925 | 
            +
              end
         | 
| 926 | 
            +
            .,.,
         | 
| 869 927 |  | 
| 870 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 928 | 
            +
            module_eval(<<'.,.,', 'parser.y', 127)
         | 
| 871 929 | 
             
              def _reduce_38(val, _values, result)
         | 
| 872 | 
            -
                  | 
| 930 | 
            +
                 pospoppush(2) 
         | 
| 873 931 | 
             
                result
         | 
| 874 932 | 
             
              end
         | 
| 875 933 | 
             
            .,.,
         | 
| 876 934 |  | 
| 877 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 935 | 
            +
            module_eval(<<'.,.,', 'parser.y', 128)
         | 
| 878 936 | 
             
              def _reduce_39(val, _values, result)
         | 
| 879 | 
            -
                 result = [] 
         | 
| 937 | 
            +
                 pospoppush(2, 1); result = val[1] 
         | 
| 880 938 | 
             
                result
         | 
| 881 939 | 
             
              end
         | 
| 882 940 | 
             
            .,.,
         | 
| 883 941 |  | 
| 884 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 942 | 
            +
            module_eval(<<'.,.,', 'parser.y', 129)
         | 
| 885 943 | 
             
              def _reduce_40(val, _values, result)
         | 
| 886 | 
            -
                 result = [ | 
| 944 | 
            +
                 result = [] 
         | 
| 887 945 | 
             
                result
         | 
| 888 946 | 
             
              end
         | 
| 889 947 | 
             
            .,.,
         | 
| 890 948 |  | 
| 891 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 949 | 
            +
            module_eval(<<'.,.,', 'parser.y', 130)
         | 
| 892 950 | 
             
              def _reduce_41(val, _values, result)
         | 
| 893 | 
            -
                 result =  | 
| 951 | 
            +
                 result = [val[0]] 
         | 
| 894 952 | 
             
                result
         | 
| 895 953 | 
             
              end
         | 
| 896 954 | 
             
            .,.,
         | 
| 897 955 |  | 
| 898 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 956 | 
            +
            module_eval(<<'.,.,', 'parser.y', 132)
         | 
| 899 957 | 
             
              def _reduce_42(val, _values, result)
         | 
| 900 | 
            -
                 result =  | 
| 958 | 
            +
                 result = build Calculator, :MULTIPLY, val[0], val[2], position: pospoppush(3) 
         | 
| 901 959 | 
             
                result
         | 
| 902 960 | 
             
              end
         | 
| 903 961 | 
             
            .,.,
         | 
| 904 962 |  | 
| 905 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 963 | 
            +
            module_eval(<<'.,.,', 'parser.y', 133)
         | 
| 906 964 | 
             
              def _reduce_43(val, _values, result)
         | 
| 907 | 
            -
                 result =  | 
| 965 | 
            +
                 result = build Calculator, :POWER, val[0], val[2], position: pospoppush(3) 
         | 
| 908 966 | 
             
                result
         | 
| 909 967 | 
             
              end
         | 
| 910 968 | 
             
            .,.,
         | 
| 911 969 |  | 
| 912 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 970 | 
            +
            module_eval(<<'.,.,', 'parser.y', 134)
         | 
| 913 971 | 
             
              def _reduce_44(val, _values, result)
         | 
| 914 | 
            -
                 result =  | 
| 972 | 
            +
                 result = build Calculator, :DIVIDE, val[0], val[2], position: pospoppush(3) 
         | 
| 915 973 | 
             
                result
         | 
| 916 974 | 
             
              end
         | 
| 917 975 | 
             
            .,.,
         | 
| 918 976 |  | 
| 919 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 977 | 
            +
            module_eval(<<'.,.,', 'parser.y', 135)
         | 
| 920 978 | 
             
              def _reduce_45(val, _values, result)
         | 
| 921 | 
            -
                 result =  | 
| 979 | 
            +
                 result = build Calculator, :PLUS, val[0], val[2], position: pospoppush(3) 
         | 
| 922 980 | 
             
                result
         | 
| 923 981 | 
             
              end
         | 
| 924 982 | 
             
            .,.,
         | 
| 925 983 |  | 
| 926 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 984 | 
            +
            module_eval(<<'.,.,', 'parser.y', 136)
         | 
| 927 985 | 
             
              def _reduce_46(val, _values, result)
         | 
| 928 | 
            -
                 result =  | 
| 986 | 
            +
                 result = build Calculator, :MINUS, val[0], val[2], position: pospoppush(3) 
         | 
| 929 987 | 
             
                result
         | 
| 930 988 | 
             
              end
         | 
| 931 989 | 
             
            .,.,
         | 
| 932 990 |  | 
| 933 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 991 | 
            +
            module_eval(<<'.,.,', 'parser.y', 137)
         | 
| 934 992 | 
             
              def _reduce_47(val, _values, result)
         | 
| 935 | 
            -
                 result =  | 
| 993 | 
            +
                 result = build Calculator, :MODULO, val[0], val[2], position: pospoppush(3) 
         | 
| 936 994 | 
             
                result
         | 
| 937 995 | 
             
              end
         | 
| 938 996 | 
             
            .,.,
         | 
| 939 997 |  | 
| 940 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 998 | 
            +
            module_eval(<<'.,.,', 'parser.y', 138)
         | 
| 941 999 | 
             
              def _reduce_48(val, _values, result)
         | 
| 942 | 
            -
                 result =  | 
| 1000 | 
            +
                 result = build Calculator, :UMINUS, val[1], position: pospoppush(2) 
         | 
| 943 1001 | 
             
                result
         | 
| 944 1002 | 
             
              end
         | 
| 945 1003 | 
             
            .,.,
         | 
| 946 1004 |  | 
| 947 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1005 | 
            +
            module_eval(<<'.,.,', 'parser.y', 139)
         | 
| 948 1006 | 
             
              def _reduce_49(val, _values, result)
         | 
| 949 | 
            -
                 result =  | 
| 1007 | 
            +
                 result = build Calculator, :UPLUS, val[1], position: pospoppush(2) 
         | 
| 950 1008 | 
             
                result
         | 
| 951 1009 | 
             
              end
         | 
| 952 1010 | 
             
            .,.,
         | 
| 953 1011 |  | 
| 954 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1012 | 
            +
            module_eval(<<'.,.,', 'parser.y', 140)
         | 
| 955 1013 | 
             
              def _reduce_50(val, _values, result)
         | 
| 956 | 
            -
                 result =  | 
| 1014 | 
            +
                 result = build Calculator, :AND, val[0], val[2], position: pospoppush(3) 
         | 
| 957 1015 | 
             
                result
         | 
| 958 1016 | 
             
              end
         | 
| 959 1017 | 
             
            .,.,
         | 
| 960 1018 |  | 
| 961 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1019 | 
            +
            module_eval(<<'.,.,', 'parser.y', 141)
         | 
| 962 1020 | 
             
              def _reduce_51(val, _values, result)
         | 
| 963 | 
            -
                 result =  | 
| 1021 | 
            +
                 result = build Calculator, :OR, val[0], val[2], position: pospoppush(3) 
         | 
| 964 1022 | 
             
                result
         | 
| 965 1023 | 
             
              end
         | 
| 966 1024 | 
             
            .,.,
         | 
| 967 1025 |  | 
| 968 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1026 | 
            +
            module_eval(<<'.,.,', 'parser.y', 142)
         | 
| 969 1027 | 
             
              def _reduce_52(val, _values, result)
         | 
| 970 | 
            -
                 result =  | 
| 1028 | 
            +
                 result = build Calculator, :GT, val[0], val[2], position: pospoppush(3) 
         | 
| 971 1029 | 
             
                result
         | 
| 972 1030 | 
             
              end
         | 
| 973 1031 | 
             
            .,.,
         | 
| 974 1032 |  | 
| 975 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1033 | 
            +
            module_eval(<<'.,.,', 'parser.y', 143)
         | 
| 976 1034 | 
             
              def _reduce_53(val, _values, result)
         | 
| 977 | 
            -
                 result =  | 
| 1035 | 
            +
                 result = build Calculator, :GTE, val[0], val[2], position: pospoppush(3) 
         | 
| 978 1036 | 
             
                result
         | 
| 979 1037 | 
             
              end
         | 
| 980 1038 | 
             
            .,.,
         | 
| 981 1039 |  | 
| 982 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1040 | 
            +
            module_eval(<<'.,.,', 'parser.y', 144)
         | 
| 983 1041 | 
             
              def _reduce_54(val, _values, result)
         | 
| 984 | 
            -
                 result =  | 
| 1042 | 
            +
                 result = build Calculator, :LT, val[0], val[2], position: pospoppush(3) 
         | 
| 985 1043 | 
             
                result
         | 
| 986 1044 | 
             
              end
         | 
| 987 1045 | 
             
            .,.,
         | 
| 988 1046 |  | 
| 989 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1047 | 
            +
            module_eval(<<'.,.,', 'parser.y', 145)
         | 
| 990 1048 | 
             
              def _reduce_55(val, _values, result)
         | 
| 991 | 
            -
                 result =  | 
| 1049 | 
            +
                 result = build Calculator, :LTE, val[0], val[2], position: pospoppush(3) 
         | 
| 992 1050 | 
             
                result
         | 
| 993 1051 | 
             
              end
         | 
| 994 1052 | 
             
            .,.,
         | 
| 995 1053 |  | 
| 996 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1054 | 
            +
            module_eval(<<'.,.,', 'parser.y', 146)
         | 
| 997 1055 | 
             
              def _reduce_56(val, _values, result)
         | 
| 998 | 
            -
                 result =  | 
| 1056 | 
            +
                 result = build Calculator, :EQUAL, val[0], val[2], position: pospoppush(3) 
         | 
| 999 1057 | 
             
                result
         | 
| 1000 1058 | 
             
              end
         | 
| 1001 1059 | 
             
            .,.,
         | 
| 1002 1060 |  | 
| 1003 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1061 | 
            +
            module_eval(<<'.,.,', 'parser.y', 147)
         | 
| 1004 1062 | 
             
              def _reduce_57(val, _values, result)
         | 
| 1005 | 
            -
                 result =  | 
| 1063 | 
            +
                 result = build Calculator, :INEQUAL, val[0], val[2], position: pospoppush(3) 
         | 
| 1006 1064 | 
             
                result
         | 
| 1007 1065 | 
             
              end
         | 
| 1008 1066 | 
             
            .,.,
         | 
| 1009 1067 |  | 
| 1010 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1068 | 
            +
            module_eval(<<'.,.,', 'parser.y', 148)
         | 
| 1011 1069 | 
             
              def _reduce_58(val, _values, result)
         | 
| 1012 | 
            -
                 result =  | 
| 1070 | 
            +
                 result = build Calculator, :NOT, val[1], position: pospoppush(2) 
         | 
| 1013 1071 | 
             
                result
         | 
| 1014 1072 | 
             
              end
         | 
| 1015 1073 | 
             
            .,.,
         | 
| 1016 1074 |  | 
| 1017 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1075 | 
            +
            module_eval(<<'.,.,', 'parser.y', 149)
         | 
| 1018 1076 | 
             
              def _reduce_59(val, _values, result)
         | 
| 1019 | 
            -
                  | 
| 1077 | 
            +
                 result = build Assigner, val[0], val[2], position: pospoppush(3) 
         | 
| 1020 1078 | 
             
                result
         | 
| 1021 1079 | 
             
              end
         | 
| 1022 1080 | 
             
            .,.,
         | 
| 1023 1081 |  | 
| 1024 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1082 | 
            +
            module_eval(<<'.,.,', 'parser.y', 150)
         | 
| 1025 1083 | 
             
              def _reduce_60(val, _values, result)
         | 
| 1026 | 
            -
                  | 
| 1084 | 
            +
                 pospoppush(3); val[2].children[0] = val[0]; result = val[2] 
         | 
| 1027 1085 | 
             
                result
         | 
| 1028 1086 | 
             
              end
         | 
| 1029 1087 | 
             
            .,.,
         | 
| 1030 1088 |  | 
| 1031 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1089 | 
            +
            module_eval(<<'.,.,', 'parser.y', 152)
         | 
| 1032 1090 | 
             
              def _reduce_61(val, _values, result)
         | 
| 1033 | 
            -
             | 
| 1091 | 
            +
                          result = build Summoner, 'manipulator_brackets', val[0], *val[2], position: pospoppush(4)
         | 
| 1092 | 
            +
                    
         | 
| 1034 1093 | 
             
                result
         | 
| 1035 1094 | 
             
              end
         | 
| 1036 1095 | 
             
            .,.,
         | 
| 1037 1096 |  | 
| 1038 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1097 | 
            +
            module_eval(<<'.,.,', 'parser.y', 154)
         | 
| 1039 1098 | 
             
              def _reduce_62(val, _values, result)
         | 
| 1040 | 
            -
             | 
| 1041 | 
            -
                    when 0
         | 
| 1042 | 
            -
                      nil
         | 
| 1043 | 
            -
                    when 1
         | 
| 1044 | 
            -
                      val[1][0]
         | 
| 1045 | 
            -
                    else
         | 
| 1046 | 
            -
                      Sequencer.build :SEQUENCE, *val[1].flatten
         | 
| 1047 | 
            -
                    end
         | 
| 1048 | 
            -
                  
         | 
| 1099 | 
            +
                 pospoppush(2); result = nil 
         | 
| 1049 1100 | 
             
                result
         | 
| 1050 1101 | 
             
              end
         | 
| 1051 1102 | 
             
            .,.,
         | 
| 1052 1103 |  | 
| 1053 | 
            -
             | 
| 1104 | 
            +
            module_eval(<<'.,.,', 'parser.y', 156)
         | 
| 1105 | 
            +
              def _reduce_63(val, _values, result)
         | 
| 1106 | 
            +
                          position = pospoppush(3)
         | 
| 1107 | 
            +
                      result = case val[1].size
         | 
| 1108 | 
            +
                      when 1
         | 
| 1109 | 
            +
                        val[1][0]
         | 
| 1110 | 
            +
                      else
         | 
| 1111 | 
            +
                        build Sequencer, :SEQUENCE, *val[1].flatten, position: position
         | 
| 1112 | 
            +
                      end
         | 
| 1113 | 
            +
                    
         | 
| 1114 | 
            +
                result
         | 
| 1115 | 
            +
              end
         | 
| 1116 | 
            +
            .,.,
         | 
| 1054 1117 |  | 
| 1055 1118 | 
             
            # reduce 64 omitted
         | 
| 1056 1119 |  | 
| @@ -1078,102 +1141,105 @@ module_eval(<<'.,.,', 'parser.y', 135) | |
| 1078 1141 |  | 
| 1079 1142 | 
             
            # reduce 76 omitted
         | 
| 1080 1143 |  | 
| 1081 | 
            -
             | 
| 1082 | 
            -
              def _reduce_77(val, _values, result)
         | 
| 1083 | 
            -
                 result = Arrayer.build :ARRAY 
         | 
| 1084 | 
            -
                result
         | 
| 1085 | 
            -
              end
         | 
| 1086 | 
            -
            .,.,
         | 
| 1144 | 
            +
            # reduce 77 omitted
         | 
| 1087 1145 |  | 
| 1088 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1146 | 
            +
            module_eval(<<'.,.,', 'parser.y', 172)
         | 
| 1089 1147 | 
             
              def _reduce_78(val, _values, result)
         | 
| 1090 | 
            -
                 result =  | 
| 1148 | 
            +
                 result = build Arrayer, :ARRAY, position: pospoppush(2) 
         | 
| 1091 1149 | 
             
                result
         | 
| 1092 1150 | 
             
              end
         | 
| 1093 1151 | 
             
            .,.,
         | 
| 1094 1152 |  | 
| 1095 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1153 | 
            +
            module_eval(<<'.,.,', 'parser.y', 173)
         | 
| 1096 1154 | 
             
              def _reduce_79(val, _values, result)
         | 
| 1097 | 
            -
                 val[ | 
| 1155 | 
            +
                 result = build Arrayer, :ARRAY, *val[1], position: pospoppush(3) 
         | 
| 1098 1156 | 
             
                result
         | 
| 1099 1157 | 
             
              end
         | 
| 1100 1158 | 
             
            .,.,
         | 
| 1101 1159 |  | 
| 1102 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1160 | 
            +
            module_eval(<<'.,.,', 'parser.y', 174)
         | 
| 1103 1161 | 
             
              def _reduce_80(val, _values, result)
         | 
| 1104 | 
            -
                  | 
| 1162 | 
            +
                 pospoppush(3); val[0].push(val[2]) 
         | 
| 1105 1163 | 
             
                result
         | 
| 1106 1164 | 
             
              end
         | 
| 1107 1165 | 
             
            .,.,
         | 
| 1108 1166 |  | 
| 1109 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1167 | 
            +
            module_eval(<<'.,.,', 'parser.y', 175)
         | 
| 1110 1168 | 
             
              def _reduce_81(val, _values, result)
         | 
| 1111 | 
            -
                 result =  | 
| 1169 | 
            +
                 result = [val[0]] 
         | 
| 1112 1170 | 
             
                result
         | 
| 1113 1171 | 
             
              end
         | 
| 1114 1172 | 
             
            .,.,
         | 
| 1115 1173 |  | 
| 1116 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1174 | 
            +
            module_eval(<<'.,.,', 'parser.y', 177)
         | 
| 1117 1175 | 
             
              def _reduce_82(val, _values, result)
         | 
| 1118 | 
            -
                 result =  | 
| 1176 | 
            +
                 result = build Hasher, :HASH, position: pospoppush(2) 
         | 
| 1119 1177 | 
             
                result
         | 
| 1120 1178 | 
             
              end
         | 
| 1121 1179 | 
             
            .,.,
         | 
| 1122 1180 |  | 
| 1123 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1181 | 
            +
            module_eval(<<'.,.,', 'parser.y', 178)
         | 
| 1124 1182 | 
             
              def _reduce_83(val, _values, result)
         | 
| 1125 | 
            -
                 val[ | 
| 1183 | 
            +
                 result = build Hasher, :HASH, *val[1], position: pospoppush(3) 
         | 
| 1126 1184 | 
             
                result
         | 
| 1127 1185 | 
             
              end
         | 
| 1128 1186 | 
             
            .,.,
         | 
| 1129 1187 |  | 
| 1130 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1188 | 
            +
            module_eval(<<'.,.,', 'parser.y', 179)
         | 
| 1131 1189 | 
             
              def _reduce_84(val, _values, result)
         | 
| 1132 | 
            -
                  | 
| 1190 | 
            +
                 pospoppush(3); val[0].push(val[2]) 
         | 
| 1133 1191 | 
             
                result
         | 
| 1134 1192 | 
             
              end
         | 
| 1135 1193 | 
             
            .,.,
         | 
| 1136 1194 |  | 
| 1137 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1195 | 
            +
            module_eval(<<'.,.,', 'parser.y', 180)
         | 
| 1138 1196 | 
             
              def _reduce_85(val, _values, result)
         | 
| 1139 | 
            -
                 result =  | 
| 1197 | 
            +
                 result = [val[0]] 
         | 
| 1140 1198 | 
             
                result
         | 
| 1141 1199 | 
             
              end
         | 
| 1142 1200 | 
             
            .,.,
         | 
| 1143 1201 |  | 
| 1144 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1202 | 
            +
            module_eval(<<'.,.,', 'parser.y', 181)
         | 
| 1145 1203 | 
             
              def _reduce_86(val, _values, result)
         | 
| 1146 | 
            -
                 result =  | 
| 1204 | 
            +
                 result = build Arrayer, :PAIR, val[0], val[2], position: pospoppush(3) 
         | 
| 1147 1205 | 
             
                result
         | 
| 1148 1206 | 
             
              end
         | 
| 1149 1207 | 
             
            .,.,
         | 
| 1150 1208 |  | 
| 1151 | 
            -
             | 
| 1152 | 
            -
             | 
| 1153 | 
            -
             | 
| 1154 | 
            -
              def _reduce_88(val, _values, result)
         | 
| 1155 | 
            -
                 result = Hasher.build(:HASH, *val[0]) 
         | 
| 1209 | 
            +
            module_eval(<<'.,.,', 'parser.y', 183)
         | 
| 1210 | 
            +
              def _reduce_87(val, _values, result)
         | 
| 1211 | 
            +
                 result = [*val[0], build(Hasher, :HASH, *val[2], position: pospoppush(3))] 
         | 
| 1156 1212 | 
             
                result
         | 
| 1157 1213 | 
             
              end
         | 
| 1158 1214 | 
             
            .,.,
         | 
| 1159 1215 |  | 
| 1160 | 
            -
             | 
| 1216 | 
            +
            # reduce 88 omitted
         | 
| 1217 | 
            +
             | 
| 1218 | 
            +
            module_eval(<<'.,.,', 'parser.y', 185)
         | 
| 1161 1219 | 
             
              def _reduce_89(val, _values, result)
         | 
| 1162 | 
            -
                 result =  | 
| 1220 | 
            +
                 result = build Hasher, :HASH, *val[0], position: pospoppush(1) 
         | 
| 1163 1221 | 
             
                result
         | 
| 1164 1222 | 
             
              end
         | 
| 1165 1223 | 
             
            .,.,
         | 
| 1166 1224 |  | 
| 1167 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1225 | 
            +
            module_eval(<<'.,.,', 'parser.y', 186)
         | 
| 1168 1226 | 
             
              def _reduce_90(val, _values, result)
         | 
| 1169 | 
            -
                 result =  | 
| 1227 | 
            +
                 result = build Summoner, val[0], position: pospoppush(1) 
         | 
| 1170 1228 | 
             
                result
         | 
| 1171 1229 | 
             
              end
         | 
| 1172 1230 | 
             
            .,.,
         | 
| 1173 1231 |  | 
| 1174 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 1232 | 
            +
            module_eval(<<'.,.,', 'parser.y', 187)
         | 
| 1175 1233 | 
             
              def _reduce_91(val, _values, result)
         | 
| 1176 | 
            -
                 result =  | 
| 1234 | 
            +
                 result = build Summoner, val[0], position: pospoppush(3) 
         | 
| 1235 | 
            +
                result
         | 
| 1236 | 
            +
              end
         | 
| 1237 | 
            +
            .,.,
         | 
| 1238 | 
            +
             | 
| 1239 | 
            +
            module_eval(<<'.,.,', 'parser.y', 189)
         | 
| 1240 | 
            +
              def _reduce_92(val, _values, result)
         | 
| 1241 | 
            +
                            result = build Summoner, val[0], nil, *val[2], position: pospoppush(4)
         | 
| 1242 | 
            +
                      
         | 
| 1177 1243 | 
             
                result
         | 
| 1178 1244 | 
             
              end
         | 
| 1179 1245 | 
             
            .,.,
         |