gd-racc 1.4.11

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 (103) hide show
  1. checksums.yaml +7 -0
  2. data/.gemtest +0 -0
  3. data/COPYING +515 -0
  4. data/ChangeLog +846 -0
  5. data/DEPENDS +4 -0
  6. data/Manifest.txt +100 -0
  7. data/README.ja.rdoc +96 -0
  8. data/README.rdoc +86 -0
  9. data/Rakefile +54 -0
  10. data/TODO +5 -0
  11. data/bin/racc +308 -0
  12. data/bin/racc2y +195 -0
  13. data/bin/y2racc +339 -0
  14. data/ext/racc/MANIFEST +4 -0
  15. data/ext/racc/cparse.c +828 -0
  16. data/ext/racc/depend +1 -0
  17. data/ext/racc/extconf.rb +7 -0
  18. data/fastcache/extconf.rb +2 -0
  19. data/fastcache/fastcache.c +185 -0
  20. data/lib/racc.rb +6 -0
  21. data/lib/racc/compat.rb +32 -0
  22. data/lib/racc/debugflags.rb +59 -0
  23. data/lib/racc/exception.rb +15 -0
  24. data/lib/racc/grammar.rb +1115 -0
  25. data/lib/racc/grammarfileparser.rb +559 -0
  26. data/lib/racc/info.rb +16 -0
  27. data/lib/racc/iset.rb +91 -0
  28. data/lib/racc/logfilegenerator.rb +211 -0
  29. data/lib/racc/parser-text.rb +631 -0
  30. data/lib/racc/parser.rb +626 -0
  31. data/lib/racc/parserfilegenerator.rb +512 -0
  32. data/lib/racc/pre-setup +13 -0
  33. data/lib/racc/sourcetext.rb +34 -0
  34. data/lib/racc/state.rb +971 -0
  35. data/lib/racc/statetransitiontable.rb +316 -0
  36. data/lib/racc/static.rb +5 -0
  37. data/misc/dist.sh +31 -0
  38. data/rdoc/en/NEWS.en.rdoc +282 -0
  39. data/rdoc/en/grammar.en.rdoc +230 -0
  40. data/rdoc/ja/NEWS.ja.rdoc +307 -0
  41. data/rdoc/ja/command.ja.html +94 -0
  42. data/rdoc/ja/debug.ja.rdoc +36 -0
  43. data/rdoc/ja/grammar.ja.rdoc +348 -0
  44. data/rdoc/ja/index.ja.html +10 -0
  45. data/rdoc/ja/parser.ja.rdoc +125 -0
  46. data/rdoc/ja/usage.ja.html +414 -0
  47. data/sample/array.y +67 -0
  48. data/sample/array2.y +59 -0
  49. data/sample/calc-ja.y +66 -0
  50. data/sample/calc.y +65 -0
  51. data/sample/conflict.y +15 -0
  52. data/sample/hash.y +60 -0
  53. data/sample/lalr.y +17 -0
  54. data/sample/lists.y +57 -0
  55. data/sample/syntax.y +46 -0
  56. data/sample/yyerr.y +46 -0
  57. data/setup.rb +1587 -0
  58. data/tasks/doc.rb +12 -0
  59. data/tasks/email.rb +55 -0
  60. data/test/assets/chk.y +126 -0
  61. data/test/assets/conf.y +16 -0
  62. data/test/assets/digraph.y +29 -0
  63. data/test/assets/echk.y +118 -0
  64. data/test/assets/err.y +60 -0
  65. data/test/assets/expect.y +7 -0
  66. data/test/assets/firstline.y +4 -0
  67. data/test/assets/ichk.y +102 -0
  68. data/test/assets/intp.y +546 -0
  69. data/test/assets/mailp.y +437 -0
  70. data/test/assets/newsyn.y +25 -0
  71. data/test/assets/noend.y +4 -0
  72. data/test/assets/nonass.y +41 -0
  73. data/test/assets/normal.y +27 -0
  74. data/test/assets/norule.y +4 -0
  75. data/test/assets/nullbug1.y +25 -0
  76. data/test/assets/nullbug2.y +15 -0
  77. data/test/assets/opt.y +123 -0
  78. data/test/assets/percent.y +35 -0
  79. data/test/assets/recv.y +97 -0
  80. data/test/assets/rrconf.y +14 -0
  81. data/test/assets/scan.y +72 -0
  82. data/test/assets/syntax.y +50 -0
  83. data/test/assets/unterm.y +5 -0
  84. data/test/assets/useless.y +12 -0
  85. data/test/assets/yyerr.y +46 -0
  86. data/test/bench.y +36 -0
  87. data/test/helper.rb +87 -0
  88. data/test/infini.y +8 -0
  89. data/test/scandata/brace +7 -0
  90. data/test/scandata/gvar +1 -0
  91. data/test/scandata/normal +4 -0
  92. data/test/scandata/percent +18 -0
  93. data/test/scandata/slash +10 -0
  94. data/test/src.intp +34 -0
  95. data/test/start.y +20 -0
  96. data/test/test_chk_y.rb +51 -0
  97. data/test/test_grammar_file_parser.rb +15 -0
  98. data/test/test_racc_command.rb +155 -0
  99. data/test/test_scan_y.rb +51 -0
  100. data/test/testscanner.rb +51 -0
  101. data/web/racc.en.rhtml +42 -0
  102. data/web/racc.ja.rhtml +51 -0
  103. metadata +212 -0
@@ -0,0 +1,51 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
2
+
3
+ module Racc
4
+ class TestScanY < TestCase
5
+ def setup
6
+ file = File.join(ASSET_DIR, 'scan.y')
7
+ @debug_flags = Racc::DebugFlags.parse_option_string('o')
8
+ parser = Racc::GrammarFileParser.new(@debug_flags)
9
+ @result = parser.parse(File.read(file), File.basename(file))
10
+ @states = Racc::States.new(@result.grammar).nfa
11
+ @states.dfa
12
+ end
13
+
14
+ def test_compile
15
+ generator = Racc::ParserFileGenerator.new(@states, @result.params.dup)
16
+
17
+ # it generates valid ruby
18
+ assert Module.new {
19
+ self.class_eval(generator.generate_parser)
20
+ }
21
+
22
+ grammar = @states.grammar
23
+
24
+ assert_equal 0, @states.n_srconflicts
25
+ assert_equal 0, @states.n_rrconflicts
26
+ assert_equal 0, grammar.n_useless_nonterminals
27
+ assert_equal 0, grammar.n_useless_rules
28
+ assert_nil grammar.n_expected_srconflicts
29
+ end
30
+
31
+ def test_compile_line_convert
32
+ params = @result.params.dup
33
+ params.convert_line_all = true
34
+
35
+ generator = Racc::ParserFileGenerator.new(@states, @result.params.dup)
36
+
37
+ # it generates valid ruby
38
+ assert Module.new {
39
+ self.class_eval(generator.generate_parser)
40
+ }
41
+
42
+ grammar = @states.grammar
43
+
44
+ assert_equal 0, @states.n_srconflicts
45
+ assert_equal 0, @states.n_rrconflicts
46
+ assert_equal 0, grammar.n_useless_nonterminals
47
+ assert_equal 0, grammar.n_useless_rules
48
+ assert_nil grammar.n_expected_srconflicts
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,51 @@
1
+ #
2
+ # racc scanner tester
3
+ #
4
+
5
+ require 'racc/raccs'
6
+
7
+
8
+ class ScanError < StandardError; end
9
+
10
+ def testdata( dir, argv )
11
+ if argv.empty? then
12
+ Dir.glob( dir + '/*' ) -
13
+ Dir.glob( dir + '/*.swp' ) -
14
+ [ dir + '/CVS' ]
15
+ else
16
+ argv.collect {|i| dir + '/' + i }
17
+ end
18
+ end
19
+
20
+
21
+ if ARGV.delete '--print' then
22
+ $raccs_print_type = true
23
+ printonly = true
24
+ else
25
+ printonly = false
26
+ end
27
+
28
+ testdata( File.dirname($0) + '/scandata', ARGV ).each do |file|
29
+ $stderr.print File.basename(file) + ': '
30
+ begin
31
+ ok = File.read(file)
32
+ s = Racc::GrammarFileScanner.new( ok )
33
+ sym, (val, lineno) = s.scan
34
+ if printonly then
35
+ $stderr.puts
36
+ $stderr.puts val
37
+ next
38
+ end
39
+
40
+ val = '{' + val + "}\n"
41
+ sym == :ACTION or raise ScanError, 'is not action!'
42
+ val == ok or raise ScanError, "\n>>>\n#{ok}----\n#{val}<<<"
43
+
44
+ $stderr.puts 'ok'
45
+ rescue => err
46
+ $stderr.puts 'fail (' + err.type.to_s + ')'
47
+ $stderr.puts err.message
48
+ $stderr.puts err.backtrace
49
+ $stderr.puts
50
+ end
51
+ end
data/web/racc.en.rhtml ADDED
@@ -0,0 +1,42 @@
1
+ % require 'makefile'
2
+ % version = Makefile.get_parameter('Makefile', 'version')
3
+ <h1>Racc</h1>
4
+ <p>
5
+ $Id$
6
+ </p>
7
+
8
+ <table summary="package descriptor">
9
+ <tr><th>Version</th><td><%= version %></td></tr>
10
+ <tr><th>Type</th><td>Parser Generator</td></tr>
11
+ <tr><th>Format</th><td>Ruby script + Ruby extention</td></tr>
12
+ <tr><th>Requirement</th><td>ruby (&gt;=1.6)</td></tr>
13
+ <tr><th>License</th><td>LGPL</td></tr>
14
+ </table>
15
+ <p>
16
+ -- <a href="/archive/racc/racc-<%= version %>-all.tar.gz">Download (.tar.gz)</a>
17
+ -- <a href="/archive/racc/">Old Versions</a>
18
+ -- <a href="doc/">Online Manual</a>
19
+ --
20
+ </p>
21
+
22
+ <p>
23
+ Racc (Ruby yACC) is a LALR(1) parser generator for Ruby.
24
+ Version 1.4.x is stable release.
25
+ </p>
26
+ <p>
27
+ Parsers generated by Racc requires "Racc Runtime Module".
28
+ Ruby 1.8.x comes with this runtime.
29
+ If you want to run your parsers with ruby 1.6.x,
30
+ use "racc -E" command. For details, see <a href="doc/">online manual</a>.
31
+ </p>
32
+
33
+ <h2>Anonymous CVS</h2>
34
+ <p>
35
+ You can true latest version of Racc via anonymous CVS.
36
+ To check out working copy, type:
37
+ </p>
38
+ <pre>
39
+ $ cvs -d :pserver:anonymous@cvs.loveruby.net:/src login
40
+ Password: (Just hit [Enter])
41
+ $ cvs -d :pserver:anonymous@cvs.loveruby.net:/src co racc
42
+ </pre>
data/web/racc.ja.rhtml ADDED
@@ -0,0 +1,51 @@
1
+ % require 'makefile'
2
+ % version = Makefile.get_parameter('Makefile', 'version')
3
+ <h1>Racc</h1>
4
+ <p>
5
+ $Id$
6
+ </p>
7
+ <table summary="package descriptor">
8
+ <tr><th>�ǿ���</th><td><%= version %></td></tr>
9
+ <tr><th>����</th><td>parser generator</td></tr>
10
+ <tr><th>����</th><td>ruby script, ruby extention</td></tr>
11
+ <tr><th>ɬ�״Ķ�</th><td>ruby (&gt;=1.6)</td></tr>
12
+ <tr><th>���۾��</th><td>LGPL</td></tr>
13
+ </table>
14
+ <ul>
15
+ <li><a href="/archive/racc/racc-<%= version %>-all.tar.gz">�����������</a></li>
16
+ <li><a href="/archive/racc/">��С������ꥹ��</a></li>
17
+ <li><a href="doc/">����饤��ޥ˥奢��</a></li>
18
+ </ul>
19
+ </p>
20
+ <p>
21
+ Ruby �Ѥ� LALR(1) �ѡ��������ͥ졼���Ǥ���
22
+ ���������ѡ����Ϥ���ʤ�˹�®��ư��ޤ���
23
+ </p>
24
+ <p>
25
+ Racc �����������ѡ�����ư����˥�󥿥���⥸�塼�뤬ɬ�פǤ���
26
+ Ruby 1.8 �ˤϤ��Υ�󥿥��ब�ǽ餫��ź�դ���Ƥ���Τ�
27
+ ����ͤ��ʤ�������פǤ�����Ruby 1.6 �������оݤˤ���Ȥ���
28
+ racc -E �ǥѡ�������������ɬ�פ�����ޤ���
29
+ </p>
30
+ <p>
31
+ �ʤ���Racc 1.4.x �Υ�󥿥���� Ruby 1.8 ź�դ� Racc ��󥿥���ϡ�
32
+ �����������ɾ�Ǥ���̯�˰㤤������ޤ����������˸ߴ���������ޤ���
33
+ </p>
34
+
35
+ <h2>����</h2>
36
+ <p>
37
+ �⤦����Ū����ʬ�ϸϤ�Ƥ���Ϥ��Ǥ���
38
+ TODO �Ϥޤ������Ĥ�����ޤ�������������¾�ˤ��äƤ�Τ�
39
+ ��ʬ���礭���ѹ�����Ĥ��Ϥ���ޤ���
40
+ </p>
41
+
42
+ <h2>CVS ��ݥ��ȥ�</h2>
43
+ <p>
44
+ CVS ��Ȥ��� Racc �ο��κǿ��Ǥ�����Ǥ��ޤ���
45
+ ���ޥ�ɥ饤��Ǽ��Τ褦���ǤäƤ���������
46
+ </p>
47
+ <pre>
48
+ $ cvs -d :pserver:anonymous@cvs.loveruby.net:/src login
49
+ Password: (������Enter���Ǥ�)
50
+ $ cvs -d :pserver:anonymous@cvs.loveruby.net:/src co racc
51
+ </pre>
metadata ADDED
@@ -0,0 +1,212 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gd-racc
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.4.11
5
+ platform: ruby
6
+ authors:
7
+ - Aaron Patterson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2014-01-07 00:00:00 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rdoc
16
+ prerelease: false
17
+ requirement: &id001 !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: "4.0"
22
+ type: :development
23
+ version_requirements: *id001
24
+ - !ruby/object:Gem::Dependency
25
+ name: rake-compiler
26
+ prerelease: false
27
+ requirement: &id002 !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 0.4.1
32
+ type: :development
33
+ version_requirements: *id002
34
+ - !ruby/object:Gem::Dependency
35
+ name: minitest
36
+ prerelease: false
37
+ requirement: &id003 !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ~>
40
+ - !ruby/object:Gem::Version
41
+ version: "4.7"
42
+ type: :development
43
+ version_requirements: *id003
44
+ - !ruby/object:Gem::Dependency
45
+ name: hoe
46
+ prerelease: false
47
+ requirement: &id004 !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ~>
50
+ - !ruby/object:Gem::Version
51
+ version: "3.7"
52
+ type: :development
53
+ version_requirements: *id004
54
+ description: |-
55
+ Racc is a LALR(1) parser generator.
56
+ It is written in Ruby itself, and generates Ruby program.
57
+
58
+ NOTE: Ruby 1.8.x comes with Racc runtime module. You
59
+ can run your parsers generated by racc 1.4.x out of the
60
+ box.
61
+ email:
62
+ - aaron@tenderlovemaking.com
63
+ executables:
64
+ - racc
65
+ - racc2y
66
+ - y2racc
67
+ extensions:
68
+ - ext/racc/extconf.rb
69
+ extra_rdoc_files:
70
+ - Manifest.txt
71
+ - README.ja.rdoc
72
+ - README.rdoc
73
+ - rdoc/en/NEWS.en.rdoc
74
+ - rdoc/en/grammar.en.rdoc
75
+ - rdoc/ja/NEWS.ja.rdoc
76
+ - rdoc/ja/debug.ja.rdoc
77
+ - rdoc/ja/grammar.ja.rdoc
78
+ - rdoc/ja/parser.ja.rdoc
79
+ files:
80
+ - COPYING
81
+ - ChangeLog
82
+ - DEPENDS
83
+ - Manifest.txt
84
+ - README.ja.rdoc
85
+ - README.rdoc
86
+ - Rakefile
87
+ - TODO
88
+ - bin/racc
89
+ - bin/racc2y
90
+ - bin/y2racc
91
+ - ext/racc/MANIFEST
92
+ - ext/racc/cparse.c
93
+ - ext/racc/depend
94
+ - ext/racc/extconf.rb
95
+ - fastcache/extconf.rb
96
+ - fastcache/fastcache.c
97
+ - lib/racc.rb
98
+ - lib/racc/compat.rb
99
+ - lib/racc/debugflags.rb
100
+ - lib/racc/exception.rb
101
+ - lib/racc/grammar.rb
102
+ - lib/racc/grammarfileparser.rb
103
+ - lib/racc/info.rb
104
+ - lib/racc/iset.rb
105
+ - lib/racc/logfilegenerator.rb
106
+ - lib/racc/parser-text.rb
107
+ - lib/racc/parser.rb
108
+ - lib/racc/parserfilegenerator.rb
109
+ - lib/racc/pre-setup
110
+ - lib/racc/sourcetext.rb
111
+ - lib/racc/state.rb
112
+ - lib/racc/statetransitiontable.rb
113
+ - lib/racc/static.rb
114
+ - misc/dist.sh
115
+ - rdoc/en/NEWS.en.rdoc
116
+ - rdoc/en/grammar.en.rdoc
117
+ - rdoc/ja/NEWS.ja.rdoc
118
+ - rdoc/ja/command.ja.html
119
+ - rdoc/ja/debug.ja.rdoc
120
+ - rdoc/ja/grammar.ja.rdoc
121
+ - rdoc/ja/index.ja.html
122
+ - rdoc/ja/parser.ja.rdoc
123
+ - rdoc/ja/usage.ja.html
124
+ - sample/array.y
125
+ - sample/array2.y
126
+ - sample/calc-ja.y
127
+ - sample/calc.y
128
+ - sample/conflict.y
129
+ - sample/hash.y
130
+ - sample/lalr.y
131
+ - sample/lists.y
132
+ - sample/syntax.y
133
+ - sample/yyerr.y
134
+ - setup.rb
135
+ - tasks/doc.rb
136
+ - tasks/email.rb
137
+ - test/assets/chk.y
138
+ - test/assets/conf.y
139
+ - test/assets/digraph.y
140
+ - test/assets/echk.y
141
+ - test/assets/err.y
142
+ - test/assets/expect.y
143
+ - test/assets/firstline.y
144
+ - test/assets/ichk.y
145
+ - test/assets/intp.y
146
+ - test/assets/mailp.y
147
+ - test/assets/newsyn.y
148
+ - test/assets/noend.y
149
+ - test/assets/nonass.y
150
+ - test/assets/normal.y
151
+ - test/assets/norule.y
152
+ - test/assets/nullbug1.y
153
+ - test/assets/nullbug2.y
154
+ - test/assets/opt.y
155
+ - test/assets/percent.y
156
+ - test/assets/recv.y
157
+ - test/assets/rrconf.y
158
+ - test/assets/scan.y
159
+ - test/assets/syntax.y
160
+ - test/assets/unterm.y
161
+ - test/assets/useless.y
162
+ - test/assets/yyerr.y
163
+ - test/bench.y
164
+ - test/helper.rb
165
+ - test/infini.y
166
+ - test/scandata/brace
167
+ - test/scandata/gvar
168
+ - test/scandata/normal
169
+ - test/scandata/percent
170
+ - test/scandata/slash
171
+ - test/src.intp
172
+ - test/start.y
173
+ - test/test_chk_y.rb
174
+ - test/test_grammar_file_parser.rb
175
+ - test/test_racc_command.rb
176
+ - test/test_scan_y.rb
177
+ - test/testscanner.rb
178
+ - web/racc.en.rhtml
179
+ - web/racc.ja.rhtml
180
+ - .gemtest
181
+ homepage: http://i.loveruby.net/en/projects/racc/
182
+ licenses:
183
+ - MIT
184
+ metadata: {}
185
+
186
+ post_install_message:
187
+ rdoc_options:
188
+ - --main
189
+ - README.rdoc
190
+ require_paths:
191
+ - lib
192
+ required_ruby_version: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - &id005
195
+ - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: "0"
198
+ required_rubygems_version: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - *id005
201
+ requirements: []
202
+
203
+ rubyforge_project: gd-racc
204
+ rubygems_version: 2.1.10
205
+ signing_key:
206
+ specification_version: 4
207
+ summary: Racc is a LALR(1) parser generator
208
+ test_files:
209
+ - test/test_chk_y.rb
210
+ - test/test_grammar_file_parser.rb
211
+ - test/test_racc_command.rb
212
+ - test/test_scan_y.rb