depager 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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