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
|