antisamy 0.0.1 → 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 (45) hide show
  1. data/README.rdoc +6 -1
  2. data/lib/antisamy/css/css_filter.rb +187 -0
  3. data/lib/antisamy/css/css_scanner.rb +84 -0
  4. data/lib/antisamy/css/css_validator.rb +129 -0
  5. data/lib/antisamy/csspool/rsac/sac/conditions/attribute_condition.rb +50 -0
  6. data/lib/antisamy/csspool/rsac/sac/conditions/begin_hyphen_condition.rb +18 -0
  7. data/lib/antisamy/csspool/rsac/sac/conditions/class_condition.rb +18 -0
  8. data/lib/antisamy/csspool/rsac/sac/conditions/combinator_condition.rb +36 -0
  9. data/lib/antisamy/csspool/rsac/sac/conditions/condition.rb +29 -0
  10. data/lib/antisamy/csspool/rsac/sac/conditions/id_condition.rb +23 -0
  11. data/lib/antisamy/csspool/rsac/sac/conditions/one_of_condition.rb +18 -0
  12. data/lib/antisamy/csspool/rsac/sac/conditions/pseudo_class_condition.rb +20 -0
  13. data/lib/antisamy/csspool/rsac/sac/conditions.rb +5 -0
  14. data/lib/antisamy/csspool/rsac/sac/document_handler.rb +66 -0
  15. data/lib/antisamy/csspool/rsac/sac/error_handler.rb +13 -0
  16. data/lib/antisamy/csspool/rsac/sac/generated_parser.rb +1012 -0
  17. data/lib/antisamy/csspool/rsac/sac/generated_property_parser.rb +9284 -0
  18. data/lib/antisamy/csspool/rsac/sac/lexeme.rb +27 -0
  19. data/lib/antisamy/csspool/rsac/sac/lexical_unit.rb +201 -0
  20. data/lib/antisamy/csspool/rsac/sac/parse_exception.rb +4 -0
  21. data/lib/antisamy/csspool/rsac/sac/parser.rb +109 -0
  22. data/lib/antisamy/csspool/rsac/sac/property_parser.rb +44 -0
  23. data/lib/antisamy/csspool/rsac/sac/selectors/child_selector.rb +36 -0
  24. data/lib/antisamy/csspool/rsac/sac/selectors/conditional_selector.rb +45 -0
  25. data/lib/antisamy/csspool/rsac/sac/selectors/descendant_selector.rb +36 -0
  26. data/lib/antisamy/csspool/rsac/sac/selectors/element_selector.rb +35 -0
  27. data/lib/antisamy/csspool/rsac/sac/selectors/selector.rb +25 -0
  28. data/lib/antisamy/csspool/rsac/sac/selectors/sibling_selector.rb +35 -0
  29. data/lib/antisamy/csspool/rsac/sac/selectors/simple_selector.rb +21 -0
  30. data/lib/antisamy/csspool/rsac/sac/selectors.rb +5 -0
  31. data/lib/antisamy/csspool/rsac/sac/token.rb +25 -0
  32. data/lib/antisamy/csspool/rsac/sac/tokenizer.rb +185 -0
  33. data/lib/antisamy/csspool/rsac/sac.rb +14 -0
  34. data/lib/antisamy/csspool/rsac/stylesheet/rule.rb +20 -0
  35. data/lib/antisamy/csspool/rsac/stylesheet/stylesheet.rb +76 -0
  36. data/lib/antisamy/csspool/rsac/stylesheet.rb +3 -0
  37. data/lib/antisamy/csspool/rsac.rb +1 -0
  38. data/lib/antisamy/html/handler.rb +4 -0
  39. data/lib/antisamy/html/sax_filter.rb +49 -33
  40. data/lib/antisamy/html/scanner.rb +1 -43
  41. data/lib/antisamy/policy.rb +8 -3
  42. data/lib/antisamy/scan_results.rb +68 -0
  43. data/lib/antisamy.rb +4 -0
  44. data/spec/antisamy_spec.rb +111 -3
  45. metadata +39 -3
@@ -0,0 +1,1012 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by Racc 1.4.6
4
+ # from Racc grammer file "".
5
+ #
6
+
7
+ require 'racc/parser.rb'
8
+
9
+ require "antisamy/csspool/rsac/sac/conditions"
10
+ require "antisamy/csspool/rsac/sac/selectors"
11
+
12
+ module RSAC
13
+ class GeneratedParser < Racc::Parser
14
+
15
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 307)
16
+ include RSAC::Conditions
17
+ include RSAC::Selectors
18
+ ...end parser.y/module_eval...
19
+ ##### State transition tables begin ###
20
+
21
+ racc_action_table = [
22
+ 190, -70, 70, 172, 173, 70, 149, 131, 124, 9,
23
+ 135, 136, 175, 137, 69, 10, 140, 141, 142, 143,
24
+ 144, 145, 146, 147, -70, 57, 18, 9, 76, 58,
25
+ -70, 77, -70, 10, 174, 130, 59, 123, 70, 189,
26
+ -70, 171, 149, 131, 114, 3, 135, 136, 113, 137,
27
+ 4, 5, 140, 141, 142, 143, 144, 145, 146, 147,
28
+ 42, 70, 62, 63, 64, 149, 131, 104, 42, 135,
29
+ 136, 130, 137, 34, 18, 140, 141, 142, 143, 144,
30
+ 145, 146, 147, 223, 222, 18, 42, 37, 23, 25,
31
+ 33, 34, 36, 18, 130, 37, 111, 18, 33, 35,
32
+ 36, 18, 108, 42, 18, 116, 23, 25, 34, 42,
33
+ 42, 76, 110, 37, 77, 3, 33, 35, 36, 42,
34
+ 4, 5, 9, 23, 25, 7, 18, 42, 10, 119,
35
+ 37, 18, 34, 33, 35, 36, 37, 37, 3, 33,
36
+ 33, 36, 36, 4, 5, 42, 37, 23, 25, 33,
37
+ 34, 36, 42, 121, 37, 122, 42, 33, 35, 36,
38
+ 99, 34, 42, 125, 3, 23, 25, 34, 42, 4,
39
+ 5, 126, 37, 34, 98, 33, 35, 36, 18, 37,
40
+ 42, 91, 33, 37, 36, 34, 33, 35, 36, 37,
41
+ 87, 87, 33, 35, 36, 37, 96, 3, 33, 35,
42
+ 36, 153, 4, 5, 18, 96, 92, 37, 96, 96,
43
+ 33, 35, 36, 18, 96, 92, 18, 18, 92, 92,
44
+ 96, 3, 18, 9, 92, -120, 4, 5, 18, 10,
45
+ 92, 18, 18, 18, -120, 3, 89, -120, -120, 3,
46
+ 4, 5, 3, -120, 4, 5, 159, 4, 5, -120,
47
+ 140, 141, 142, 143, 144, 145, 146, 147, 76, 110,
48
+ 18, 77, 76, 110, 87, 77, 162, 18, 18, 18,
49
+ 166, 18, 18, 59, 18, 18, 18, 18, 18, 18,
50
+ 18, 18, 18, 18, 18, 18, 18, 18, 66, 18,
51
+ 192, 193, 18, 18, 18, 197, 18, 87, 200, 18,
52
+ 18, 18, 47, 44, 206, 18, 18, 18, 18, 18,
53
+ 212, 18, 18, 18, 18, 18, 219, 16, 6, 18,
54
+ 18, 18, 18 ]
55
+
56
+ racc_action_check = [
57
+ 148, 132, 105, 129, 129, 37, 105, 105, 95, 45,
58
+ 105, 105, 132, 105, 37, 45, 105, 105, 105, 105,
59
+ 105, 105, 105, 105, 132, 29, 104, 46, 43, 29,
60
+ 132, 43, 132, 46, 132, 105, 29, 95, 164, 148,
61
+ 132, 129, 164, 164, 86, 11, 164, 164, 86, 164,
62
+ 11, 11, 164, 164, 164, 164, 164, 164, 164, 164,
63
+ 41, 176, 32, 32, 32, 176, 176, 67, 196, 176,
64
+ 176, 164, 176, 196, 70, 176, 176, 176, 176, 176,
65
+ 176, 176, 176, 207, 207, 75, 8, 41, 196, 196,
66
+ 41, 8, 41, 62, 176, 196, 81, 85, 196, 196,
67
+ 196, 59, 78, 49, 87, 88, 8, 8, 49, 40,
68
+ 39, 78, 78, 8, 78, 21, 8, 8, 8, 38,
69
+ 21, 21, 2, 49, 49, 2, 89, 50, 2, 90,
70
+ 49, 92, 50, 49, 49, 49, 40, 39, 5, 40,
71
+ 39, 40, 39, 5, 5, 51, 38, 50, 50, 38,
72
+ 51, 38, 30, 93, 50, 94, 100, 50, 50, 50,
73
+ 57, 100, 158, 96, 20, 51, 51, 158, 65, 20,
74
+ 20, 97, 51, 65, 56, 51, 51, 51, 63, 30,
75
+ 112, 54, 30, 100, 30, 112, 100, 100, 100, 158,
76
+ 106, 107, 158, 158, 158, 65, 117, 4, 65, 65,
77
+ 65, 108, 4, 4, 117, 55, 117, 112, 203, 167,
78
+ 112, 112, 112, 55, 165, 55, 203, 167, 203, 167,
79
+ 168, 3, 165, 156, 165, 117, 3, 3, 168, 156,
80
+ 168, 109, 110, 111, 55, 12, 53, 203, 167, 22,
81
+ 12, 12, 0, 165, 22, 22, 114, 0, 0, 168,
82
+ 133, 133, 133, 133, 133, 133, 133, 133, 155, 155,
83
+ 116, 155, 154, 154, 52, 154, 119, 121, 122, 123,
84
+ 124, 125, 126, 127, 47, 44, 36, 135, 136, 137,
85
+ 140, 141, 142, 143, 144, 145, 146, 147, 33, 149,
86
+ 150, 152, 28, 26, 25, 157, 24, 160, 161, 23,
87
+ 18, 166, 17, 10, 169, 170, 174, 175, 9, 189,
88
+ 190, 192, 193, 7, 197, 200, 201, 6, 1, 212,
89
+ 219, 222, 223 ]
90
+
91
+ racc_action_pointer = [
92
+ 233, 318, 97, 212, 188, 129, 317, 304, 80, 299,
93
+ 292, 36, 226, nil, nil, nil, nil, 292, 291, nil,
94
+ 155, 106, 230, 290, 287, 285, 284, nil, 283, 24,
95
+ 146, nil, 55, 277, nil, nil, 267, 3, 113, 104,
96
+ 103, 54, nil, 18, 266, -16, 2, 265, nil, 97,
97
+ 121, 139, 253, 231, 170, 204, 169, 155, nil, 92,
98
+ nil, nil, 84, 169, nil, 162, nil, 56, nil, nil,
99
+ 65, nil, nil, nil, nil, 76, nil, nil, 101, nil,
100
+ nil, 66, nil, nil, nil, 88, 43, 95, 93, 117,
101
+ 96, nil, 122, 121, 122, 7, 133, 141, nil, nil,
102
+ 150, nil, nil, nil, 17, 0, 179, 180, 192, 222,
103
+ 223, 224, 174, nil, 241, nil, 251, 195, nil, 255,
104
+ nil, 258, 259, 260, 240, 262, 263, 261, nil, 0,
105
+ nil, nil, 0, 234, nil, 268, 269, 270, nil, nil,
106
+ 271, 272, 273, 274, 275, 276, 277, 278, -1, 280,
107
+ 260, nil, 261, nil, 252, 248, 198, 263, 156, nil,
108
+ 286, 266, nil, nil, 36, 213, 292, 208, 219, 265,
109
+ 296, nil, nil, nil, 297, 298, 59, nil, nil, nil,
110
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 300,
111
+ 270, nil, 302, 303, nil, nil, 62, 305, nil, nil,
112
+ 306, 292, nil, 207, nil, nil, nil, 73, nil, nil,
113
+ nil, nil, 310, nil, nil, nil, nil, nil, nil, 311,
114
+ nil, nil, 312, 313, nil, nil, nil, nil ]
115
+
116
+ racc_action_default = [
117
+ -118, -121, -15, -115, -116, -117, -121, -120, -9, -120,
118
+ -121, -118, -118, -112, -113, -114, 228, -121, -120, -2,
119
+ -118, -118, -118, -120, -120, -120, -120, -43, -120, -48,
120
+ -90, -50, -52, -121, -54, -55, -120, -121, -95, -96,
121
+ -97, -98, -99, -121, -120, -15, -15, -120, -119, -6,
122
+ -7, -8, -121, -121, -27, -65, -121, -121, -46, -120,
123
+ -49, -89, -120, -120, -35, -121, -53, -121, -57, -58,
124
+ -120, -91, -92, -93, -94, -120, -106, -107, -121, -13,
125
+ -14, -121, -3, -4, -5, -120, -121, -120, -23, -120,
126
+ -29, -26, -120, -121, -121, -63, -121, -121, -44, -45,
127
+ -121, -33, -34, -51, -120, -121, -21, -21, -121, -120,
128
+ -120, -120, -42, -17, -121, -19, -120, -65, -25, -121,
129
+ -38, -120, -120, -120, -121, -120, -120, -48, -47, -102,
130
+ -36, -37, -32, -121, -72, -120, -120, -120, -76, -77,
131
+ -120, -120, -120, -120, -120, -120, -120, -120, -121, -120,
132
+ -121, -20, -121, -12, -111, -110, -15, -121, -41, -18,
133
+ -121, -121, -28, -39, -121, -65, -120, -65, -65, -121,
134
+ -120, -103, -104, -105, -120, -120, -121, -71, -73, -74,
135
+ -75, -78, -79, -80, -81, -82, -83, -84, -85, -120,
136
+ -121, -88, -120, -120, -108, -109, -9, -120, -40, -22,
137
+ -120, -68, -60, -65, -62, -64, -56, -121, -30, -31,
138
+ -69, -86, -120, -10, -11, -1, -16, -24, -59, -120,
139
+ -67, -61, -120, -120, -87, -66, -100, -101 ]
140
+
141
+ racc_goto_table = [
142
+ 17, 19, 43, 8, 86, 148, 118, 107, 157, 90,
143
+ 93, 48, 158, 85, 61, 176, 52, 53, 54, 55,
144
+ 65, 56, 71, 72, 73, 74, 150, 152, 127, 67,
145
+ 103, 128, 60, 75, 169, 68, 1, 78, 218, 220,
146
+ 81, 177, 82, 83, 84, 170, 79, 80, nil, nil,
147
+ nil, nil, 100, nil, 198, 101, 102, nil, 158, nil,
148
+ nil, nil, nil, 105, 201, nil, nil, nil, 106, nil,
149
+ nil, nil, 161, nil, nil, nil, 210, nil, 112, nil,
150
+ 115, nil, 117, 194, 195, 120, nil, nil, nil, nil,
151
+ nil, nil, nil, nil, nil, nil, nil, 129, nil, nil,
152
+ nil, nil, 154, 155, 156, nil, nil, nil, nil, 160,
153
+ nil, nil, 199, nil, 163, 164, 165, nil, 167, 168,
154
+ 202, nil, 204, 205, nil, nil, nil, nil, 178, 179,
155
+ 180, nil, nil, 181, 182, 183, 184, 185, 186, 187,
156
+ 188, nil, 191, nil, 2, nil, nil, 13, 14, 15,
157
+ nil, nil, nil, nil, nil, 45, 46, 196, 221, 203,
158
+ nil, nil, nil, 207, 49, 50, 51, 208, 209, nil,
159
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
160
+ nil, nil, 211, nil, nil, 213, 214, nil, nil, 215,
161
+ 216, nil, nil, 217, nil, nil, nil, nil, nil, nil,
162
+ nil, nil, nil, nil, nil, 224, nil, nil, nil, nil,
163
+ nil, nil, 225, nil, nil, 226, 227 ]
164
+
165
+ racc_goto_check = [
166
+ 3, 5, 3, 4, 16, 40, 21, 13, 15, 20,
167
+ 19, 3, 6, 14, 33, 22, 3, 3, 3, 3,
168
+ 23, 3, 33, 33, 33, 33, 11, 11, 27, 3,
169
+ 28, 29, 32, 10, 36, 38, 1, 3, 41, 42,
170
+ 3, 44, 5, 5, 5, 47, 4, 4, nil, nil,
171
+ nil, nil, 3, nil, 15, 3, 3, nil, 6, nil,
172
+ nil, nil, nil, 3, 40, nil, nil, nil, 3, nil,
173
+ nil, nil, 19, nil, nil, nil, 40, nil, 3, nil,
174
+ 3, nil, 3, 13, 13, 3, nil, nil, nil, nil,
175
+ nil, nil, nil, nil, nil, nil, nil, 3, nil, nil,
176
+ nil, nil, 3, 3, 3, nil, nil, nil, nil, 3,
177
+ nil, nil, 16, nil, 3, 3, 3, nil, 3, 3,
178
+ 19, nil, 19, 19, nil, nil, nil, nil, 3, 3,
179
+ 3, nil, nil, 3, 3, 3, 3, 3, 3, 3,
180
+ 3, nil, 3, nil, 2, nil, nil, 2, 2, 2,
181
+ nil, nil, nil, nil, nil, 2, 2, 4, 19, 3,
182
+ nil, nil, nil, 3, 2, 2, 2, 3, 3, nil,
183
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
184
+ nil, nil, 3, nil, nil, 3, 3, nil, nil, 5,
185
+ 3, nil, nil, 3, nil, nil, nil, nil, nil, nil,
186
+ nil, nil, nil, nil, nil, 3, nil, nil, nil, nil,
187
+ nil, nil, 3, nil, nil, 3, 3 ]
188
+
189
+ racc_goto_pointer = [
190
+ nil, 36, 144, -7, 1, -7, -100, nil, nil, nil,
191
+ -10, -80, nil, -71, -39, -104, -48, nil, nil, -45,
192
+ -45, -84, -117, -12, nil, nil, nil, -72, -35, -69,
193
+ nil, nil, 2, -16, nil, nil, -95, nil, -2, nil,
194
+ -100, -163, -162, nil, -92, nil, nil, -84 ]
195
+
196
+ racc_goto_default = [
197
+ nil, nil, nil, 97, nil, nil, 20, 21, 22, 11,
198
+ 109, nil, 12, nil, nil, nil, 151, 88, 24, nil,
199
+ nil, nil, nil, nil, 133, 94, 26, 29, 27, 28,
200
+ 32, 30, nil, 31, 39, 40, nil, 41, 139, 95,
201
+ nil, nil, nil, 132, 134, 138, 38, nil ]
202
+
203
+ racc_reduce_table = [
204
+ 0, 0, :racc_error,
205
+ 9, 43, :_reduce_none,
206
+ 3, 43, :_reduce_none,
207
+ 3, 47, :_reduce_none,
208
+ 3, 47, :_reduce_none,
209
+ 3, 47, :_reduce_none,
210
+ 2, 47, :_reduce_none,
211
+ 2, 47, :_reduce_none,
212
+ 2, 47, :_reduce_none,
213
+ 0, 47, :_reduce_none,
214
+ 7, 51, :_reduce_10,
215
+ 7, 54, :_reduce_11,
216
+ 5, 54, :_reduce_12,
217
+ 3, 46, :_reduce_none,
218
+ 3, 46, :_reduce_none,
219
+ 0, 46, :_reduce_none,
220
+ 7, 49, :_reduce_16,
221
+ 2, 56, :_reduce_17,
222
+ 3, 56, :_reduce_18,
223
+ 2, 59, :_reduce_none,
224
+ 1, 53, :_reduce_none,
225
+ 0, 53, :_reduce_none,
226
+ 4, 58, :_reduce_22,
227
+ 1, 58, :_reduce_23,
228
+ 7, 50, :_reduce_24,
229
+ 4, 60, :_reduce_25,
230
+ 1, 62, :_reduce_none,
231
+ 0, 62, :_reduce_none,
232
+ 2, 63, :_reduce_28,
233
+ 0, 63, :_reduce_none,
234
+ 2, 64, :_reduce_none,
235
+ 2, 64, :_reduce_none,
236
+ 0, 64, :_reduce_none,
237
+ 2, 65, :_reduce_33,
238
+ 2, 65, :_reduce_34,
239
+ 1, 65, :_reduce_35,
240
+ 1, 66, :_reduce_none,
241
+ 1, 66, :_reduce_none,
242
+ 2, 67, :_reduce_none,
243
+ 5, 48, :_reduce_39,
244
+ 2, 57, :_reduce_none,
245
+ 1, 57, :_reduce_none,
246
+ 0, 57, :_reduce_none,
247
+ 1, 69, :_reduce_43,
248
+ 3, 68, :_reduce_44,
249
+ 3, 68, :_reduce_45,
250
+ 2, 68, :_reduce_46,
251
+ 4, 71, :_reduce_47,
252
+ 1, 71, :_reduce_none,
253
+ 2, 72, :_reduce_49,
254
+ 1, 72, :_reduce_50,
255
+ 3, 70, :_reduce_51,
256
+ 1, 70, :_reduce_none,
257
+ 2, 76, :_reduce_53,
258
+ 1, 73, :_reduce_54,
259
+ 1, 73, :_reduce_55,
260
+ 6, 77, :_reduce_56,
261
+ 2, 79, :_reduce_57,
262
+ 2, 79, :_reduce_58,
263
+ 5, 81, :_reduce_59,
264
+ 4, 61, :_reduce_none,
265
+ 5, 61, :_reduce_61,
266
+ 4, 61, :_reduce_62,
267
+ 1, 61, :_reduce_none,
268
+ 4, 61, :_reduce_none,
269
+ 0, 61, :_reduce_none,
270
+ 2, 84, :_reduce_none,
271
+ 1, 83, :_reduce_none,
272
+ 0, 83, :_reduce_none,
273
+ 3, 82, :_reduce_69,
274
+ 1, 82, :_reduce_none,
275
+ 2, 85, :_reduce_71,
276
+ 1, 85, :_reduce_72,
277
+ 2, 85, :_reduce_none,
278
+ 2, 85, :_reduce_none,
279
+ 2, 85, :_reduce_none,
280
+ 1, 85, :_reduce_none,
281
+ 1, 85, :_reduce_none,
282
+ 2, 86, :_reduce_none,
283
+ 2, 86, :_reduce_none,
284
+ 2, 86, :_reduce_none,
285
+ 2, 86, :_reduce_none,
286
+ 2, 86, :_reduce_none,
287
+ 2, 86, :_reduce_none,
288
+ 2, 86, :_reduce_none,
289
+ 2, 86, :_reduce_none,
290
+ 5, 80, :_reduce_86,
291
+ 6, 80, :_reduce_87,
292
+ 2, 87, :_reduce_none,
293
+ 1, 74, :_reduce_none,
294
+ 0, 74, :_reduce_none,
295
+ 2, 75, :_reduce_91,
296
+ 2, 75, :_reduce_92,
297
+ 2, 75, :_reduce_93,
298
+ 2, 75, :_reduce_94,
299
+ 1, 75, :_reduce_none,
300
+ 1, 75, :_reduce_none,
301
+ 1, 75, :_reduce_none,
302
+ 1, 75, :_reduce_none,
303
+ 1, 88, :_reduce_99,
304
+ 4, 78, :_reduce_100,
305
+ 4, 78, :_reduce_101,
306
+ 0, 78, :_reduce_none,
307
+ 1, 89, :_reduce_none,
308
+ 1, 89, :_reduce_none,
309
+ 1, 89, :_reduce_none,
310
+ 1, 52, :_reduce_none,
311
+ 1, 52, :_reduce_none,
312
+ 3, 55, :_reduce_none,
313
+ 3, 55, :_reduce_none,
314
+ 2, 55, :_reduce_none,
315
+ 2, 55, :_reduce_none,
316
+ 2, 44, :_reduce_none,
317
+ 2, 44, :_reduce_none,
318
+ 2, 44, :_reduce_none,
319
+ 1, 44, :_reduce_none,
320
+ 1, 44, :_reduce_none,
321
+ 1, 44, :_reduce_none,
322
+ 0, 44, :_reduce_none,
323
+ 2, 45, :_reduce_none,
324
+ 0, 45, :_reduce_none ]
325
+
326
+ racc_reduce_n = 121
327
+
328
+ racc_shift_n = 228
329
+
330
+ racc_token_table = {
331
+ false => 0,
332
+ :error => 1,
333
+ :FUNCTION => 2,
334
+ :INCLUDES => 3,
335
+ :DASHMATCH => 4,
336
+ :LBRACE => 5,
337
+ :HASH => 6,
338
+ :PLUS => 7,
339
+ :GREATER => 8,
340
+ :S => 9,
341
+ :STRING => 10,
342
+ :IDENT => 11,
343
+ :COMMA => 12,
344
+ :URI => 13,
345
+ :CDO => 14,
346
+ :CDC => 15,
347
+ :NUMBER => 16,
348
+ :PERCENTAGE => 17,
349
+ :LENGTH => 18,
350
+ :EMS => 19,
351
+ :EXS => 20,
352
+ :ANGLE => 21,
353
+ :TIME => 22,
354
+ :FREQ => 23,
355
+ :IMPORTANT_SYM => 24,
356
+ :IMPORT_SYM => 25,
357
+ :MEDIA_SYM => 26,
358
+ :PAGE_SYM => 27,
359
+ :CHARSET_SYM => 28,
360
+ :DIMENSION => 29,
361
+ ";" => 30,
362
+ "@" => 31,
363
+ "}" => 32,
364
+ ":" => 33,
365
+ "/" => 34,
366
+ "-" => 35,
367
+ "." => 36,
368
+ "*" => 37,
369
+ "[" => 38,
370
+ "]" => 39,
371
+ ")" => 40,
372
+ "=" => 41 }
373
+
374
+ racc_nt_base = 42
375
+
376
+ racc_use_result_var = true
377
+
378
+ Racc_arg = [
379
+ racc_action_table,
380
+ racc_action_check,
381
+ racc_action_default,
382
+ racc_action_pointer,
383
+ racc_goto_table,
384
+ racc_goto_check,
385
+ racc_goto_default,
386
+ racc_goto_pointer,
387
+ racc_nt_base,
388
+ racc_reduce_table,
389
+ racc_token_table,
390
+ racc_shift_n,
391
+ racc_reduce_n,
392
+ racc_use_result_var ]
393
+
394
+ Racc_token_to_s_table = [
395
+ "$end",
396
+ "error",
397
+ "FUNCTION",
398
+ "INCLUDES",
399
+ "DASHMATCH",
400
+ "LBRACE",
401
+ "HASH",
402
+ "PLUS",
403
+ "GREATER",
404
+ "S",
405
+ "STRING",
406
+ "IDENT",
407
+ "COMMA",
408
+ "URI",
409
+ "CDO",
410
+ "CDC",
411
+ "NUMBER",
412
+ "PERCENTAGE",
413
+ "LENGTH",
414
+ "EMS",
415
+ "EXS",
416
+ "ANGLE",
417
+ "TIME",
418
+ "FREQ",
419
+ "IMPORTANT_SYM",
420
+ "IMPORT_SYM",
421
+ "MEDIA_SYM",
422
+ "PAGE_SYM",
423
+ "CHARSET_SYM",
424
+ "DIMENSION",
425
+ "\";\"",
426
+ "\"@\"",
427
+ "\"}\"",
428
+ "\":\"",
429
+ "\"/\"",
430
+ "\"-\"",
431
+ "\".\"",
432
+ "\"*\"",
433
+ "\"[\"",
434
+ "\"]\"",
435
+ "\")\"",
436
+ "\"=\"",
437
+ "$start",
438
+ "stylesheet",
439
+ "s_cdo_cdc_0toN",
440
+ "s_0toN",
441
+ "import_0toN",
442
+ "ruleset_media_page_0toN",
443
+ "ruleset",
444
+ "media",
445
+ "page",
446
+ "import",
447
+ "string_or_uri",
448
+ "medium_0toN",
449
+ "ignorable_at",
450
+ "string_uri_or_ident_1toN",
451
+ "medium_rollup",
452
+ "ruleset_0toN",
453
+ "medium_1toN",
454
+ "medium",
455
+ "page_start",
456
+ "declaration_0toN",
457
+ "optional_page",
458
+ "optional_pseudo_page",
459
+ "operator",
460
+ "combinator",
461
+ "unary_operator",
462
+ "property",
463
+ "selector_1toN",
464
+ "selector",
465
+ "simple_selector_1toN",
466
+ "selector_list",
467
+ "simple_selector",
468
+ "element_name",
469
+ "hcap_0toN",
470
+ "hcap_1toN",
471
+ "class",
472
+ "attrib",
473
+ "attrib_val_0or1",
474
+ "pseudo",
475
+ "function",
476
+ "declaration",
477
+ "expr",
478
+ "prio_0or1",
479
+ "prio",
480
+ "term",
481
+ "num_or_length",
482
+ "hexcolor",
483
+ "attribute_id",
484
+ "eql_incl_dash" ]
485
+
486
+ Racc_debug_parser = false
487
+
488
+ ##### State transition tables end #####
489
+
490
+ # reduce 0 omitted
491
+
492
+ # reduce 1 omitted
493
+
494
+ # reduce 2 omitted
495
+
496
+ # reduce 3 omitted
497
+
498
+ # reduce 4 omitted
499
+
500
+ # reduce 5 omitted
501
+
502
+ # reduce 6 omitted
503
+
504
+ # reduce 7 omitted
505
+
506
+ # reduce 8 omitted
507
+
508
+ # reduce 9 omitted
509
+
510
+ module_eval(<<'.,.,', 'parser.y', 22)
511
+ def _reduce_10(val, _values, result)
512
+ self.document_handler.import_style(val[2], val[4] || [])
513
+
514
+ result
515
+ end
516
+ .,.,
517
+
518
+ module_eval(<<'.,.,', 'parser.y', 27)
519
+ def _reduce_11(val, _values, result)
520
+ self.document_handler.ignorable_at_rule(val[1])
521
+
522
+ result
523
+ end
524
+ .,.,
525
+
526
+ module_eval(<<'.,.,', 'parser.y', 30)
527
+ def _reduce_12(val, _values, result)
528
+ yyerrok
529
+ self.document_handler.ignorable_at_rule(val[1])
530
+
531
+ result
532
+ end
533
+ .,.,
534
+
535
+ # reduce 13 omitted
536
+
537
+ # reduce 14 omitted
538
+
539
+ # reduce 15 omitted
540
+
541
+ module_eval(<<'.,.,', 'parser.y', 41)
542
+ def _reduce_16(val, _values, result)
543
+ self.document_handler.end_media(val[2])
544
+
545
+ result
546
+ end
547
+ .,.,
548
+
549
+ module_eval(<<'.,.,', 'parser.y', 45)
550
+ def _reduce_17(val, _values, result)
551
+ self.document_handler.start_media(val.first)
552
+ result
553
+ end
554
+ .,.,
555
+
556
+ module_eval(<<'.,.,', 'parser.y', 47)
557
+ def _reduce_18(val, _values, result)
558
+ yyerrok
559
+ self.document_handler.start_media(val.first)
560
+ error = ParseException.new("Error near: \"#{val[0]}\"")
561
+ self.error_handler.error(error)
562
+
563
+ result
564
+ end
565
+ .,.,
566
+
567
+ # reduce 19 omitted
568
+
569
+ # reduce 20 omitted
570
+
571
+ # reduce 21 omitted
572
+
573
+ module_eval(<<'.,.,', 'parser.y', 61)
574
+ def _reduce_22(val, _values, result)
575
+ result = [val.first, val.last].flatten
576
+ result
577
+ end
578
+ .,.,
579
+
580
+ module_eval(<<'.,.,', 'parser.y', 62)
581
+ def _reduce_23(val, _values, result)
582
+ result = [val.first]
583
+ result
584
+ end
585
+ .,.,
586
+
587
+ module_eval(<<'.,.,', 'parser.y', 66)
588
+ def _reduce_24(val, _values, result)
589
+ page_stuff = val.first
590
+ self.document_handler.end_page(page_stuff[0], page_stuff[1])
591
+
592
+ result
593
+ end
594
+ .,.,
595
+
596
+ module_eval(<<'.,.,', 'parser.y', 72)
597
+ def _reduce_25(val, _values, result)
598
+ result = [val[2], val[3]]
599
+ self.document_handler.start_page(val[2], val[3])
600
+
601
+ result
602
+ end
603
+ .,.,
604
+
605
+ # reduce 26 omitted
606
+
607
+ # reduce 27 omitted
608
+
609
+ module_eval(<<'.,.,', 'parser.y', 81)
610
+ def _reduce_28(val, _values, result)
611
+ result = val[1]
612
+ result
613
+ end
614
+ .,.,
615
+
616
+ # reduce 29 omitted
617
+
618
+ # reduce 30 omitted
619
+
620
+ # reduce 31 omitted
621
+
622
+ # reduce 32 omitted
623
+
624
+ module_eval(<<'.,.,', 'parser.y', 90)
625
+ def _reduce_33(val, _values, result)
626
+ result = :SAC_DIRECT_ADJACENT_SELECTOR
627
+ result
628
+ end
629
+ .,.,
630
+
631
+ module_eval(<<'.,.,', 'parser.y', 91)
632
+ def _reduce_34(val, _values, result)
633
+ result = :SAC_CHILD_SELECTOR
634
+ result
635
+ end
636
+ .,.,
637
+
638
+ module_eval(<<'.,.,', 'parser.y', 92)
639
+ def _reduce_35(val, _values, result)
640
+ result = :SAC_DESCENDANT_SELECTOR
641
+ result
642
+ end
643
+ .,.,
644
+
645
+ # reduce 36 omitted
646
+
647
+ # reduce 37 omitted
648
+
649
+ # reduce 38 omitted
650
+
651
+ module_eval(<<'.,.,', 'parser.y', 102)
652
+ def _reduce_39(val, _values, result)
653
+ self.document_handler.end_selector([val.first].flatten.compact)
654
+
655
+ result
656
+ end
657
+ .,.,
658
+
659
+ # reduce 40 omitted
660
+
661
+ # reduce 41 omitted
662
+
663
+ # reduce 42 omitted
664
+
665
+ module_eval(<<'.,.,', 'parser.y', 111)
666
+ def _reduce_43(val, _values, result)
667
+ result = val.flatten
668
+ result
669
+ end
670
+ .,.,
671
+
672
+ module_eval(<<'.,.,', 'parser.y', 115)
673
+ def _reduce_44(val, _values, result)
674
+ self.document_handler.start_selector([val.first].flatten.compact)
675
+
676
+ result
677
+ end
678
+ .,.,
679
+
680
+ module_eval(<<'.,.,', 'parser.y', 118)
681
+ def _reduce_45(val, _values, result)
682
+ yyerrok
683
+ self.document_handler.start_selector([val.first].flatten.compact)
684
+
685
+ result
686
+ end
687
+ .,.,
688
+
689
+ module_eval(<<'.,.,', 'parser.y', 122)
690
+ def _reduce_46(val, _values, result)
691
+ self.document_handler.start_selector([val.first].flatten.compact)
692
+
693
+ result
694
+ end
695
+ .,.,
696
+
697
+ module_eval(<<'.,.,', 'parser.y', 126)
698
+ def _reduce_47(val, _values, result)
699
+ result = [val[0], val[3]]
700
+ result
701
+ end
702
+ .,.,
703
+
704
+ # reduce 48 omitted
705
+
706
+ module_eval(<<'.,.,', 'parser.y', 131)
707
+ def _reduce_49(val, _values, result)
708
+ result = if val[1].nil?
709
+ val.first
710
+ else
711
+ ConditionalSelector.new(val.first, val[1])
712
+ end
713
+
714
+ result
715
+ end
716
+ .,.,
717
+
718
+ module_eval(<<'.,.,', 'parser.y', 138)
719
+ def _reduce_50(val, _values, result)
720
+ result = ConditionalSelector.new(nil, val.first)
721
+
722
+ result
723
+ end
724
+ .,.,
725
+
726
+ module_eval(<<'.,.,', 'parser.y', 143)
727
+ def _reduce_51(val, _values, result)
728
+ result =
729
+ case val[1]
730
+ when :SAC_DIRECT_ADJACENT_SELECTOR
731
+ SiblingSelector.new(val.first, val[2])
732
+ when :SAC_DESCENDANT_SELECTOR
733
+ DescendantSelector.new(val.first, val[2])
734
+ when :SAC_CHILD_SELECTOR
735
+ ChildSelector.new(val.first, val[2])
736
+ end
737
+
738
+ result
739
+ end
740
+ .,.,
741
+
742
+ # reduce 52 omitted
743
+
744
+ module_eval(<<'.,.,', 'parser.y', 156)
745
+ def _reduce_53(val, _values, result)
746
+ result = ClassCondition.new(val[1])
747
+ result
748
+ end
749
+ .,.,
750
+
751
+ module_eval(<<'.,.,', 'parser.y', 159)
752
+ def _reduce_54(val, _values, result)
753
+ result = ElementSelector.new(val.first)
754
+ result
755
+ end
756
+ .,.,
757
+
758
+ module_eval(<<'.,.,', 'parser.y', 160)
759
+ def _reduce_55(val, _values, result)
760
+ result = SimpleSelector.new()
761
+ result
762
+ end
763
+ .,.,
764
+
765
+ module_eval(<<'.,.,', 'parser.y', 164)
766
+ def _reduce_56(val, _values, result)
767
+ result = AttributeCondition.build(val[2], val[4])
768
+
769
+ result
770
+ end
771
+ .,.,
772
+
773
+ module_eval(<<'.,.,', 'parser.y', 169)
774
+ def _reduce_57(val, _values, result)
775
+ result = PseudoClassCondition.new(val[1])
776
+
777
+ result
778
+ end
779
+ .,.,
780
+
781
+ module_eval(<<'.,.,', 'parser.y', 171)
782
+ def _reduce_58(val, _values, result)
783
+ result = PseudoClassCondition.new(val[1])
784
+ result
785
+ end
786
+ .,.,
787
+
788
+ module_eval(<<'.,.,', 'parser.y', 175)
789
+ def _reduce_59(val, _values, result)
790
+ if value = self.property_parser.parse_tokens(
791
+ self.tokenizer.tokenize(val.flatten[0..-2].join(' '))
792
+ )
793
+
794
+ value = [value].flatten
795
+
796
+ self.document_handler.property(val.first, value, !val[4].nil?)
797
+ result = value
798
+ end
799
+
800
+ result
801
+ end
802
+ .,.,
803
+
804
+ # reduce 60 omitted
805
+
806
+ module_eval(<<'.,.,', 'parser.y', 189)
807
+ def _reduce_61(val, _values, result)
808
+ yyerrok
809
+ error = ParseException.new("Unkown property: \"#{val[1]}\"")
810
+ self.error_handler.error(error)
811
+
812
+ result
813
+ end
814
+ .,.,
815
+
816
+ module_eval(<<'.,.,', 'parser.y', 194)
817
+ def _reduce_62(val, _values, result)
818
+ yyerrok
819
+ error = ParseException.new("Unkown property: \"#{val[0]}\"")
820
+ self.error_handler.error(error)
821
+
822
+ result
823
+ end
824
+ .,.,
825
+
826
+ # reduce 63 omitted
827
+
828
+ # reduce 64 omitted
829
+
830
+ # reduce 65 omitted
831
+
832
+ # reduce 66 omitted
833
+
834
+ # reduce 67 omitted
835
+
836
+ # reduce 68 omitted
837
+
838
+ module_eval(<<'.,.,', 'parser.y', 210)
839
+ def _reduce_69(val, _values, result)
840
+ result = val
841
+ result
842
+ end
843
+ .,.,
844
+
845
+ # reduce 70 omitted
846
+
847
+ module_eval(<<'.,.,', 'parser.y', 214)
848
+ def _reduce_71(val, _values, result)
849
+ result = val
850
+ result
851
+ end
852
+ .,.,
853
+
854
+ module_eval(<<'.,.,', 'parser.y', 215)
855
+ def _reduce_72(val, _values, result)
856
+ result = val
857
+ result
858
+ end
859
+ .,.,
860
+
861
+ # reduce 73 omitted
862
+
863
+ # reduce 74 omitted
864
+
865
+ # reduce 75 omitted
866
+
867
+ # reduce 76 omitted
868
+
869
+ # reduce 77 omitted
870
+
871
+ # reduce 78 omitted
872
+
873
+ # reduce 79 omitted
874
+
875
+ # reduce 80 omitted
876
+
877
+ # reduce 81 omitted
878
+
879
+ # reduce 82 omitted
880
+
881
+ # reduce 83 omitted
882
+
883
+ # reduce 84 omitted
884
+
885
+ # reduce 85 omitted
886
+
887
+ module_eval(<<'.,.,', 'parser.y', 234)
888
+ def _reduce_86(val, _values, result)
889
+ result = Function.new(val[0], val[2].flatten.select { |x| x !~ /,/ })
890
+
891
+ result
892
+ end
893
+ .,.,
894
+
895
+ module_eval(<<'.,.,', 'parser.y', 236)
896
+ def _reduce_87(val, _values, result)
897
+ yyerrok; result = [val[0], val[2], val[3]]
898
+ result
899
+ end
900
+ .,.,
901
+
902
+ # reduce 88 omitted
903
+
904
+ # reduce 89 omitted
905
+
906
+ # reduce 90 omitted
907
+
908
+ module_eval(<<'.,.,', 'parser.y', 247)
909
+ def _reduce_91(val, _values, result)
910
+ result = CombinatorCondition.new(val[0], val[1])
911
+
912
+ result
913
+ end
914
+ .,.,
915
+
916
+ module_eval(<<'.,.,', 'parser.y', 250)
917
+ def _reduce_92(val, _values, result)
918
+ result = CombinatorCondition.new(val[0], val[1])
919
+
920
+ result
921
+ end
922
+ .,.,
923
+
924
+ module_eval(<<'.,.,', 'parser.y', 253)
925
+ def _reduce_93(val, _values, result)
926
+ result = CombinatorCondition.new(val[0], val[1])
927
+
928
+ result
929
+ end
930
+ .,.,
931
+
932
+ module_eval(<<'.,.,', 'parser.y', 256)
933
+ def _reduce_94(val, _values, result)
934
+ result = CombinatorCondition.new(val[0], val[1])
935
+
936
+ result
937
+ end
938
+ .,.,
939
+
940
+ # reduce 95 omitted
941
+
942
+ # reduce 96 omitted
943
+
944
+ # reduce 97 omitted
945
+
946
+ # reduce 98 omitted
947
+
948
+ module_eval(<<'.,.,', 'parser.y', 264)
949
+ def _reduce_99(val, _values, result)
950
+ result = IDCondition.new(val.first)
951
+ result
952
+ end
953
+ .,.,
954
+
955
+ module_eval(<<'.,.,', 'parser.y', 267)
956
+ def _reduce_100(val, _values, result)
957
+ result = [val.first, val[2]]
958
+ result
959
+ end
960
+ .,.,
961
+
962
+ module_eval(<<'.,.,', 'parser.y', 268)
963
+ def _reduce_101(val, _values, result)
964
+ result = [val.first, val[2]]
965
+ result
966
+ end
967
+ .,.,
968
+
969
+ # reduce 102 omitted
970
+
971
+ # reduce 103 omitted
972
+
973
+ # reduce 104 omitted
974
+
975
+ # reduce 105 omitted
976
+
977
+ # reduce 106 omitted
978
+
979
+ # reduce 107 omitted
980
+
981
+ # reduce 108 omitted
982
+
983
+ # reduce 109 omitted
984
+
985
+ # reduce 110 omitted
986
+
987
+ # reduce 111 omitted
988
+
989
+ # reduce 112 omitted
990
+
991
+ # reduce 113 omitted
992
+
993
+ # reduce 114 omitted
994
+
995
+ # reduce 115 omitted
996
+
997
+ # reduce 116 omitted
998
+
999
+ # reduce 117 omitted
1000
+
1001
+ # reduce 118 omitted
1002
+
1003
+ # reduce 119 omitted
1004
+
1005
+ # reduce 120 omitted
1006
+
1007
+ def _reduce_none(val, _values, result)
1008
+ val[0]
1009
+ end
1010
+
1011
+ end # class GeneratedParser
1012
+ end # module RSAC