antisamy 0.0.1 → 0.2.0

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