racc 1.4.16-java → 1.6.0-java

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 (143) hide show
  1. checksums.yaml +4 -4
  2. data/README.ja.rdoc +0 -1
  3. data/README.rdoc +8 -11
  4. data/bin/racc +37 -23
  5. data/{rdoc → doc}/en/NEWS.en.rdoc +0 -0
  6. data/{rdoc → doc}/en/grammar.en.rdoc +27 -31
  7. data/doc/en/grammar2.en.rdoc +219 -0
  8. data/{rdoc → doc}/ja/NEWS.ja.rdoc +0 -0
  9. data/{rdoc → doc}/ja/command.ja.html +1 -1
  10. data/{rdoc → doc}/ja/debug.ja.rdoc +0 -0
  11. data/{rdoc → doc}/ja/grammar.ja.rdoc +0 -0
  12. data/{rdoc → doc}/ja/index.ja.html +0 -0
  13. data/{rdoc → doc}/ja/parser.ja.rdoc +0 -0
  14. data/{rdoc → doc}/ja/usage.ja.html +0 -0
  15. data/ext/racc/cparse/cparse.c +19 -17
  16. data/ext/racc/cparse/extconf.rb +2 -1
  17. data/lib/racc/compat.rb +5 -4
  18. data/lib/racc/cparse-jruby.jar +0 -0
  19. data/lib/racc/debugflags.rb +5 -4
  20. data/lib/racc/exception.rb +4 -1
  21. data/lib/racc/grammar.rb +22 -17
  22. data/lib/racc/grammarfileparser.rb +7 -6
  23. data/lib/racc/info.rb +5 -2
  24. data/lib/racc/iset.rb +5 -4
  25. data/lib/racc/logfilegenerator.rb +5 -4
  26. data/lib/racc/parser-text.rb +10 -16
  27. data/lib/racc/parser.rb +10 -16
  28. data/lib/racc/parserfilegenerator.rb +5 -47
  29. data/lib/racc/sourcetext.rb +5 -4
  30. data/lib/racc/state.rb +4 -1
  31. data/lib/racc/statetransitiontable.rb +9 -14
  32. metadata +18 -137
  33. data/DEPENDS +0 -4
  34. data/Manifest.txt +0 -146
  35. data/Rakefile +0 -58
  36. data/bin/racc2y +0 -195
  37. data/bin/y2racc +0 -339
  38. data/ext/racc/com/headius/racc/Cparse.java +0 -849
  39. data/fastcache/extconf.rb +0 -2
  40. data/fastcache/fastcache.c +0 -185
  41. data/lib/racc/pre-setup +0 -13
  42. data/misc/dist.sh +0 -31
  43. data/sample/array.y +0 -67
  44. data/sample/array2.y +0 -59
  45. data/sample/calc-ja.y +0 -66
  46. data/sample/calc.y +0 -65
  47. data/sample/conflict.y +0 -15
  48. data/sample/hash.y +0 -60
  49. data/sample/lalr.y +0 -17
  50. data/sample/lists.y +0 -57
  51. data/sample/syntax.y +0 -46
  52. data/sample/yyerr.y +0 -46
  53. data/setup.rb +0 -1587
  54. data/tasks/doc.rb +0 -12
  55. data/tasks/email.rb +0 -55
  56. data/test/assets/cadenza.y +0 -170
  57. data/test/assets/cast.y +0 -926
  58. data/test/assets/chk.y +0 -126
  59. data/test/assets/conf.y +0 -16
  60. data/test/assets/csspool.y +0 -729
  61. data/test/assets/digraph.y +0 -29
  62. data/test/assets/echk.y +0 -118
  63. data/test/assets/edtf.y +0 -583
  64. data/test/assets/err.y +0 -60
  65. data/test/assets/error_recovery.y +0 -35
  66. data/test/assets/expect.y +0 -7
  67. data/test/assets/firstline.y +0 -4
  68. data/test/assets/huia.y +0 -318
  69. data/test/assets/ichk.y +0 -102
  70. data/test/assets/intp.y +0 -546
  71. data/test/assets/journey.y +0 -47
  72. data/test/assets/liquor.y +0 -313
  73. data/test/assets/machete.y +0 -423
  74. data/test/assets/macruby.y +0 -2197
  75. data/test/assets/mailp.y +0 -437
  76. data/test/assets/mediacloth.y +0 -599
  77. data/test/assets/mof.y +0 -649
  78. data/test/assets/namae.y +0 -302
  79. data/test/assets/nasl.y +0 -626
  80. data/test/assets/newsyn.y +0 -25
  81. data/test/assets/noend.y +0 -4
  82. data/test/assets/nokogiri-css.y +0 -255
  83. data/test/assets/nonass.y +0 -41
  84. data/test/assets/normal.y +0 -27
  85. data/test/assets/norule.y +0 -4
  86. data/test/assets/nullbug1.y +0 -25
  87. data/test/assets/nullbug2.y +0 -15
  88. data/test/assets/opal.y +0 -1807
  89. data/test/assets/opt.y +0 -123
  90. data/test/assets/percent.y +0 -35
  91. data/test/assets/php_serialization.y +0 -98
  92. data/test/assets/recv.y +0 -97
  93. data/test/assets/riml.y +0 -665
  94. data/test/assets/rrconf.y +0 -14
  95. data/test/assets/ruby18.y +0 -1943
  96. data/test/assets/ruby19.y +0 -2174
  97. data/test/assets/ruby20.y +0 -2350
  98. data/test/assets/ruby21.y +0 -2359
  99. data/test/assets/ruby22.y +0 -2381
  100. data/test/assets/scan.y +0 -72
  101. data/test/assets/syntax.y +0 -50
  102. data/test/assets/tp_plus.y +0 -622
  103. data/test/assets/twowaysql.y +0 -278
  104. data/test/assets/unterm.y +0 -5
  105. data/test/assets/useless.y +0 -12
  106. data/test/assets/yyerr.y +0 -46
  107. data/test/bench.y +0 -36
  108. data/test/helper.rb +0 -115
  109. data/test/infini.y +0 -8
  110. data/test/regress/cadenza +0 -796
  111. data/test/regress/cast +0 -3425
  112. data/test/regress/csspool +0 -2318
  113. data/test/regress/edtf +0 -1794
  114. data/test/regress/huia +0 -1392
  115. data/test/regress/journey +0 -222
  116. data/test/regress/liquor +0 -885
  117. data/test/regress/machete +0 -833
  118. data/test/regress/mediacloth +0 -1463
  119. data/test/regress/mof +0 -1368
  120. data/test/regress/namae +0 -634
  121. data/test/regress/nasl +0 -2058
  122. data/test/regress/nokogiri-css +0 -836
  123. data/test/regress/opal +0 -6429
  124. data/test/regress/php_serialization +0 -336
  125. data/test/regress/riml +0 -3297
  126. data/test/regress/ruby18 +0 -6351
  127. data/test/regress/ruby22 +0 -7456
  128. data/test/regress/tp_plus +0 -1933
  129. data/test/regress/twowaysql +0 -556
  130. data/test/scandata/brace +0 -7
  131. data/test/scandata/gvar +0 -1
  132. data/test/scandata/normal +0 -4
  133. data/test/scandata/percent +0 -18
  134. data/test/scandata/slash +0 -10
  135. data/test/src.intp +0 -34
  136. data/test/start.y +0 -20
  137. data/test/test_chk_y.rb +0 -52
  138. data/test/test_grammar_file_parser.rb +0 -15
  139. data/test/test_racc_command.rb +0 -322
  140. data/test/test_scan_y.rb +0 -52
  141. data/test/testscanner.rb +0 -51
  142. data/web/racc.en.rhtml +0 -42
  143. data/web/racc.ja.rhtml +0 -51
@@ -1,255 +0,0 @@
1
- class Nokogiri::CSS::Parser
2
-
3
- token FUNCTION INCLUDES DASHMATCH LBRACE HASH PLUS GREATER S STRING IDENT
4
- token COMMA NUMBER PREFIXMATCH SUFFIXMATCH SUBSTRINGMATCH TILDE NOT_EQUAL
5
- token SLASH DOUBLESLASH NOT EQUAL RPAREN LSQUARE RSQUARE HAS
6
-
7
- rule
8
- selector
9
- : selector COMMA simple_selector_1toN {
10
- result = [val.first, val.last].flatten
11
- }
12
- | prefixless_combinator_selector { result = val.flatten }
13
- | optional_S simple_selector_1toN { result = [val.last].flatten }
14
- ;
15
- combinator
16
- : PLUS { result = :DIRECT_ADJACENT_SELECTOR }
17
- | GREATER { result = :CHILD_SELECTOR }
18
- | TILDE { result = :FOLLOWING_SELECTOR }
19
- | DOUBLESLASH { result = :DESCENDANT_SELECTOR }
20
- | SLASH { result = :CHILD_SELECTOR }
21
- ;
22
- simple_selector
23
- : element_name hcap_0toN {
24
- result = if val[1].nil?
25
- val.first
26
- else
27
- Node.new(:CONDITIONAL_SELECTOR, [val.first, val[1]])
28
- end
29
- }
30
- | function
31
- | function pseudo {
32
- result = Node.new(:CONDITIONAL_SELECTOR, val)
33
- }
34
- | function attrib {
35
- result = Node.new(:CONDITIONAL_SELECTOR, val)
36
- }
37
- | hcap_1toN {
38
- result = Node.new(:CONDITIONAL_SELECTOR,
39
- [Node.new(:ELEMENT_NAME, ['*']), val.first]
40
- )
41
- }
42
- ;
43
- prefixless_combinator_selector
44
- : combinator simple_selector_1toN {
45
- result = Node.new(val.first, [nil, val.last])
46
- }
47
- ;
48
- simple_selector_1toN
49
- : simple_selector combinator simple_selector_1toN {
50
- result = Node.new(val[1], [val.first, val.last])
51
- }
52
- | simple_selector S simple_selector_1toN {
53
- result = Node.new(:DESCENDANT_SELECTOR, [val.first, val.last])
54
- }
55
- | simple_selector
56
- ;
57
- class
58
- : '.' IDENT { result = Node.new(:CLASS_CONDITION, [val[1]]) }
59
- ;
60
- element_name
61
- : namespaced_ident
62
- | '*' { result = Node.new(:ELEMENT_NAME, val) }
63
- ;
64
- namespaced_ident
65
- : namespace '|' IDENT {
66
- result = Node.new(:ELEMENT_NAME,
67
- [[val.first, val.last].compact.join(':')]
68
- )
69
- }
70
- | IDENT {
71
- name = @namespaces.key?('xmlns') ? "xmlns:#{val.first}" : val.first
72
- result = Node.new(:ELEMENT_NAME, [name])
73
- }
74
- ;
75
- namespace
76
- : IDENT { result = val[0] }
77
- |
78
- ;
79
- attrib
80
- : LSQUARE attrib_name attrib_val_0or1 RSQUARE {
81
- result = Node.new(:ATTRIBUTE_CONDITION,
82
- [val[1]] + (val[2] || [])
83
- )
84
- }
85
- | LSQUARE function attrib_val_0or1 RSQUARE {
86
- result = Node.new(:ATTRIBUTE_CONDITION,
87
- [val[1]] + (val[2] || [])
88
- )
89
- }
90
- | LSQUARE NUMBER RSQUARE {
91
- # Non standard, but hpricot supports it.
92
- result = Node.new(:PSEUDO_CLASS,
93
- [Node.new(:FUNCTION, ['nth-child(', val[1]])]
94
- )
95
- }
96
- ;
97
- attrib_name
98
- : namespace '|' IDENT {
99
- result = Node.new(:ELEMENT_NAME,
100
- [[val.first, val.last].compact.join(':')]
101
- )
102
- }
103
- | IDENT {
104
- # Default namespace is not applied to attributes.
105
- # So we don't add prefix "xmlns:" as in namespaced_ident.
106
- result = Node.new(:ELEMENT_NAME, [val.first])
107
- }
108
- ;
109
- function
110
- : FUNCTION RPAREN {
111
- result = Node.new(:FUNCTION, [val.first.strip])
112
- }
113
- | FUNCTION expr RPAREN {
114
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
115
- }
116
- | FUNCTION nth RPAREN {
117
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
118
- }
119
- | NOT expr RPAREN {
120
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
121
- }
122
- | HAS selector RPAREN {
123
- result = Node.new(:FUNCTION, [val.first.strip, val[1]].flatten)
124
- }
125
- ;
126
- expr
127
- : NUMBER COMMA expr { result = [val.first, val.last] }
128
- | STRING COMMA expr { result = [val.first, val.last] }
129
- | IDENT COMMA expr { result = [val.first, val.last] }
130
- | NUMBER
131
- | STRING
132
- | IDENT # even, odd
133
- {
134
- case val[0]
135
- when 'even'
136
- result = Node.new(:NTH, ['2','n','+','0'])
137
- when 'odd'
138
- result = Node.new(:NTH, ['2','n','+','1'])
139
- when 'n'
140
- result = Node.new(:NTH, ['1','n','+','0'])
141
- else
142
- # This is not CSS standard. It allows us to support this:
143
- # assert_xpath("//a[foo(., @href)]", @parser.parse('a:foo(@href)'))
144
- # assert_xpath("//a[foo(., @a, b)]", @parser.parse('a:foo(@a, b)'))
145
- # assert_xpath("//a[foo(., a, 10)]", @parser.parse('a:foo(a, 10)'))
146
- result = val
147
- end
148
- }
149
- ;
150
- nth
151
- : NUMBER IDENT PLUS NUMBER # 5n+3 -5n+3
152
- {
153
- if val[1] == 'n'
154
- result = Node.new(:NTH, val)
155
- else
156
- raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
157
- end
158
- }
159
- | IDENT PLUS NUMBER { # n+3, -n+3
160
- if val[0] == 'n'
161
- val.unshift("1")
162
- result = Node.new(:NTH, val)
163
- elsif val[0] == '-n'
164
- val[0] = 'n'
165
- val.unshift("-1")
166
- result = Node.new(:NTH, val)
167
- else
168
- raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
169
- end
170
- }
171
- | NUMBER IDENT { # 5n, -5n, 10n-1
172
- n = val[1]
173
- if n[0, 2] == 'n-'
174
- val[1] = 'n'
175
- val << "-"
176
- # b is contained in n as n is the string "n-b"
177
- val << n[2, n.size]
178
- result = Node.new(:NTH, val)
179
- elsif n == 'n'
180
- val << "+"
181
- val << "0"
182
- result = Node.new(:NTH, val)
183
- else
184
- raise Racc::ParseError, "parse error on IDENT '#{val[1]}'"
185
- end
186
- }
187
- ;
188
- pseudo
189
- : ':' function {
190
- result = Node.new(:PSEUDO_CLASS, [val[1]])
191
- }
192
- | ':' IDENT { result = Node.new(:PSEUDO_CLASS, [val[1]]) }
193
- ;
194
- hcap_0toN
195
- : hcap_1toN
196
- |
197
- ;
198
- hcap_1toN
199
- : attribute_id hcap_1toN {
200
- result = Node.new(:COMBINATOR, val)
201
- }
202
- | class hcap_1toN {
203
- result = Node.new(:COMBINATOR, val)
204
- }
205
- | attrib hcap_1toN {
206
- result = Node.new(:COMBINATOR, val)
207
- }
208
- | pseudo hcap_1toN {
209
- result = Node.new(:COMBINATOR, val)
210
- }
211
- | negation hcap_1toN {
212
- result = Node.new(:COMBINATOR, val)
213
- }
214
- | attribute_id
215
- | class
216
- | attrib
217
- | pseudo
218
- | negation
219
- ;
220
- attribute_id
221
- : HASH { result = Node.new(:ID, val) }
222
- ;
223
- attrib_val_0or1
224
- : eql_incl_dash IDENT { result = [val.first, val[1]] }
225
- | eql_incl_dash STRING { result = [val.first, val[1]] }
226
- |
227
- ;
228
- eql_incl_dash
229
- : EQUAL { result = :equal }
230
- | PREFIXMATCH { result = :prefix_match }
231
- | SUFFIXMATCH { result = :suffix_match }
232
- | SUBSTRINGMATCH { result = :substring_match }
233
- | NOT_EQUAL { result = :not_equal }
234
- | INCLUDES { result = :includes }
235
- | DASHMATCH { result = :dash_match }
236
- ;
237
- negation
238
- : NOT negation_arg RPAREN {
239
- result = Node.new(:NOT, [val[1]])
240
- }
241
- ;
242
- negation_arg
243
- : element_name
244
- | element_name hcap_1toN
245
- | hcap_1toN
246
- ;
247
- optional_S
248
- : S
249
- |
250
- ;
251
- end
252
-
253
- ---- header
254
-
255
- require 'nokogiri/css/parser_extras'
data/test/assets/nonass.y DELETED
@@ -1,41 +0,0 @@
1
- #
2
- # nonassoc test
3
- #
4
-
5
- class P
6
-
7
- preclow
8
- nonassoc N
9
- left P
10
- prechigh
11
-
12
- rule
13
-
14
- target : exp
15
- exp : exp N exp
16
- | exp P exp
17
- | T
18
-
19
- end
20
-
21
- ---- inner
22
-
23
- def parse
24
- @src = [[:T,'T'], [:N,'N'], [:T,'T'], [:N,'N'], [:T,'T']]
25
- do_parse
26
- end
27
-
28
- def next_token
29
- @src.shift
30
- end
31
-
32
- ---- footer
33
-
34
- begin
35
- P.new.parse
36
- rescue ParseError
37
- exit 0
38
- else
39
- $stderr.puts 'parse error not raised: nonassoc not work'
40
- exit 1
41
- end
data/test/assets/normal.y DELETED
@@ -1,27 +0,0 @@
1
-
2
- class Testp
3
-
4
- convert
5
- A '2'
6
- B '3'
7
- end
8
-
9
- prechigh
10
- left B
11
- preclow
12
-
13
- rule
14
-
15
- /* comment */
16
- target: A B C nonterminal { action "string" == /regexp/o
17
- 1 /= 3 }
18
- ; # comment
19
-
20
- nonterminal: A '+' B = A;
21
-
22
- /* end */
23
- end
24
-
25
- ---- driver
26
-
27
- # driver is old name
data/test/assets/norule.y DELETED
@@ -1,4 +0,0 @@
1
-
2
- class A
3
- rule
4
- end
@@ -1,25 +0,0 @@
1
- #
2
- # number of conflicts must be ZERO.
3
- #
4
-
5
- class T
6
-
7
- rule
8
-
9
- targ : dummy
10
- | a b c
11
-
12
- dummy : V v
13
-
14
- V : E e
15
- | F f
16
- |
17
- ;
18
-
19
- E :
20
- ;
21
-
22
- F :
23
- ;
24
-
25
- end
@@ -1,15 +0,0 @@
1
- #
2
- # number of conflicts must be ZERO.
3
- #
4
-
5
- class A
6
- rule
7
- targ: operation voidhead
8
- | variable
9
-
10
- voidhead : void B
11
- void:
12
-
13
- operation: A
14
- variable : A
15
- end