depager 0.1.9 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. data/ChangeLog +4 -0
  2. data/bin/depager +1 -0
  3. data/data/depager/misc/depager-mode.el +35 -24
  4. data/data/depager/pre-setup.rb +3 -0
  5. data/examples/Rakefile +36 -0
  6. data/examples/c89/c89.dr +496 -0
  7. data/examples/c89/c89.tab.rb +2197 -0
  8. data/examples/c89/test.c89 +10 -0
  9. data/{data/depager/sample → examples}/extension/paction.dr +0 -0
  10. data/{data/depager/sample → examples}/extension/pactiontest.dr +0 -0
  11. data/{data/depager/sample → examples}/pl0d/pl0ds.dr +0 -0
  12. data/examples/pl0d/pl0ds.tab.rb +1702 -0
  13. data/{data/depager/sample/pl0d/pl0test.pl0 → examples/pl0d/test.pl0ds} +0 -0
  14. data/{data/depager/sample → examples}/sample_calc/calc.action.dr +0 -0
  15. data/examples/sample_calc/calc.action.tab.rb +283 -0
  16. data/{data/depager/sample → examples}/sample_calc/calc.astdf.dr +0 -0
  17. data/examples/sample_calc/calc.astdf.tab.rb +476 -0
  18. data/{data/depager/sample → examples}/sample_calc/calc.astl.action.dr +0 -0
  19. data/examples/sample_calc/calc.astl.action.tab.rb +593 -0
  20. data/{data/depager/sample → examples}/sample_calc/calc.astl.dr +0 -0
  21. data/examples/sample_calc/calc.astl.tab.rb +501 -0
  22. data/{data/depager/sample → examples}/sample_calc/calc.atree.dr +0 -0
  23. data/examples/sample_calc/calc.atree.tab.rb +277 -0
  24. data/{data/depager/sample → examples}/sample_calc/calc.cst.dr +0 -0
  25. data/examples/sample_calc/calc.cst.tab.rb +478 -0
  26. data/{data/depager/sample → examples}/sample_calc/calc.dr +0 -0
  27. data/{data/depager/sample → examples}/sample_calc/calc.lex.dr +0 -0
  28. data/examples/sample_calc/calc.lex.tab.rb +192 -0
  29. data/{data/depager/sample → examples}/sample_calc/calc.nvaction.dr +0 -0
  30. data/examples/sample_calc/calc.nvaction.tab.rb +291 -0
  31. data/examples/sample_calc/calc.tab.rb +183 -0
  32. data/{data/depager/sample → examples}/sample_calc/calc_prec.nvaction.dr +0 -0
  33. data/examples/sample_calc/calc_prec.nvaction.tab.rb +257 -0
  34. data/examples/sample_calc/test.calc +1 -0
  35. data/{data/depager/sample/slex_test/slextest1.dr → examples/slex_test/divreg.slex.dr} +3 -11
  36. data/examples/slex_test/divreg.slex.tab.rb +227 -0
  37. data/{data/depager/sample/slex_test/slextest2.dr → examples/slex_test/ljoin.slex.dr} +10 -7
  38. data/examples/slex_test/ljoin.slex.tab.rb +277 -0
  39. data/examples/slex_test/test.divreg +1 -0
  40. data/examples/slex_test/test.ljoin +3 -0
  41. data/lib/depager.rb +194 -127
  42. data/lib/depager/Rakefile +8 -4
  43. data/lib/depager/ast_base.dr +3 -3
  44. data/lib/depager/ast_base.rb +197 -144
  45. data/lib/depager/atree.rb +55 -36
  46. data/lib/depager/cst.dr +6 -4
  47. data/lib/depager/cst.rb +69 -49
  48. data/lib/depager/grammar.rb +136 -0
  49. data/lib/depager/lex.dr +22 -8
  50. data/lib/depager/lex.rb +94 -53
  51. data/lib/depager/lr.rb +101 -167
  52. data/lib/depager/parse_action.rb +1 -1
  53. data/lib/depager/parser.rb +34 -7
  54. data/lib/depager/slex.dr +76 -36
  55. data/lib/depager/slex.rb +345 -151
  56. data/lib/depager/srp.rb +3 -2
  57. data/lib/depager/template/extension_lalr_slave.erb +1 -1
  58. data/lib/depager/template/single_lalr_parser.erb +1 -1
  59. data/lib/depager/utils.rb +2 -1
  60. data/lib/depager/version.rb +2 -2
  61. metadata +42 -28
  62. data/Manifest.txt +0 -52
  63. data/lib/depager/psrtmpl.rb +0 -33
data/lib/depager/srp.rb CHANGED
@@ -1,17 +1,18 @@
1
1
  class ShiftReducePrinter < Depager::AdvancedParser
2
2
  def initialize inside
3
3
  super
4
+ @i2nt, @i2t = @basis.i2nt, @basis.i2t
4
5
  end
5
6
  def dumpstack stack
6
7
  r = ''
7
- _stack.each_with_index do |v,x|
8
+ _stack.each_with_index do |v,x|
8
9
  r += if x % 2 == 0
9
10
  "(#{v}) "
10
11
  else
11
12
  if v[1] == :NT
12
13
  "#{@i2nt[v[0]]}:#{v[1..-1].inspect} "
13
14
  elsif @i2t[v[0]].class == String
14
- "'#{@i2t[v[0]]}' "
15
+ "'#{@i2t[v[0]]}':#{v[1..-1].inspect}"
15
16
  else
16
17
  "#{@i2t[v[0]]}:#{v[1..-1].inspect} "
17
18
  end
@@ -25,7 +25,7 @@
25
25
  module D4<%= target_name %> #:nodoc:all
26
26
  end
27
27
 
28
- class <%= target_name %> < Basis #:nodoc:all
28
+ class <%= target_name %> < Depager::LALR::Basis #:nodoc:all
29
29
  include Depager::ExtensionUtils
30
30
  <% mixin.each do |i| %>
31
31
  include <%=i%><%end%>
@@ -27,7 +27,7 @@ require 'depager/parser.rb'
27
27
  module D4<%= target_name %>
28
28
  end
29
29
 
30
- class <%= target_name %> < Depager::Basis
30
+ class <%= target_name %> < Depager::LALR::Basis
31
31
  <% mixin.each do |i| %>
32
32
  include <%=i%><%end%>
33
33
 
data/lib/depager/utils.rb CHANGED
@@ -71,8 +71,9 @@ module Depager
71
71
  def gen_action_decorator_code bname, dname, on_reduce, optouter='', mixin=[]
72
72
  mixin_code = mixin.map{|i| " include #{i}\n"}
73
73
  on_reduce_code = on_reduce.map{|i| " #{i||'nil'},\n"}
74
+ ans = @g_parser.parsing_method
74
75
  code = %{
75
- class D4#{bname}::#{dname} < Depager::Action #:nodoc:all
76
+ class D4#{bname}::#{dname} < #{ans}::Action #:nodoc:all
76
77
  include Depager::DecoratorUtils
77
78
  #{mixin_code}
78
79
  on_reduce = [
@@ -1,8 +1,8 @@
1
1
  module Depager #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
- MINOR = 1
5
- TINY = 9
4
+ MINOR = 2
5
+ TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: depager
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.9
7
- date: 2007-05-28 00:00:00 +09:00
6
+ version: 0.2.0
7
+ date: 2007-08-20 00:00:00 +09:00
8
8
  summary: A self extensible parser generator.
9
9
  require_paths:
10
10
  - lib
@@ -30,27 +30,47 @@ authors:
30
30
  - maita
31
31
  files:
32
32
  - ChangeLog
33
- - Manifest.txt
34
33
  - README.en
35
34
  - README.ja
36
35
  - bin/depager
37
36
  - data/depager/misc/depager-mode.el
38
- - data/depager/sample/extension/paction.dr
39
- - data/depager/sample/extension/pactiontest.dr
40
- - data/depager/sample/pl0d/pl0ds.dr
41
- - data/depager/sample/pl0d/pl0test.pl0
42
- - data/depager/sample/sample_calc/calc.action.dr
43
- - data/depager/sample/sample_calc/calc.astdf.dr
44
- - data/depager/sample/sample_calc/calc.astl.action.dr
45
- - data/depager/sample/sample_calc/calc.astl.dr
46
- - data/depager/sample/sample_calc/calc.atree.dr
47
- - data/depager/sample/sample_calc/calc.cst.dr
48
- - data/depager/sample/sample_calc/calc.dr
49
- - data/depager/sample/sample_calc/calc.lex.dr
50
- - data/depager/sample/sample_calc/calc.nvaction.dr
51
- - data/depager/sample/sample_calc/calc_prec.nvaction.dr
52
- - data/depager/sample/slex_test/slextest1.dr
53
- - data/depager/sample/slex_test/slextest2.dr
37
+ - data/depager/pre-setup.rb
38
+ - examples/Rakefile
39
+ - examples/c89/c89.dr
40
+ - examples/c89/c89.tab.rb
41
+ - examples/c89/test.c89
42
+ - examples/extension/paction.dr
43
+ - examples/extension/pactiontest.dr
44
+ - examples/pl0d/pl0ds.dr
45
+ - examples/pl0d/pl0ds.tab.rb
46
+ - examples/pl0d/test.pl0ds
47
+ - examples/sample_calc/calc.action.dr
48
+ - examples/sample_calc/calc.action.tab.rb
49
+ - examples/sample_calc/calc.astdf.dr
50
+ - examples/sample_calc/calc.astdf.tab.rb
51
+ - examples/sample_calc/calc.astl.action.dr
52
+ - examples/sample_calc/calc.astl.action.tab.rb
53
+ - examples/sample_calc/calc.astl.dr
54
+ - examples/sample_calc/calc.astl.tab.rb
55
+ - examples/sample_calc/calc.atree.dr
56
+ - examples/sample_calc/calc.atree.tab.rb
57
+ - examples/sample_calc/calc.cst.dr
58
+ - examples/sample_calc/calc.cst.tab.rb
59
+ - examples/sample_calc/calc.dr
60
+ - examples/sample_calc/calc.lex.dr
61
+ - examples/sample_calc/calc.lex.tab.rb
62
+ - examples/sample_calc/calc.nvaction.dr
63
+ - examples/sample_calc/calc.nvaction.tab.rb
64
+ - examples/sample_calc/calc.tab.rb
65
+ - examples/sample_calc/calc_prec.nvaction.dr
66
+ - examples/sample_calc/calc_prec.nvaction.tab.rb
67
+ - examples/sample_calc/test.calc
68
+ - examples/slex_test/divreg.slex.dr
69
+ - examples/slex_test/divreg.slex.tab.rb
70
+ - examples/slex_test/ljoin.slex.dr
71
+ - examples/slex_test/ljoin.slex.tab.rb
72
+ - examples/slex_test/test.divreg
73
+ - examples/slex_test/test.ljoin
54
74
  - lib/depager.rb
55
75
  - lib/depager/Rakefile
56
76
  - lib/depager/action.rb
@@ -62,13 +82,13 @@ files:
62
82
  - lib/depager/atree.rb
63
83
  - lib/depager/cst.dr
64
84
  - lib/depager/cst.rb
85
+ - lib/depager/grammar.rb
65
86
  - lib/depager/lex.dr
66
87
  - lib/depager/lex.rb
67
88
  - lib/depager/lr.rb
68
89
  - lib/depager/nvaction.rb
69
90
  - lib/depager/parse_action.rb
70
91
  - lib/depager/parser.rb
71
- - lib/depager/psrtmpl.rb
72
92
  - lib/depager/slex.dr
73
93
  - lib/depager/slex.rb
74
94
  - lib/depager/srp.rb
@@ -83,14 +103,8 @@ files:
83
103
  - setup.rb
84
104
  test_files: []
85
105
 
86
- rdoc_options:
87
- - --quiet
88
- - --title
89
- - depager documentation
90
- - --opname
91
- - index.html
92
- - --line-numbers
93
- - --inline-source
106
+ rdoc_options: []
107
+
94
108
  extra_rdoc_files: []
95
109
 
96
110
  executables:
data/Manifest.txt DELETED
@@ -1,52 +0,0 @@
1
- ChangeLog
2
- Manifest.txt
3
- README.en
4
- README.ja
5
- bin/depager
6
- data/depager/misc/depager-mode.el
7
- data/depager/sample/extension/paction.dr
8
- data/depager/sample/extension/pactiontest.dr
9
- data/depager/sample/pl0d/pl0ds.dr
10
- data/depager/sample/pl0d/pl0test.pl0
11
- data/depager/sample/sample_calc/calc.action.dr
12
- data/depager/sample/sample_calc/calc.astdf.dr
13
- data/depager/sample/sample_calc/calc.astl.action.dr
14
- data/depager/sample/sample_calc/calc.astl.dr
15
- data/depager/sample/sample_calc/calc.atree.dr
16
- data/depager/sample/sample_calc/calc.cst.dr
17
- data/depager/sample/sample_calc/calc.dr
18
- data/depager/sample/sample_calc/calc.lex.dr
19
- data/depager/sample/sample_calc/calc.nvaction.dr
20
- data/depager/sample/sample_calc/calc_prec.nvaction.dr
21
- data/depager/sample/slex_test/slextest1.dr
22
- data/depager/sample/slex_test/slextest2.dr
23
- lib/depager.rb
24
- lib/depager/Rakefile
25
- lib/depager/action.rb
26
- lib/depager/ast_base.dr
27
- lib/depager/ast_base.rb
28
- lib/depager/astdf.rb
29
- lib/depager/astl.rb
30
- lib/depager/atree.dr
31
- lib/depager/atree.rb
32
- lib/depager/cst.dr
33
- lib/depager/cst.rb
34
- lib/depager/lex.dr
35
- lib/depager/lex.rb
36
- lib/depager/lr.rb
37
- lib/depager/nvaction.rb
38
- lib/depager/parse_action.rb
39
- lib/depager/parser.rb
40
- lib/depager/psrtmpl.rb
41
- lib/depager/slex.dr
42
- lib/depager/slex.rb
43
- lib/depager/srp.rb
44
- lib/depager/template/astdf.erbs
45
- lib/depager/template/astl.erbs
46
- lib/depager/template/extension_lalr_master.erb
47
- lib/depager/template/extension_lalr_slave.erb
48
- lib/depager/template/simple.erb
49
- lib/depager/template/single_lalr_parser.erb
50
- lib/depager/utils.rb
51
- lib/depager/version.rb
52
- setup.rb
@@ -1,33 +0,0 @@
1
- class ShiftReducePrinter < AdvancedParser
2
- def initialize inside
3
- super
4
- end
5
- def beforeAccept
6
- end
7
- def afterAccept
8
- end
9
- def beforeError
10
- end
11
- def afterError
12
- end
13
- def beforeShift
14
- end
15
- def afterShift
16
- super
17
- st = _stack.last
18
- sh = @i2t[_stack[_stack.size-2]]
19
- la = @i2t[_lookahead]
20
- warn "shift:<#{sh}> #{st} lookahead:<#{la}>"
21
- warn _stack
22
- end
23
- def beforeReduce
24
- end
25
- def afterReduce
26
- super
27
- st = _stack.last
28
- re = @i2nt[_stack[_stack.size-2]]
29
- la = @i2t[_lookahead]
30
- warn "reduse:<#{re}> #{st} lookahead:<#{la}>"
31
- warn _stack
32
- end
33
- end