depager 0.2.3 → 0.3.0.b20250423
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/.rubocop.yml +44 -0
 - data/.simplecov +5 -0
 - data/Gemfile +12 -0
 - data/LICENSE.gpl +339 -0
 - data/Manifest.txt +73 -0
 - data/README.en +7 -21
 - data/README.ja +19 -99
 - data/Rakefile +31 -0
 - data/bin/depager +7 -45
 - data/examples/action_pl0d/pl0d.action.dr +421 -0
 - data/examples/action_pl0d/test.pl0ds +48 -0
 - data/examples/c89/c89.dr +493 -496
 - data/examples/c89/test.c89 +10 -10
 - data/examples/extension/astdf.rb +9 -0
 - data/examples/extension/atree.dr +55 -0
 - data/examples/{sample_calc → extension}/calc.atree.dr +42 -43
 - data/examples/{sample_calc/calc.action.dr → extension/calc.simple_action.dr} +33 -33
 - data/examples/extension/paction.dr +16 -15
 - data/examples/extension/pactiontest.dr +14 -14
 - data/examples/extension/simple_action.rb +46 -0
 - data/examples/pl0d/pl0ds.dr +337 -334
 - data/examples/pl0d/test.pl0ds +33 -33
 - data/examples/rie_calc/calc.rie.dr +57 -0
 - data/examples/rie_calc/test.calc +4 -0
 - data/examples/rie_dcuse/dcuse.rie.dr +71 -0
 - data/examples/rie_dcuse/test.dcuse +1 -0
 - data/examples/rie_pl0/orig_ex/exerrdg.pl0 +44 -0
 - data/examples/rie_pl0/orig_ex/exerrm.pl0 +19 -0
 - data/examples/rie_pl0/orig_ex/exerrmre.pl0 +20 -0
 - data/examples/rie_pl0/orig_ex/exerrtok.pl0 +18 -0
 - data/examples/rie_pl0/orig_ex/exmdg.pl0 +40 -0
 - data/examples/rie_pl0/orig_ex/exmdgwwl.pl0 +43 -0
 - data/examples/rie_pl0/orig_ex/exmrw.pl0 +22 -0
 - data/examples/rie_pl0/orig_ex/exmwwl.pl0 +18 -0
 - data/examples/rie_pl0/orig_ex/exnorw.pl0 +17 -0
 - data/examples/rie_pl0/pl0.rie.dr +450 -0
 - data/examples/rie_pl0/test.pl0 +10 -0
 - data/examples/slex_test/divreg.slex.dr +29 -29
 - data/examples/slex_test/ljoin.slex.dr +36 -36
 - data/examples/slex_test/test.divreg +1 -1
 - data/examples/slex_test/test.ljoin +3 -3
 - data/examples/{sample_calc/calc.nvaction.dr → tiny_calc/calc.action.dr} +33 -33
 - data/examples/{sample_calc → tiny_calc}/calc.ast.action.dr +76 -66
 - data/examples/{sample_calc → tiny_calc}/calc.ast.dr +67 -55
 - data/examples/tiny_calc/calc.cst.dr +50 -0
 - data/examples/{sample_calc → tiny_calc}/calc.dr +43 -43
 - data/examples/{sample_calc → tiny_calc}/calc.lex.dr +29 -29
 - data/examples/{sample_calc/calc_prec.nvaction.dr → tiny_calc/calc_prec.action.dr} +31 -31
 - data/lib/depager/cli.rb +44 -0
 - data/lib/depager/grammar.rb +253 -291
 - data/lib/depager/lr.rb +589 -579
 - data/lib/depager/parser.rb +269 -277
 - data/lib/depager/plugins/_rie_debug.rb +63 -0
 - data/lib/depager/plugins/action.rb +47 -0
 - data/lib/depager/plugins/ast.dr +367 -0
 - data/lib/depager/plugins/ast.rb +1329 -0
 - data/lib/depager/{ruby/plugins → plugins}/cst.dr +174 -180
 - data/lib/depager/plugins/cst.rb +591 -0
 - data/lib/depager/{ruby/plugins → plugins}/lex.dr +85 -89
 - data/lib/depager/plugins/lex.rb +313 -0
 - data/lib/depager/plugins/rie.dr +725 -0
 - data/lib/depager/plugins/rie.rb +1614 -0
 - data/lib/depager/{ruby/plugins → plugins}/slex.dr +201 -200
 - data/lib/depager/plugins/slex.rb +769 -0
 - data/lib/depager/plugins/srp.rb +46 -0
 - data/lib/depager/ruby/templates/extension_lalr_master.erb +40 -51
 - data/lib/depager/ruby/templates/extension_lalr_slave.erb +113 -107
 - data/lib/depager/ruby/templates/single_lalr_parser.erb +124 -117
 - data/lib/depager/utils.rb +158 -318
 - data/lib/depager/version.rb +3 -3
 - data/lib/depager.rb +572 -670
 - metadata +77 -80
 - data/ChangeLog +0 -16
 - data/data/depager/pre-setup.rb +0 -3
 - data/examples/c89/c89.tab.rb +0 -7127
 - data/examples/pl0d/pl0ds.tab.rb +0 -2698
 - data/examples/sample_calc/calc.action.tab.rb +0 -457
 - data/examples/sample_calc/calc.ast.action.tab.rb +0 -749
 - data/examples/sample_calc/calc.ast.tab.rb +0 -665
 - data/examples/sample_calc/calc.astdf.dr +0 -54
 - data/examples/sample_calc/calc.astdf.tab.rb +0 -672
 - data/examples/sample_calc/calc.atree.tab.rb +0 -451
 - data/examples/sample_calc/calc.cst.dr +0 -45
 - data/examples/sample_calc/calc.cst.tab.rb +0 -644
 - data/examples/sample_calc/calc.lex.tab.rb +0 -374
 - data/examples/sample_calc/calc.nvaction.tab.rb +0 -465
 - data/examples/sample_calc/calc.tab.rb +0 -365
 - data/examples/sample_calc/calc_prec.nvaction.tab.rb +0 -431
 - data/examples/slex_test/divreg.slex.tab.rb +0 -303
 - data/examples/slex_test/ljoin.slex.tab.rb +0 -370
 - data/lib/depager/ruby/plugins/_ast_tmpl.rb +0 -73
 - data/lib/depager/ruby/plugins/action.rb +0 -43
 - data/lib/depager/ruby/plugins/ast.dr +0 -269
 - data/lib/depager/ruby/plugins/ast.rb +0 -1308
 - data/lib/depager/ruby/plugins/astdf.rb +0 -6
 - data/lib/depager/ruby/plugins/atree.dr +0 -55
 - data/lib/depager/ruby/plugins/atree.rb +0 -347
 - data/lib/depager/ruby/plugins/cst.rb +0 -626
 - data/lib/depager/ruby/plugins/lex.rb +0 -336
 - data/lib/depager/ruby/plugins/nvaction.rb +0 -19
 - data/lib/depager/ruby/plugins/slex.rb +0 -817
 - data/lib/depager/ruby/plugins/srp.rb +0 -51
 - data/lib/depager/ruby/templates/simple.erb +0 -23
 - data/setup.rb +0 -1585
 - /data/examples/{sample_calc → tiny_calc}/test.calc +0 -0
 
| 
         @@ -1,51 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            class ShiftReducePrinter < Depager::LALR::AdvancedParser
         
     | 
| 
       2 
     | 
    
         
            -
              def initialize inside
         
     | 
| 
       3 
     | 
    
         
            -
                super
         
     | 
| 
       4 
     | 
    
         
            -
                @i2nt, @i2t = @basis.i2nt, @basis.i2t
         
     | 
| 
       5 
     | 
    
         
            -
              end
         
     | 
| 
       6 
     | 
    
         
            -
              def dumpstack stack
         
     | 
| 
       7 
     | 
    
         
            -
                r = ''
         
     | 
| 
       8 
     | 
    
         
            -
                _stack.each_with_index do |v,x|
         
     | 
| 
       9 
     | 
    
         
            -
                  r += if x % 2 == 0
         
     | 
| 
       10 
     | 
    
         
            -
                         "(#{v}) "
         
     | 
| 
       11 
     | 
    
         
            -
                       else
         
     | 
| 
       12 
     | 
    
         
            -
                         if v[1] == :NT
         
     | 
| 
       13 
     | 
    
         
            -
                           "#{@i2nt[v[0]]}:#{v[1..-1].inspect} "
         
     | 
| 
       14 
     | 
    
         
            -
                         elsif @i2t[v[0]].class == String
         
     | 
| 
       15 
     | 
    
         
            -
                           "'#{@i2t[v[0]]}':#{v[1..-1].inspect}"
         
     | 
| 
       16 
     | 
    
         
            -
                         else
         
     | 
| 
       17 
     | 
    
         
            -
                           "#{@i2t[v[0]]}:#{v[1..-1].inspect} "
         
     | 
| 
       18 
     | 
    
         
            -
                         end
         
     | 
| 
       19 
     | 
    
         
            -
                       end
         
     | 
| 
       20 
     | 
    
         
            -
                end
         
     | 
| 
       21 
     | 
    
         
            -
                r
         
     | 
| 
       22 
     | 
    
         
            -
              end
         
     | 
| 
       23 
     | 
    
         
            -
              def after_shift
         
     | 
| 
       24 
     | 
    
         
            -
                st0 = _stack[_stack.size-3]
         
     | 
| 
       25 
     | 
    
         
            -
                st = _stack.last
         
     | 
| 
       26 
     | 
    
         
            -
                sh = @i2t[_stack[_stack.size-2][0]]
         
     | 
| 
       27 
     | 
    
         
            -
                la = @i2t[_lookahead[0]]
         
     | 
| 
       28 
     | 
    
         
            -
                warn "LA:<#{la}> shift:<#{sh}> state:#{st0}->#{st}"
         
     | 
| 
       29 
     | 
    
         
            -
                warn "LINE:<#{@basis.line}>"
         
     | 
| 
       30 
     | 
    
         
            -
                warn dumpstack(_stack) + "\n"
         
     | 
| 
       31 
     | 
    
         
            -
              end
         
     | 
| 
       32 
     | 
    
         
            -
              def after_reduce
         
     | 
| 
       33 
     | 
    
         
            -
                st = _stack.last
         
     | 
| 
       34 
     | 
    
         
            -
                re = @i2nt[_stack[_stack.size-2][0]]
         
     | 
| 
       35 
     | 
    
         
            -
                la = @i2t[_lookahead[0]]
         
     | 
| 
       36 
     | 
    
         
            -
                warn "LA:<#{la}> reduce:<#{re}> state: ->#{st}"
         
     | 
| 
       37 
     | 
    
         
            -
                warn "LINE:<#{@basis.line}>"
         
     | 
| 
       38 
     | 
    
         
            -
                warn dumpstack(_stack) + "\n"
         
     | 
| 
       39 
     | 
    
         
            -
              end
         
     | 
| 
       40 
     | 
    
         
            -
              def after_accept
         
     | 
| 
       41 
     | 
    
         
            -
                warn "acc."
         
     | 
| 
       42 
     | 
    
         
            -
              end
         
     | 
| 
       43 
     | 
    
         
            -
              def after_error
         
     | 
| 
       44 
     | 
    
         
            -
                st = _stack.last
         
     | 
| 
       45 
     | 
    
         
            -
                re = @i2nt[_stack[_stack.size-2][0]]
         
     | 
| 
       46 
     | 
    
         
            -
                la = @i2t[_lookahead[0]]
         
     | 
| 
       47 
     | 
    
         
            -
                warn "LA:<#{la}> last_state:#{st}"
         
     | 
| 
       48 
     | 
    
         
            -
                warn "LINE:<#{@basis.line}>"
         
     | 
| 
       49 
     | 
    
         
            -
                warn dumpstack(_stack) + "\n"
         
     | 
| 
       50 
     | 
    
         
            -
              end
         
     | 
| 
       51 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,23 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            <%
         
     | 
| 
       2 
     | 
    
         
            -
              target_name = g_parser.target_name
         
     | 
| 
       3 
     | 
    
         
            -
              optouter = (@optouter + g_parser.optouter).join
         
     | 
| 
       4 
     | 
    
         
            -
              optmain  = @optmain.join
         
     | 
| 
       5 
     | 
    
         
            -
              req      = @req.uniq
         
     | 
| 
       6 
     | 
    
         
            -
              mixin    = @mixin
         
     | 
| 
       7 
     | 
    
         
            -
            %>
         
     | 
| 
       8 
     | 
    
         
            -
            begin; require 'rubygems'; rescue Exception; end
         
     | 
| 
       9 
     | 
    
         
            -
            require 'depager/parser.rb'
         
     | 
| 
       10 
     | 
    
         
            -
            <%req.each do |i|%>require <%=i%>
         
     | 
| 
       11 
     | 
    
         
            -
            <%end%>
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
            module Depager::DecoratorUtils; end
         
     | 
| 
       14 
     | 
    
         
            -
            module D4<%= target_name %> ; end
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
            ### Outer Code
         
     | 
| 
       17 
     | 
    
         
            -
            <%= optouter %>
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
            ### main
         
     | 
| 
       20 
     | 
    
         
            -
            if __FILE__ == $0
         
     | 
| 
       21 
     | 
    
         
            -
            ### Main Code
         
     | 
| 
       22 
     | 
    
         
            -
            <%= optmain %>
         
     | 
| 
       23 
     | 
    
         
            -
            end
         
     |