depager 0.2.0 → 0.2.2
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.
- data/ChangeLog +4 -0
 - data/README.en +5 -10
 - data/bin/depager +17 -20
 - data/examples/c89/c89.tab.rb +5632 -702
 - data/examples/pl0d/pl0ds.dr +41 -41
 - data/examples/pl0d/pl0ds.tab.rb +1887 -874
 - data/examples/sample_calc/calc.action.tab.rb +243 -69
 - data/examples/sample_calc/{calc.astl.action.dr → calc.ast.action.dr} +7 -7
 - data/examples/sample_calc/calc.ast.action.tab.rb +755 -0
 - data/examples/sample_calc/{calc.astl.dr → calc.ast.dr} +7 -7
 - data/examples/sample_calc/calc.ast.tab.rb +672 -0
 - data/examples/sample_calc/calc.astdf.dr +5 -5
 - data/examples/sample_calc/calc.astdf.tab.rb +405 -202
 - data/examples/sample_calc/calc.atree.tab.rb +243 -69
 - data/examples/sample_calc/calc.cst.tab.rb +275 -109
 - data/examples/sample_calc/calc.lex.tab.rb +210 -28
 - data/examples/sample_calc/calc.nvaction.tab.rb +251 -77
 - data/examples/sample_calc/calc.tab.rb +210 -28
 - data/examples/sample_calc/calc_prec.nvaction.tab.rb +224 -50
 - data/examples/slex_test/divreg.slex.tab.rb +97 -21
 - data/examples/slex_test/ljoin.slex.tab.rb +128 -35
 - data/lib/depager.rb +77 -44
 - data/lib/depager/{ast_base.dr → ast.dr} +56 -18
 - data/lib/depager/{ast_base.rb → ast.rb} +432 -424
 - data/lib/depager/astdf.rb +3 -6
 - data/lib/depager/atree.rb +54 -62
 - data/lib/depager/cst.dr +2 -2
 - data/lib/depager/cst.rb +64 -77
 - data/lib/depager/grammar.rb +225 -66
 - data/lib/depager/lex.dr +1 -1
 - data/lib/depager/lex.rb +45 -54
 - data/lib/depager/lr.rb +181 -262
 - data/lib/depager/lr_put_table.rb +116 -0
 - data/lib/depager/nvaction.rb +1 -1
 - data/lib/depager/parser.rb +23 -2
 - data/lib/depager/slex.dr +3 -3
 - data/lib/depager/slex.rb +148 -169
 - data/lib/depager/srp.rb +1 -1
 - data/lib/depager/template/ast.erbs +69 -0
 - data/lib/depager/template/extension_lalr_master.erb +3 -3
 - data/lib/depager/template/extension_lalr_slave.erb +7 -7
 - data/lib/depager/template/simple.erb +4 -2
 - data/lib/depager/template/single_lalr_parser.erb +30 -10
 - data/lib/depager/utils.rb +10 -9
 - data/lib/depager/version.rb +2 -8
 - metadata +10 -11
 - data/examples/sample_calc/calc.astl.action.tab.rb +0 -593
 - data/examples/sample_calc/calc.astl.tab.rb +0 -501
 - data/lib/depager/astl.rb +0 -14
 - data/lib/depager/template/astdf.erbs +0 -57
 - data/lib/depager/template/astl.erbs +0 -57
 
| 
         @@ -0,0 +1,116 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class Depager::LALR::Table
         
     | 
| 
      
 2 
     | 
    
         
            +
              def state_info
         
     | 
| 
      
 3 
     | 
    
         
            +
                @state_info
         
     | 
| 
      
 4 
     | 
    
         
            +
              end
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
              #puts grammar.closure.values.join("\n")
         
     | 
| 
      
 7 
     | 
    
         
            +
              #puts "-----"
         
     | 
| 
      
 8 
     | 
    
         
            +
              #puts grammar.memo_closure1.sort_by{|k,v| k}.map{|k,v| "#{k.inspect}:\n#{v.join("\n")}"}
         
     | 
| 
      
 9 
     | 
    
         
            +
              #puts 'mk'; mk.each{|k, v| p "#{k}=>#{v}"}
         
     | 
| 
      
 10 
     | 
    
         
            +
              #trn = trn.uniq
         
     | 
| 
      
 11 
     | 
    
         
            +
              #puts 'trn',trn.map{|a| "<#{a[2].n}>#{a[0]} => <#{a[3].n}>#{a[1]}"}
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
              def gen_state_info
         
     | 
| 
      
 14 
     | 
    
         
            +
                g = grammar
         
     | 
| 
      
 15 
     | 
    
         
            +
                @state_info = []
         
     | 
| 
      
 16 
     | 
    
         
            +
                @action_table.each_with_index {|s,x|
         
     | 
| 
      
 17 
     | 
    
         
            +
                  shi, red, acc = "", "", ""
         
     | 
| 
      
 18 
     | 
    
         
            +
                  s.each_with_index {|t, y|
         
     | 
| 
      
 19 
     | 
    
         
            +
                    next unless t
         
     | 
| 
      
 20 
     | 
    
         
            +
                    hd = ("  %-15s" % g.symname(y + g.nonterms.size))
         
     | 
| 
      
 21 
     | 
    
         
            +
                    if t == 'ACC'
         
     | 
| 
      
 22 
     | 
    
         
            +
                      acc = "#{hd} accept\n\n"
         
     | 
| 
      
 23 
     | 
    
         
            +
                    elsif t < 0
         
     | 
| 
      
 24 
     | 
    
         
            +
                      red << "#{hd} reduce using rule #{-t} (#{g.symname g[-t].lhs})\n"            
         
     | 
| 
      
 25 
     | 
    
         
            +
                    else
         
     | 
| 
      
 26 
     | 
    
         
            +
                      shi << "#{hd} shift, and goto to state #{t}\n"
         
     | 
| 
      
 27 
     | 
    
         
            +
                    end
         
     | 
| 
      
 28 
     | 
    
         
            +
                  }
         
     | 
| 
      
 29 
     | 
    
         
            +
                  if t = @defred_table[x]
         
     | 
| 
      
 30 
     | 
    
         
            +
                    as = @defred_after_shift_table[x] ? " [after shift]" : ""
         
     | 
| 
      
 31 
     | 
    
         
            +
                    red << ("  %-15s" % '$default') <<
         
     | 
| 
      
 32 
     | 
    
         
            +
                      "reduce using rule #{-t} (#{g.symname g[-t].lhs}) #{as}\n"
         
     | 
| 
      
 33 
     | 
    
         
            +
                  end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                  @state_info << (@states[x].to_s << "\n\n#{shi}\n#{red}\n#{acc}")
         
     | 
| 
      
 36 
     | 
    
         
            +
                }
         
     | 
| 
      
 37 
     | 
    
         
            +
              end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
              def verbose dp
         
     | 
| 
      
 40 
     | 
    
         
            +
                g, output = grammar, []
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                if $MP_DEBUG.match(/f/)
         
     | 
| 
      
 43 
     | 
    
         
            +
                  output << "** FIRST1 **"
         
     | 
| 
      
 44 
     | 
    
         
            +
                  str = g.first1.map{|k, v|
         
     | 
| 
      
 45 
     | 
    
         
            +
                    "#{g.symname k} => #{v.map{|i| g.symname i}.join(' ')}"
         
     | 
| 
      
 46 
     | 
    
         
            +
                  }.join("\n")
         
     | 
| 
      
 47 
     | 
    
         
            +
                  output << "#{str}\n\n"
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                if $MP_DEBUG.match(/e/)
         
     | 
| 
      
 51 
     | 
    
         
            +
                  output << "** Empty Reduction **"
         
     | 
| 
      
 52 
     | 
    
         
            +
                  str = g.f0e.map {|k, v| 
         
     | 
| 
      
 53 
     | 
    
         
            +
                    "#{g.symname k} =>\n" << v.map{|n, f|
         
     | 
| 
      
 54 
     | 
    
         
            +
                      "  #{rulelist[n]} ? #{f.map{|i| g.symname i}.join(' ')}"
         
     | 
| 
      
 55 
     | 
    
         
            +
                    }.join("\n")
         
     | 
| 
      
 56 
     | 
    
         
            +
                  }.join("\n")
         
     | 
| 
      
 57 
     | 
    
         
            +
                  output << "#{str}\n\n"
         
     | 
| 
      
 58 
     | 
    
         
            +
                end
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                if $MP_DEBUG.match(/s/)
         
     | 
| 
      
 61 
     | 
    
         
            +
                  output << "** SYMBOLS **"
         
     | 
| 
      
 62 
     | 
    
         
            +
                  str = g.syms.map{|k,_| "#{"%03i" % k} #{ g.symname k}"}.sort.join("\n")
         
     | 
| 
      
 63 
     | 
    
         
            +
                  output << "#{str}\n\n"
         
     | 
| 
      
 64 
     | 
    
         
            +
                end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                if $MP_DEBUG.match(/g/)
         
     | 
| 
      
 67 
     | 
    
         
            +
                  output << "*** Grammar ***"
         
     | 
| 
      
 68 
     | 
    
         
            +
                  str = g.rulelist.join("\n")
         
     | 
| 
      
 69 
     | 
    
         
            +
                  output << "#{str}\n\n"
         
     | 
| 
      
 70 
     | 
    
         
            +
                end
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                if $MP_DEBUG.match(/c/)
         
     | 
| 
      
 73 
     | 
    
         
            +
                  output << "*** States ***"
         
     | 
| 
      
 74 
     | 
    
         
            +
                  output << @state_info.to_s
         
     | 
| 
      
 75 
     | 
    
         
            +
                end
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
                nssize = g.nonterms.size
         
     | 
| 
      
 78 
     | 
    
         
            +
                if $MP_DEBUG.match(/t/)
         
     | 
| 
      
 79 
     | 
    
         
            +
                  output << "*** Action Table ***"
         
     | 
| 
      
 80 
     | 
    
         
            +
                  ws = (nssize...g.syms.size).map{|i| j = g.symname(i).size; j < 6 ? 6 : j}
         
     | 
| 
      
 81 
     | 
    
         
            +
                  str = "   |"
         
     | 
| 
      
 82 
     | 
    
         
            +
                  (nssize...g.syms.size).each_with_index{|i, x|
         
     | 
| 
      
 83 
     | 
    
         
            +
                    str << ("%0#{ws[x]}s|" % g.symname(i))
         
     | 
| 
      
 84 
     | 
    
         
            +
                  }; str << " $default|\n"
         
     | 
| 
      
 85 
     | 
    
         
            +
                  
         
     | 
| 
      
 86 
     | 
    
         
            +
                  @action_table.each_with_index{|i,x|
         
     | 
| 
      
 87 
     | 
    
         
            +
                    str << ("%03i|" % x)
         
     | 
| 
      
 88 
     | 
    
         
            +
                    i.each_with_index{|j, y|
         
     | 
| 
      
 89 
     | 
    
         
            +
                      str << ("%0#{ws[y]}s|" % j)
         
     | 
| 
      
 90 
     | 
    
         
            +
                    }
         
     | 
| 
      
 91 
     | 
    
         
            +
                    str << ("%04s,%04s|\n" % [@defred_table[x], @defred_after_shift_table[x]])
         
     | 
| 
      
 92 
     | 
    
         
            +
                  }
         
     | 
| 
      
 93 
     | 
    
         
            +
                  output << "#{str}\n\n"
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
                  output <<  "*** Goto Table ***"
         
     | 
| 
      
 96 
     | 
    
         
            +
                  ws = (1...nssize).map{|i| j = g.symname(i).size; j < 6 ? 6 : j}
         
     | 
| 
      
 97 
     | 
    
         
            +
                  str = "   |"
         
     | 
| 
      
 98 
     | 
    
         
            +
                  (1...nssize).each_with_index{|i, x|
         
     | 
| 
      
 99 
     | 
    
         
            +
                    str << ("%0#{ws[x]}s|" % g.symname(i))
         
     | 
| 
      
 100 
     | 
    
         
            +
                  }; str << "\n"
         
     | 
| 
      
 101 
     | 
    
         
            +
                  
         
     | 
| 
      
 102 
     | 
    
         
            +
                  @goto_table.each_with_index{|i,x|
         
     | 
| 
      
 103 
     | 
    
         
            +
                    str << ("%03i|" % x)
         
     | 
| 
      
 104 
     | 
    
         
            +
                    i.each_with_index{|j, y|
         
     | 
| 
      
 105 
     | 
    
         
            +
                      str << ("%0#{ws[y]}s|" % j)
         
     | 
| 
      
 106 
     | 
    
         
            +
                    }
         
     | 
| 
      
 107 
     | 
    
         
            +
                    str << "\n"
         
     | 
| 
      
 108 
     | 
    
         
            +
                  }
         
     | 
| 
      
 109 
     | 
    
         
            +
                  output << "#{str}\n\n"
         
     | 
| 
      
 110 
     | 
    
         
            +
                end
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
                File.open("#{File.basename(dp.files.fname, '.dr')}.output", "w"){|f|
         
     | 
| 
      
 113 
     | 
    
         
            +
                  f.write output.join("\n") 
         
     | 
| 
      
 114 
     | 
    
         
            +
                }
         
     | 
| 
      
 115 
     | 
    
         
            +
              end
         
     | 
| 
      
 116 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/depager/nvaction.rb
    CHANGED
    
    
    
        data/lib/depager/parser.rb
    CHANGED
    
    | 
         @@ -1,5 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            module Depager; end
         
     | 
| 
       3 
2 
     | 
    
         
             
            #
         
     | 
| 
       4 
3 
     | 
    
         
             
            # Token
         
     | 
| 
       5 
4 
     | 
    
         
             
            # 
         
     | 
| 
         @@ -104,6 +103,28 @@ module Depager::LALR 
     | 
|
| 
       104 
103 
     | 
    
         
             
                end
         
     | 
| 
       105 
104 
     | 
    
         
             
                def reduce
         
     | 
| 
       106 
105 
     | 
    
         
             
                end
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
                def enable?(act, sym)
         
     | 
| 
      
 108 
     | 
    
         
            +
                  case act
         
     | 
| 
      
 109 
     | 
    
         
            +
                  when :shift
         
     | 
| 
      
 110 
     | 
    
         
            +
                    la = @basis.t2i[sym] || @basis.t2i[false]
         
     | 
| 
      
 111 
     | 
    
         
            +
                    val = @basis.action_table[@basis.stack.last][la]
         
     | 
| 
      
 112 
     | 
    
         
            +
                  else
         
     | 
| 
      
 113 
     | 
    
         
            +
                  end
         
     | 
| 
      
 114 
     | 
    
         
            +
                end
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
                def enables(act, sym)
         
     | 
| 
      
 117 
     | 
    
         
            +
                  case act
         
     | 
| 
      
 118 
     | 
    
         
            +
                  when :shift
         
     | 
| 
      
 119 
     | 
    
         
            +
                    la = @basis.t2i[sym] || @basis.t2i[false]
         
     | 
| 
      
 120 
     | 
    
         
            +
                    res = []
         
     | 
| 
      
 121 
     | 
    
         
            +
                    @basis.action_table.each_with_index{|i, x|
         
     | 
| 
      
 122 
     | 
    
         
            +
                      i[la] and res.push(x)
         
     | 
| 
      
 123 
     | 
    
         
            +
                    }
         
     | 
| 
      
 124 
     | 
    
         
            +
                    return res
         
     | 
| 
      
 125 
     | 
    
         
            +
                  else
         
     | 
| 
      
 126 
     | 
    
         
            +
                  end
         
     | 
| 
      
 127 
     | 
    
         
            +
                end
         
     | 
| 
       107 
128 
     | 
    
         
             
              end
         
     | 
| 
       108 
129 
     | 
    
         | 
| 
       109 
130 
     | 
    
         
             
              class Basis < Parser
         
     | 
    
        data/lib/depager/slex.dr
    CHANGED
    
    | 
         @@ -106,7 +106,7 @@ 
     | 
|
| 
       106 
106 
     | 
    
         
             
                      ll << %{
         
     | 
| 
       107 
107 
     | 
    
         
             
                        def lex_#{m}(&block)
         
     | 
| 
       108 
108 
     | 
    
         
             
                          case @line
         
     | 
| 
       109 
     | 
    
         
            -
                            #{l 
     | 
| 
      
 109 
     | 
    
         
            +
                            #{l}
         
     | 
| 
       110 
110 
     | 
    
         
             
                          else
         
     | 
| 
       111 
111 
     | 
    
         
             
                            #{else_code}
         
     | 
| 
       112 
112 
     | 
    
         
             
                          end
         
     | 
| 
         @@ -140,7 +140,7 @@ 
     | 
|
| 
       140 
140 
     | 
    
         
             
                | ':' ID                      { _ID.value }
         
     | 
| 
       141 
141 
     | 
    
         
             
              ;
         
     | 
| 
       142 
142 
     | 
    
         
             
              lexactlist:
         
     | 
| 
       143 
     | 
    
         
            -
                  lexact            {  
     | 
| 
      
 143 
     | 
    
         
            +
                  lexact            { _lexact }
         
     | 
| 
       144 
144 
     | 
    
         
             
                | lexactlist lexact { _lexactlist << _lexact }
         
     | 
| 
       145 
145 
     | 
    
         
             
              ;
         
     | 
| 
       146 
146 
     | 
    
         
             
              lexact:
         
     | 
| 
         @@ -159,7 +159,7 @@ 
     | 
|
| 
       159 
159 
     | 
    
         
             
              ;
         
     | 
| 
       160 
160 
     | 
    
         
             
              lexlist:
         
     | 
| 
       161 
161 
     | 
    
         
             
                  LEX               { [ _LEX.value ] }
         
     | 
| 
       162 
     | 
    
         
            -
                | lexlist ',' LEX   { _lexlist.push _LEX }
         
     | 
| 
      
 162 
     | 
    
         
            +
                | lexlist ',' LEX   { _lexlist.push _LEX.value }
         
     | 
| 
       163 
163 
     | 
    
         
             
              ;
         
     | 
| 
       164 
164 
     | 
    
         
             
            #end-rule
         
     | 
| 
       165 
165 
     | 
    
         
             
            %%
         
     | 
    
        data/lib/depager/slex.rb
    CHANGED
    
    | 
         @@ -31,10 +31,10 @@ class StatefulLexerExtension #:nodoc:all 
     | 
|
| 
       31 
31 
     | 
    
         | 
| 
       32 
32 
     | 
    
         
             
                @hook[1] = StatefulLexerExtension_prerhs_postsymbol.new(p, @nparam, self)
         
     | 
| 
       33 
33 
     | 
    
         
             
                @h2p['prerhs_postsymbol'] = @hook[1] 
         
     | 
| 
       34 
     | 
    
         
            -
                p. 
     | 
| 
      
 34 
     | 
    
         
            +
                p.prerhs.push [@hook[1], :do_parse]
         
     | 
| 
       35 
35 
     | 
    
         | 
| 
       36 
36 
     | 
    
         
             
                # use @hook[1](StatefulLexerExtension_prerhs_postsymbol)
         
     | 
| 
       37 
     | 
    
         
            -
                p. 
     | 
| 
      
 37 
     | 
    
         
            +
                p.postsymbol.push [@hook[1], :do_parse]
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
       39 
39 
     | 
    
         
             
                regext p
         
     | 
| 
       40 
40 
     | 
    
         
             
              end
         
     | 
| 
         @@ -170,20 +170,20 @@ class StatefulLexerExtension_prerulelist < Depager::LALR::Basis #:nodoc:all 
     | 
|
| 
       170 
170 
     | 
    
         
             
              action_table = [
         
     | 
| 
       171 
171 
     | 
    
         
             
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       172 
172 
     | 
    
         
             
                [ ACC, nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       173 
     | 
    
         
            -
                [ nil, nil,  
     | 
| 
       174 
     | 
    
         
            -
                [ nil, nil, nil,  
     | 
| 
       175 
     | 
    
         
            -
                [ nil, nil, nil,  
     | 
| 
       176 
     | 
    
         
            -
                [ nil, nil, nil, nil, nil,  
     | 
| 
       177 
     | 
    
         
            -
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
      
 173 
     | 
    
         
            +
                [ nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
      
 174 
     | 
    
         
            +
                [ nil, nil, nil, nil, nil, nil, nil, nil, 8, nil, ], 
         
     | 
| 
      
 175 
     | 
    
         
            +
                [ nil, nil, nil, 9, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
      
 176 
     | 
    
         
            +
                [ nil, nil, nil, nil, nil, nil, nil, nil, 8, nil, ], 
         
     | 
| 
       178 
177 
     | 
    
         
             
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       179 
178 
     | 
    
         
             
                [ nil, nil, nil, nil, nil, nil, nil, 12, nil, 13, ], 
         
     | 
| 
       180 
     | 
    
         
            -
                [ nil, nil, nil, nil, nil, nil, nil, nil, 6, nil, ], 
         
     | 
| 
       181 
     | 
    
         
            -
                [ nil, nil, nil, nil, 16, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       182 
     | 
    
         
            -
                [ nil, nil, nil, 17, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       183 
179 
     | 
    
         
             
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       184 
     | 
    
         
            -
                [ nil, nil, nil, nil, nil,  
     | 
| 
       185 
     | 
    
         
            -
                [ nil, nil, nil, nil, nil, nil,  
     | 
| 
      
 180 
     | 
    
         
            +
                [ nil, nil, nil, nil, nil, 15, nil, nil, nil, nil, ], 
         
     | 
| 
      
 181 
     | 
    
         
            +
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
      
 182 
     | 
    
         
            +
                [ nil, nil, nil, nil, nil, nil, 16, nil, nil, nil, ], 
         
     | 
| 
       186 
183 
     | 
    
         
             
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
      
 184 
     | 
    
         
            +
                [ nil, nil, nil, nil, nil, nil, nil, nil, 17, nil, ], 
         
     | 
| 
      
 185 
     | 
    
         
            +
                [ nil, nil, nil, nil, 18, nil, nil, nil, nil, nil, ], 
         
     | 
| 
      
 186 
     | 
    
         
            +
                [ nil, nil, nil, 19, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       187 
187 
     | 
    
         
             
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       188 
188 
     | 
    
         
             
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       189 
189 
     | 
    
         
             
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
         @@ -196,21 +196,21 @@ class StatefulLexerExtension_prerulelist < Depager::LALR::Basis #:nodoc:all 
     | 
|
| 
       196 
196 
     | 
    
         
             
                -1, 
         
     | 
| 
       197 
197 
     | 
    
         
             
                nil, 
         
     | 
| 
       198 
198 
     | 
    
         
             
                nil, 
         
     | 
| 
       199 
     | 
    
         
            -
                - 
     | 
| 
       200 
     | 
    
         
            -
                -12, 
         
     | 
| 
      
 199 
     | 
    
         
            +
                -3, 
         
     | 
| 
       201 
200 
     | 
    
         
             
                -7, 
         
     | 
| 
       202 
201 
     | 
    
         
             
                -10, 
         
     | 
| 
       203 
     | 
    
         
            -
                - 
     | 
| 
       204 
     | 
    
         
            -
                 
     | 
| 
      
 202 
     | 
    
         
            +
                -12, 
         
     | 
| 
      
 203 
     | 
    
         
            +
                -5, 
         
     | 
| 
      
 204 
     | 
    
         
            +
                -8, 
         
     | 
| 
       205 
205 
     | 
    
         
             
                nil, 
         
     | 
| 
       206 
206 
     | 
    
         
             
                -11, 
         
     | 
| 
       207 
207 
     | 
    
         
             
                nil, 
         
     | 
| 
       208 
208 
     | 
    
         
             
                nil, 
         
     | 
| 
       209 
     | 
    
         
            -
                 
     | 
| 
      
 209 
     | 
    
         
            +
                nil, 
         
     | 
| 
      
 210 
     | 
    
         
            +
                -9, 
         
     | 
| 
      
 211 
     | 
    
         
            +
                -13, 
         
     | 
| 
       210 
212 
     | 
    
         
             
                -4, 
         
     | 
| 
       211 
213 
     | 
    
         
             
                -6, 
         
     | 
| 
       212 
     | 
    
         
            -
                -13, 
         
     | 
| 
       213 
     | 
    
         
            -
                -9, 
         
     | 
| 
       214 
214 
     | 
    
         
             
              ]
         
     | 
| 
       215 
215 
     | 
    
         
             
              defred_after_shift_table = [
         
     | 
| 
       216 
216 
     | 
    
         
             
                -2, 
         
     | 
| 
         @@ -219,20 +219,20 @@ class StatefulLexerExtension_prerulelist < Depager::LALR::Basis #:nodoc:all 
     | 
|
| 
       219 
219 
     | 
    
         
             
                nil, 
         
     | 
| 
       220 
220 
     | 
    
         
             
                nil, 
         
     | 
| 
       221 
221 
     | 
    
         
             
                nil, 
         
     | 
| 
       222 
     | 
    
         
            -
                -12, 
         
     | 
| 
       223 
222 
     | 
    
         
             
                -7, 
         
     | 
| 
       224 
223 
     | 
    
         
             
                nil, 
         
     | 
| 
      
 224 
     | 
    
         
            +
                -12, 
         
     | 
| 
       225 
225 
     | 
    
         
             
                nil, 
         
     | 
| 
       226 
     | 
    
         
            -
                 
     | 
| 
      
 226 
     | 
    
         
            +
                -8, 
         
     | 
| 
       227 
227 
     | 
    
         
             
                nil, 
         
     | 
| 
       228 
228 
     | 
    
         
             
                -11, 
         
     | 
| 
       229 
229 
     | 
    
         
             
                nil, 
         
     | 
| 
       230 
230 
     | 
    
         
             
                nil, 
         
     | 
| 
       231 
     | 
    
         
            -
                 
     | 
| 
      
 231 
     | 
    
         
            +
                nil, 
         
     | 
| 
      
 232 
     | 
    
         
            +
                -9, 
         
     | 
| 
      
 233 
     | 
    
         
            +
                -13, 
         
     | 
| 
       232 
234 
     | 
    
         
             
                -4, 
         
     | 
| 
       233 
235 
     | 
    
         
             
                -6, 
         
     | 
| 
       234 
     | 
    
         
            -
                -13, 
         
     | 
| 
       235 
     | 
    
         
            -
                -9, 
         
     | 
| 
       236 
236 
     | 
    
         
             
              ]
         
     | 
| 
       237 
237 
     | 
    
         
             
              ### Nonterm to Int
         
     | 
| 
       238 
238 
     | 
    
         
             
              nt2i = { 
         
     | 
| 
         @@ -260,14 +260,14 @@ class StatefulLexerExtension_prerulelist < Depager::LALR::Basis #:nodoc:all 
     | 
|
| 
       260 
260 
     | 
    
         
             
              goto_table = [ 
         
     | 
| 
       261 
261 
     | 
    
         
             
               [ 1, 2, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       262 
262 
     | 
    
         
             
               [ nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       263 
     | 
    
         
            -
               [ nil, nil,  
     | 
| 
      
 263 
     | 
    
         
            +
               [ nil, nil, 3, nil, nil, nil, nil, nil, ], 
         
     | 
| 
      
 264 
     | 
    
         
            +
               [ nil, nil, nil, 5, nil, 6, 7, nil, ], 
         
     | 
| 
       264 
265 
     | 
    
         
             
               [ nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       265 
     | 
    
         
            -
               [ nil, nil, nil,  
     | 
| 
       266 
     | 
    
         
            -
               [ nil, nil, nil, nil, 10, nil, nil, nil, ], 
         
     | 
| 
      
 266 
     | 
    
         
            +
               [ nil, nil, nil, nil, nil, 10, 7, nil, ], 
         
     | 
| 
       267 
267 
     | 
    
         
             
               [ nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
      
 268 
     | 
    
         
            +
               [ nil, nil, nil, nil, nil, nil, nil, 11, ], 
         
     | 
| 
       268 
269 
     | 
    
         
             
               [ nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       269 
     | 
    
         
            -
               [ nil, nil, nil, nil,  
     | 
| 
       270 
     | 
    
         
            -
               [ nil, nil, nil, nil, nil, 15, 8, nil, ], 
         
     | 
| 
      
 270 
     | 
    
         
            +
               [ nil, nil, nil, nil, 14, nil, nil, nil, ], 
         
     | 
| 
       271 
271 
     | 
    
         
             
               [ nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       272 
272 
     | 
    
         
             
               [ nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       273 
273 
     | 
    
         
             
               [ nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
         @@ -368,8 +368,7 @@ end 
     | 
|
| 
       368 
368 
     | 
    
         | 
| 
       369 
369 
     | 
    
         
             
            class D4StatefulLexerExtension_prerulelist::NVAction < Depager::LALR::Action #:nodoc:all
         
     | 
| 
       370 
370 
     | 
    
         
             
              include Depager::DecoratorUtils
         
     | 
| 
       371 
     | 
    
         
            -
             
     | 
| 
       372 
     | 
    
         
            -
             
     | 
| 
      
 371 
     | 
    
         
            +
              ["        include ActionParser\n"]
         
     | 
| 
       373 
372 
     | 
    
         
             
              on_reduce = [
         
     | 
| 
       374 
373 
     | 
    
         
             
                nil,
         
     | 
| 
       375 
374 
     | 
    
         
             
                          :_act_0,
         
     | 
| 
         @@ -395,9 +394,9 @@ class D4StatefulLexerExtension_prerulelist::NVAction < Depager::LALR::Action #:n 
     | 
|
| 
       395 
394 
     | 
    
         
             
              end
         
     | 
| 
       396 
395 
     | 
    
         | 
| 
       397 
396 
     | 
    
         | 
| 
       398 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       399 
     | 
    
         
            -
             
     | 
| 
       400 
     | 
    
         
            -
                _mode_list = *val 
         
     | 
| 
      
 397 
     | 
    
         
            +
            module_eval <<-'.,.,120998292328650.,.,', 'slex.dr', 96
         
     | 
| 
      
 398 
     | 
    
         
            +
            def _act_0 val
         
     | 
| 
      
 399 
     | 
    
         
            +
                _mode_list, = *val 
         
     | 
| 
       401 
400 
     | 
    
         | 
| 
       402 
401 
     | 
    
         
             
                    ll = ''
         
     | 
| 
       403 
402 
     | 
    
         
             
                    _mode_list.each do |m, s, l|
         
     | 
| 
         @@ -409,7 +408,7 @@ module_eval <<-'.,.,118754107818868.,.,', 'slex.dr', 96 
     | 
|
| 
       409 
408 
     | 
    
         
             
                      ll << %{
         
     | 
| 
       410 
409 
     | 
    
         
             
                        def lex_#{m}(&block)
         
     | 
| 
       411 
410 
     | 
    
         
             
                          case @line
         
     | 
| 
       412 
     | 
    
         
            -
                            #{l 
     | 
| 
      
 411 
     | 
    
         
            +
                            #{l}
         
     | 
| 
       413 
412 
     | 
    
         
             
                          else
         
     | 
| 
       414 
413 
     | 
    
         
             
                            #{else_code}
         
     | 
| 
       415 
414 
     | 
    
         
             
                          end
         
     | 
| 
         @@ -430,74 +429,66 @@ module_eval <<-'.,.,118754107818868.,.,', 'slex.dr', 96 
     | 
|
| 
       430 
429 
     | 
    
         
             
                      end
         
     | 
| 
       431 
430 
     | 
    
         
             
                    }; #code
         
     | 
| 
       432 
431 
     | 
    
         | 
| 
       433 
     | 
    
         
            -
             
     | 
| 
       434 
     | 
    
         
            -
             
     | 
| 
       435 
     | 
    
         
            -
            .,.,118754107818868.,.,
         
     | 
| 
      
 432 
     | 
    
         
            +
            end
         
     | 
| 
      
 433 
     | 
    
         
            +
            .,.,120998292328650.,.,
         
     | 
| 
       436 
434 
     | 
    
         | 
| 
       437 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       438 
     | 
    
         
            -
             
     | 
| 
      
 435 
     | 
    
         
            +
            module_eval <<-'.,.,120998292354849.,.,', 'slex.dr', 130
         
     | 
| 
      
 436 
     | 
    
         
            +
            def _act_1 val
         
     | 
| 
       439 
437 
     | 
    
         
             
                 [ ] 
         
     | 
| 
       440 
438 
     | 
    
         | 
| 
       441 
     | 
    
         
            -
             
     | 
| 
       442 
     | 
    
         
            -
             
     | 
| 
       443 
     | 
    
         
            -
            .,.,118754107863583.,.,
         
     | 
| 
      
 439 
     | 
    
         
            +
            end
         
     | 
| 
      
 440 
     | 
    
         
            +
            .,.,120998292354849.,.,
         
     | 
| 
       444 
441 
     | 
    
         | 
| 
       445 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       446 
     | 
    
         
            -
             
     | 
| 
       447 
     | 
    
         
            -
                _mode_list, _mode, _lexactlist = *val 
         
     | 
| 
      
 442 
     | 
    
         
            +
            module_eval <<-'.,.,120998292352082.,.,', 'slex.dr', 131
         
     | 
| 
      
 443 
     | 
    
         
            +
            def _act_2 val
         
     | 
| 
      
 444 
     | 
    
         
            +
                _mode_list, _mode, _lexactlist, = *val 
         
     | 
| 
       448 
445 
     | 
    
         
             
                 _mode_list << [_mode[0], _mode[1], _lexactlist] 
         
     | 
| 
       449 
446 
     | 
    
         | 
| 
       450 
     | 
    
         
            -
             
     | 
| 
       451 
     | 
    
         
            -
             
     | 
| 
       452 
     | 
    
         
            -
            .,.,118754107817072.,.,
         
     | 
| 
      
 447 
     | 
    
         
            +
            end
         
     | 
| 
      
 448 
     | 
    
         
            +
            .,.,120998292352082.,.,
         
     | 
| 
       453 
449 
     | 
    
         | 
| 
       454 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       455 
     | 
    
         
            -
             
     | 
| 
       456 
     | 
    
         
            -
                _, _ID, _opt_super, _ = *val 
         
     | 
| 
      
 450 
     | 
    
         
            +
            module_eval <<-'.,.,12099829232991.,.,', 'slex.dr', 134
         
     | 
| 
      
 451 
     | 
    
         
            +
            def _act_3 val
         
     | 
| 
      
 452 
     | 
    
         
            +
                _, _ID, _opt_super, _, = *val 
         
     | 
| 
       457 
453 
     | 
    
         
             
                 [ _ID.value, _opt_super ] 
         
     | 
| 
       458 
454 
     | 
    
         | 
| 
       459 
     | 
    
         
            -
             
     | 
| 
       460 
     | 
    
         
            -
             
     | 
| 
       461 
     | 
    
         
            -
            .,.,118754107816434.,.,
         
     | 
| 
      
 455 
     | 
    
         
            +
            end
         
     | 
| 
      
 456 
     | 
    
         
            +
            .,.,12099829232991.,.,
         
     | 
| 
       462 
457 
     | 
    
         | 
| 
       463 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       464 
     | 
    
         
            -
             
     | 
| 
      
 458 
     | 
    
         
            +
            module_eval <<-'.,.,12099829237562.,.,', 'slex.dr', 137
         
     | 
| 
      
 459 
     | 
    
         
            +
            def _act_4 val
         
     | 
| 
       465 
460 
     | 
    
         
             
                 nil 
         
     | 
| 
       466 
461 
     | 
    
         | 
| 
       467 
     | 
    
         
            -
             
     | 
| 
       468 
     | 
    
         
            -
             
     | 
| 
       469 
     | 
    
         
            -
            .,.,118754107840777.,.,
         
     | 
| 
      
 462 
     | 
    
         
            +
            end
         
     | 
| 
      
 463 
     | 
    
         
            +
            .,.,12099829237562.,.,
         
     | 
| 
       470 
464 
     | 
    
         | 
| 
       471 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       472 
     | 
    
         
            -
             
     | 
| 
       473 
     | 
    
         
            -
                _, _ID = *val 
         
     | 
| 
      
 465 
     | 
    
         
            +
            module_eval <<-'.,.,120998292348892.,.,', 'slex.dr', 138
         
     | 
| 
      
 466 
     | 
    
         
            +
            def _act_5 val
         
     | 
| 
      
 467 
     | 
    
         
            +
                _, _ID, = *val 
         
     | 
| 
       474 
468 
     | 
    
         
             
                 _ID.value 
         
     | 
| 
       475 
469 
     | 
    
         | 
| 
       476 
     | 
    
         
            -
             
     | 
| 
       477 
     | 
    
         
            -
             
     | 
| 
       478 
     | 
    
         
            -
            .,.,118754107819808.,.,
         
     | 
| 
      
 470 
     | 
    
         
            +
            end
         
     | 
| 
      
 471 
     | 
    
         
            +
            .,.,120998292348892.,.,
         
     | 
| 
       479 
472 
     | 
    
         | 
| 
       480 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       481 
     | 
    
         
            -
             
     | 
| 
       482 
     | 
    
         
            -
                _lexact = *val 
         
     | 
| 
       483 
     | 
    
         
            -
                  
     | 
| 
      
 473 
     | 
    
         
            +
            module_eval <<-'.,.,120998292360134.,.,', 'slex.dr', 141
         
     | 
| 
      
 474 
     | 
    
         
            +
            def _act_6 val
         
     | 
| 
      
 475 
     | 
    
         
            +
                _lexact, = *val 
         
     | 
| 
      
 476 
     | 
    
         
            +
                 _lexact 
         
     | 
| 
       484 
477 
     | 
    
         | 
| 
       485 
     | 
    
         
            -
             
     | 
| 
       486 
     | 
    
         
            -
             
     | 
| 
       487 
     | 
    
         
            -
            .,.,118754107825523.,.,
         
     | 
| 
      
 478 
     | 
    
         
            +
            end
         
     | 
| 
      
 479 
     | 
    
         
            +
            .,.,120998292360134.,.,
         
     | 
| 
       488 
480 
     | 
    
         | 
| 
       489 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       490 
     | 
    
         
            -
             
     | 
| 
       491 
     | 
    
         
            -
                _lexactlist, _lexact = *val 
         
     | 
| 
      
 481 
     | 
    
         
            +
            module_eval <<-'.,.,120998292332012.,.,', 'slex.dr', 142
         
     | 
| 
      
 482 
     | 
    
         
            +
            def _act_7 val
         
     | 
| 
      
 483 
     | 
    
         
            +
                _lexactlist, _lexact, = *val 
         
     | 
| 
       492 
484 
     | 
    
         
             
                 _lexactlist << _lexact 
         
     | 
| 
       493 
485 
     | 
    
         | 
| 
       494 
     | 
    
         
            -
             
     | 
| 
       495 
     | 
    
         
            -
             
     | 
| 
       496 
     | 
    
         
            -
            .,.,11875410787826.,.,
         
     | 
| 
      
 486 
     | 
    
         
            +
            end
         
     | 
| 
      
 487 
     | 
    
         
            +
            .,.,120998292332012.,.,
         
     | 
| 
       497 
488 
     | 
    
         | 
| 
       498 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       499 
     | 
    
         
            -
             
     | 
| 
       500 
     | 
    
         
            -
                _lexlist, _opt_noskip, _ACTION = *val 
         
     | 
| 
      
 489 
     | 
    
         
            +
            module_eval <<-'.,.,12099829232968.,.,', 'slex.dr', 146
         
     | 
| 
      
 490 
     | 
    
         
            +
            def _act_8 val
         
     | 
| 
      
 491 
     | 
    
         
            +
                _lexlist, _opt_noskip, _ACTION, = *val 
         
     | 
| 
       501 
492 
     | 
    
         | 
| 
       502 
493 
     | 
    
         
             
                    %{
         
     | 
| 
       503 
494 
     | 
    
         
             
                      when #{_lexlist.join(', ')}
         
     | 
| 
         @@ -505,44 +496,39 @@ module_eval <<-'.,.,118754107820340.,.,', 'slex.dr', 146 
     | 
|
| 
       505 
496 
     | 
    
         
             
                        #{ _ACTION.value }
         
     | 
| 
       506 
497 
     | 
    
         
             
                    }; #code
         
     | 
| 
       507 
498 
     | 
    
         | 
| 
       508 
     | 
    
         
            -
             
     | 
| 
       509 
     | 
    
         
            -
             
     | 
| 
       510 
     | 
    
         
            -
            .,.,118754107820340.,.,
         
     | 
| 
      
 499 
     | 
    
         
            +
            end
         
     | 
| 
      
 500 
     | 
    
         
            +
            .,.,12099829232968.,.,
         
     | 
| 
       511 
501 
     | 
    
         | 
| 
       512 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       513 
     | 
    
         
            -
             
     | 
| 
      
 502 
     | 
    
         
            +
            module_eval <<-'.,.,120998292350935.,.,', 'slex.dr', 155
         
     | 
| 
      
 503 
     | 
    
         
            +
            def _act_9 val
         
     | 
| 
       514 
504 
     | 
    
         
             
                 false 
         
     | 
| 
       515 
505 
     | 
    
         | 
| 
       516 
     | 
    
         
            -
             
     | 
| 
       517 
     | 
    
         
            -
             
     | 
| 
       518 
     | 
    
         
            -
            .,.,118754107818518.,.,
         
     | 
| 
      
 506 
     | 
    
         
            +
            end
         
     | 
| 
      
 507 
     | 
    
         
            +
            .,.,120998292350935.,.,
         
     | 
| 
       519 
508 
     | 
    
         | 
| 
       520 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       521 
     | 
    
         
            -
             
     | 
| 
       522 
     | 
    
         
            -
                _ = *val 
         
     | 
| 
      
 509 
     | 
    
         
            +
            module_eval <<-'.,.,120998292356440.,.,', 'slex.dr', 156
         
     | 
| 
      
 510 
     | 
    
         
            +
            def _act_10 val
         
     | 
| 
      
 511 
     | 
    
         
            +
                _, = *val 
         
     | 
| 
       523 
512 
     | 
    
         
             
                 true  
         
     | 
| 
       524 
513 
     | 
    
         | 
| 
       525 
     | 
    
         
            -
             
     | 
| 
       526 
     | 
    
         
            -
             
     | 
| 
       527 
     | 
    
         
            -
            .,.,118754107850066.,.,
         
     | 
| 
      
 514 
     | 
    
         
            +
            end
         
     | 
| 
      
 515 
     | 
    
         
            +
            .,.,120998292356440.,.,
         
     | 
| 
       528 
516 
     | 
    
         | 
| 
       529 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       530 
     | 
    
         
            -
             
     | 
| 
       531 
     | 
    
         
            -
                _LEX = *val 
         
     | 
| 
      
 517 
     | 
    
         
            +
            module_eval <<-'.,.,120998292318605.,.,', 'slex.dr', 159
         
     | 
| 
      
 518 
     | 
    
         
            +
            def _act_11 val
         
     | 
| 
      
 519 
     | 
    
         
            +
                _LEX, = *val 
         
     | 
| 
       532 
520 
     | 
    
         
             
                 [ _LEX.value ] 
         
     | 
| 
       533 
521 
     | 
    
         | 
| 
       534 
     | 
    
         
            -
             
     | 
| 
       535 
     | 
    
         
            -
             
     | 
| 
       536 
     | 
    
         
            -
            .,.,118754107825362.,.,
         
     | 
| 
      
 522 
     | 
    
         
            +
            end
         
     | 
| 
      
 523 
     | 
    
         
            +
            .,.,120998292318605.,.,
         
     | 
| 
       537 
524 
     | 
    
         | 
| 
       538 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       539 
     | 
    
         
            -
             
     | 
| 
       540 
     | 
    
         
            -
                _lexlist, _, _LEX = *val 
         
     | 
| 
       541 
     | 
    
         
            -
                 _lexlist.push _LEX 
         
     | 
| 
       542 
     | 
    
         
            -
             
     | 
| 
       543 
     | 
    
         
            -
              end
         
     | 
| 
      
 525 
     | 
    
         
            +
            module_eval <<-'.,.,120998292362428.,.,', 'slex.dr', 160
         
     | 
| 
      
 526 
     | 
    
         
            +
            def _act_12 val
         
     | 
| 
      
 527 
     | 
    
         
            +
                _lexlist, _, _LEX, = *val 
         
     | 
| 
      
 528 
     | 
    
         
            +
                 _lexlist.push _LEX.value 
         
     | 
| 
       544 
529 
     | 
    
         | 
| 
       545 
     | 
    
         
            -
             
     | 
| 
      
 530 
     | 
    
         
            +
            end
         
     | 
| 
      
 531 
     | 
    
         
            +
            .,.,120998292362428.,.,
         
     | 
| 
       546 
532 
     | 
    
         | 
| 
       547 
533 
     | 
    
         
             
            end
         
     | 
| 
       548 
534 
     | 
    
         | 
| 
         @@ -598,21 +584,21 @@ class StatefulLexerExtension_prerhs_postsymbol < Depager::LALR::Basis #:nodoc:al 
     | 
|
| 
       598 
584 
     | 
    
         
             
              ]
         
     | 
| 
       599 
585 
     | 
    
         
             
              ### Action Table
         
     | 
| 
       600 
586 
     | 
    
         
             
              action_table = [
         
     | 
| 
       601 
     | 
    
         
            -
                [ nil, nil,  
     | 
| 
       602 
     | 
    
         
            -
                [ nil, nil, nil, nil, nil, 7, nil, 3, 4, ], 
         
     | 
| 
      
 587 
     | 
    
         
            +
                [ nil, nil, 2, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       603 
588 
     | 
    
         
             
                [ ACC, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       604 
     | 
    
         
            -
                [ nil, nil, nil, nil, nil,  
     | 
| 
       605 
     | 
    
         
            -
                [ nil, nil, nil,  
     | 
| 
       606 
     | 
    
         
            -
                [ nil, nil, nil, 10, 11, 7, nil, 3, 4, ], 
         
     | 
| 
      
 589 
     | 
    
         
            +
                [ nil, nil, nil, nil, nil, 5, nil, 6, 7, ], 
         
     | 
| 
      
 590 
     | 
    
         
            +
                [ nil, nil, nil, 8, 10, 5, nil, 6, 7, ], 
         
     | 
| 
       607 
591 
     | 
    
         
             
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
      
 592 
     | 
    
         
            +
                [ nil, nil, nil, nil, nil, nil, 11, nil, nil, ], 
         
     | 
| 
      
 593 
     | 
    
         
            +
                [ nil, nil, nil, nil, nil, nil, 12, nil, nil, ], 
         
     | 
| 
       608 
594 
     | 
    
         
             
                [ nil, nil, nil, nil, nil, nil, 13, nil, nil, ], 
         
     | 
| 
       609 
595 
     | 
    
         
             
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       610 
596 
     | 
    
         
             
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       611 
     | 
    
         
            -
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       612 
597 
     | 
    
         
             
                [ nil, nil, nil, 14, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       613 
598 
     | 
    
         
             
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       614 
599 
     | 
    
         
             
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       615 
600 
     | 
    
         
             
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
      
 601 
     | 
    
         
            +
                [ nil, nil, nil, nil, nil, nil, nil, nil, nil, ], 
         
     | 
| 
       616 
602 
     | 
    
         
             
              ]
         
     | 
| 
       617 
603 
     | 
    
         
             
              ### Default Reduce Table
         
     | 
| 
       618 
604 
     | 
    
         
             
              defred_table = [
         
     | 
| 
         @@ -620,16 +606,16 @@ class StatefulLexerExtension_prerhs_postsymbol < Depager::LALR::Basis #:nodoc:al 
     | 
|
| 
       620 
606 
     | 
    
         
             
                nil, 
         
     | 
| 
       621 
607 
     | 
    
         
             
                nil, 
         
     | 
| 
       622 
608 
     | 
    
         
             
                nil, 
         
     | 
| 
      
 609 
     | 
    
         
            +
                -3, 
         
     | 
| 
       623 
610 
     | 
    
         
             
                nil, 
         
     | 
| 
       624 
611 
     | 
    
         
             
                nil, 
         
     | 
| 
       625 
     | 
    
         
            -
                -3, 
         
     | 
| 
       626 
612 
     | 
    
         
             
                nil, 
         
     | 
| 
       627 
     | 
    
         
            -
                -6, 
         
     | 
| 
       628 
     | 
    
         
            -
                -7, 
         
     | 
| 
       629 
613 
     | 
    
         
             
                -1, 
         
     | 
| 
       630 
     | 
    
         
            -
                nil, 
         
     | 
| 
       631 
614 
     | 
    
         
             
                -4, 
         
     | 
| 
      
 615 
     | 
    
         
            +
                nil, 
         
     | 
| 
       632 
616 
     | 
    
         
             
                -5, 
         
     | 
| 
      
 617 
     | 
    
         
            +
                -6, 
         
     | 
| 
      
 618 
     | 
    
         
            +
                -7, 
         
     | 
| 
       633 
619 
     | 
    
         
             
                -2, 
         
     | 
| 
       634 
620 
     | 
    
         
             
              ]
         
     | 
| 
       635 
621 
     | 
    
         
             
              defred_after_shift_table = [
         
     | 
| 
         @@ -637,16 +623,16 @@ class StatefulLexerExtension_prerhs_postsymbol < Depager::LALR::Basis #:nodoc:al 
     | 
|
| 
       637 
623 
     | 
    
         
             
                nil, 
         
     | 
| 
       638 
624 
     | 
    
         
             
                nil, 
         
     | 
| 
       639 
625 
     | 
    
         
             
                nil, 
         
     | 
| 
      
 626 
     | 
    
         
            +
                -3, 
         
     | 
| 
       640 
627 
     | 
    
         
             
                nil, 
         
     | 
| 
       641 
628 
     | 
    
         
             
                nil, 
         
     | 
| 
       642 
     | 
    
         
            -
                -3, 
         
     | 
| 
       643 
629 
     | 
    
         
             
                nil, 
         
     | 
| 
       644 
     | 
    
         
            -
                -6, 
         
     | 
| 
       645 
     | 
    
         
            -
                -7, 
         
     | 
| 
       646 
630 
     | 
    
         
             
                -1, 
         
     | 
| 
       647 
     | 
    
         
            -
                nil, 
         
     | 
| 
       648 
631 
     | 
    
         
             
                -4, 
         
     | 
| 
      
 632 
     | 
    
         
            +
                nil, 
         
     | 
| 
       649 
633 
     | 
    
         
             
                -5, 
         
     | 
| 
      
 634 
     | 
    
         
            +
                -6, 
         
     | 
| 
      
 635 
     | 
    
         
            +
                -7, 
         
     | 
| 
       650 
636 
     | 
    
         
             
                -2, 
         
     | 
| 
       651 
637 
     | 
    
         
             
              ]
         
     | 
| 
       652 
638 
     | 
    
         
             
              ### Nonterm to Int
         
     | 
| 
         @@ -663,12 +649,12 @@ class StatefulLexerExtension_prerhs_postsymbol < Depager::LALR::Basis #:nodoc:al 
     | 
|
| 
       663 
649 
     | 
    
         
             
              ]
         
     | 
| 
       664 
650 
     | 
    
         
             
              ### Goto Table
         
     | 
| 
       665 
651 
     | 
    
         
             
              goto_table = [ 
         
     | 
| 
       666 
     | 
    
         
            -
               [  
     | 
| 
       667 
     | 
    
         
            -
               [ nil, 5, 6, ], 
         
     | 
| 
      
 652 
     | 
    
         
            +
               [ 1, nil, nil, ], 
         
     | 
| 
       668 
653 
     | 
    
         
             
               [ nil, nil, nil, ], 
         
     | 
| 
      
 654 
     | 
    
         
            +
               [ nil, 3, 4, ], 
         
     | 
| 
      
 655 
     | 
    
         
            +
               [ nil, nil, 9, ], 
         
     | 
| 
       669 
656 
     | 
    
         
             
               [ nil, nil, nil, ], 
         
     | 
| 
       670 
657 
     | 
    
         
             
               [ nil, nil, nil, ], 
         
     | 
| 
       671 
     | 
    
         
            -
               [ nil, nil, 12, ], 
         
     | 
| 
       672 
658 
     | 
    
         
             
               [ nil, nil, nil, ], 
         
     | 
| 
       673 
659 
     | 
    
         
             
               [ nil, nil, nil, ], 
         
     | 
| 
       674 
660 
     | 
    
         
             
               [ nil, nil, nil, ], 
         
     | 
| 
         @@ -750,7 +736,7 @@ end 
     | 
|
| 
       750 
736 
     | 
    
         | 
| 
       751 
737 
     | 
    
         
             
            class D4StatefulLexerExtension_prerhs_postsymbol::NVAction < Depager::LALR::Action #:nodoc:all
         
     | 
| 
       752 
738 
     | 
    
         
             
              include Depager::DecoratorUtils
         
     | 
| 
       753 
     | 
    
         
            -
              
         
     | 
| 
      
 739 
     | 
    
         
            +
              []
         
     | 
| 
       754 
740 
     | 
    
         
             
              on_reduce = [
         
     | 
| 
       755 
741 
     | 
    
         
             
                nil,
         
     | 
| 
       756 
742 
     | 
    
         
             
                          :_act_0,
         
     | 
| 
         @@ -770,70 +756,63 @@ class D4StatefulLexerExtension_prerhs_postsymbol::NVAction < Depager::LALR::Acti 
     | 
|
| 
       770 
756 
     | 
    
         
             
              end
         
     | 
| 
       771 
757 
     | 
    
         | 
| 
       772 
758 
     | 
    
         | 
| 
       773 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       774 
     | 
    
         
            -
             
     | 
| 
       775 
     | 
    
         
            -
                _, _option_list, _ = *val 
         
     | 
| 
      
 759 
     | 
    
         
            +
            module_eval <<-'.,.,120998292310380.,.,', 'slex.dr', 180
         
     | 
| 
      
 760 
     | 
    
         
            +
            def _act_0 val
         
     | 
| 
      
 761 
     | 
    
         
            +
                _, _option_list, _, = *val 
         
     | 
| 
       776 
762 
     | 
    
         | 
| 
       777 
763 
     | 
    
         
             
                    master.ins.push [g_parser.rhs.size, _option_list, false]
         
     | 
| 
       778 
764 
     | 
    
         | 
| 
       779 
     | 
    
         
            -
             
     | 
| 
       780 
     | 
    
         
            -
             
     | 
| 
       781 
     | 
    
         
            -
            .,.,11875410786796.,.,
         
     | 
| 
      
 765 
     | 
    
         
            +
            end
         
     | 
| 
      
 766 
     | 
    
         
            +
            .,.,120998292310380.,.,
         
     | 
| 
       782 
767 
     | 
    
         | 
| 
       783 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       784 
     | 
    
         
            -
             
     | 
| 
       785 
     | 
    
         
            -
                _, _option_list, _, _ = *val 
         
     | 
| 
      
 768 
     | 
    
         
            +
            module_eval <<-'.,.,120998292354182.,.,', 'slex.dr', 184
         
     | 
| 
      
 769 
     | 
    
         
            +
            def _act_1 val
         
     | 
| 
      
 770 
     | 
    
         
            +
                _, _option_list, _, _, = *val 
         
     | 
| 
       786 
771 
     | 
    
         | 
| 
       787 
772 
     | 
    
         
             
                    master.ins.push [g_parser.rhs.size, _option_list, true]
         
     | 
| 
       788 
773 
     | 
    
         | 
| 
       789 
     | 
    
         
            -
             
     | 
| 
       790 
     | 
    
         
            -
             
     | 
| 
       791 
     | 
    
         
            -
            .,.,118754107862281.,.,
         
     | 
| 
      
 774 
     | 
    
         
            +
            end
         
     | 
| 
      
 775 
     | 
    
         
            +
            .,.,120998292354182.,.,
         
     | 
| 
       792 
776 
     | 
    
         | 
| 
       793 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       794 
     | 
    
         
            -
             
     | 
| 
       795 
     | 
    
         
            -
                _option = *val 
         
     | 
| 
      
 777 
     | 
    
         
            +
            module_eval <<-'.,.,120998292345458.,.,', 'slex.dr', 190
         
     | 
| 
      
 778 
     | 
    
         
            +
            def _act_2 val
         
     | 
| 
      
 779 
     | 
    
         
            +
                _option, = *val 
         
     | 
| 
       796 
780 
     | 
    
         
             
                 [_option] 
         
     | 
| 
       797 
781 
     | 
    
         | 
| 
       798 
     | 
    
         
            -
             
     | 
| 
       799 
     | 
    
         
            -
             
     | 
| 
       800 
     | 
    
         
            -
            .,.,118754107859502.,.,
         
     | 
| 
      
 782 
     | 
    
         
            +
            end
         
     | 
| 
      
 783 
     | 
    
         
            +
            .,.,120998292345458.,.,
         
     | 
| 
       801 
784 
     | 
    
         | 
| 
       802 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       803 
     | 
    
         
            -
             
     | 
| 
       804 
     | 
    
         
            -
                _option_list, _option = *val 
         
     | 
| 
      
 785 
     | 
    
         
            +
            module_eval <<-'.,.,120998292359833.,.,', 'slex.dr', 191
         
     | 
| 
      
 786 
     | 
    
         
            +
            def _act_3 val
         
     | 
| 
      
 787 
     | 
    
         
            +
                _option_list, _option, = *val 
         
     | 
| 
       805 
788 
     | 
    
         
             
                 _option_list << _option 
         
     | 
| 
       806 
789 
     | 
    
         | 
| 
       807 
     | 
    
         
            -
             
     | 
| 
       808 
     | 
    
         
            -
             
     | 
| 
       809 
     | 
    
         
            -
            .,.,118754107825820.,.,
         
     | 
| 
      
 790 
     | 
    
         
            +
            end
         
     | 
| 
      
 791 
     | 
    
         
            +
            .,.,120998292359833.,.,
         
     | 
| 
       810 
792 
     | 
    
         | 
| 
       811 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       812 
     | 
    
         
            -
             
     | 
| 
       813 
     | 
    
         
            -
                _, _SYMBOL = *val 
         
     | 
| 
      
 793 
     | 
    
         
            +
            module_eval <<-'.,.,120998292340459.,.,', 'slex.dr', 194
         
     | 
| 
      
 794 
     | 
    
         
            +
            def _act_4 val
         
     | 
| 
      
 795 
     | 
    
         
            +
                _, _SYMBOL, = *val 
         
     | 
| 
       814 
796 
     | 
    
         
             
                 [:GOTO, _SYMBOL.value] 
         
     | 
| 
       815 
797 
     | 
    
         | 
| 
       816 
     | 
    
         
            -
             
     | 
| 
       817 
     | 
    
         
            -
             
     | 
| 
       818 
     | 
    
         
            -
            .,.,118754107852027.,.,
         
     | 
| 
      
 798 
     | 
    
         
            +
            end
         
     | 
| 
      
 799 
     | 
    
         
            +
            .,.,120998292340459.,.,
         
     | 
| 
       819 
800 
     | 
    
         | 
| 
       820 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       821 
     | 
    
         
            -
             
     | 
| 
       822 
     | 
    
         
            -
                _, _SYMBOL = *val 
         
     | 
| 
      
 801 
     | 
    
         
            +
            module_eval <<-'.,.,120998292339947.,.,', 'slex.dr', 195
         
     | 
| 
      
 802 
     | 
    
         
            +
            def _act_5 val
         
     | 
| 
      
 803 
     | 
    
         
            +
                _, _SYMBOL, = *val 
         
     | 
| 
       823 
804 
     | 
    
         
             
                 [:ADD, _SYMBOL.value]  
         
     | 
| 
       824 
805 
     | 
    
         | 
| 
       825 
     | 
    
         
            -
             
     | 
| 
       826 
     | 
    
         
            -
             
     | 
| 
       827 
     | 
    
         
            -
            .,.,118754107811272.,.,
         
     | 
| 
      
 806 
     | 
    
         
            +
            end
         
     | 
| 
      
 807 
     | 
    
         
            +
            .,.,120998292339947.,.,
         
     | 
| 
       828 
808 
     | 
    
         | 
| 
       829 
     | 
    
         
            -
            module_eval <<-'.,., 
     | 
| 
       830 
     | 
    
         
            -
             
     | 
| 
       831 
     | 
    
         
            -
                _, _SYMBOL = *val 
         
     | 
| 
      
 809 
     | 
    
         
            +
            module_eval <<-'.,.,120998292319195.,.,', 'slex.dr', 196
         
     | 
| 
      
 810 
     | 
    
         
            +
            def _act_6 val
         
     | 
| 
      
 811 
     | 
    
         
            +
                _, _SYMBOL, = *val 
         
     | 
| 
       832 
812 
     | 
    
         
             
                 [:SUB, _SYMBOL.value]  
         
     | 
| 
       833 
813 
     | 
    
         | 
| 
       834 
     | 
    
         
            -
             
     | 
| 
       835 
     | 
    
         
            -
             
     | 
| 
       836 
     | 
    
         
            -
            .,.,118754107839236.,.,
         
     | 
| 
      
 814 
     | 
    
         
            +
            end
         
     | 
| 
      
 815 
     | 
    
         
            +
            .,.,120998292319195.,.,
         
     | 
| 
       837 
816 
     | 
    
         | 
| 
       838 
817 
     | 
    
         
             
            end
         
     | 
| 
       839 
818 
     | 
    
         |