csspool 3.0.2 → 4.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. data/Gemfile.lock +4 -4
  2. data/Manifest.txt +13 -0
  3. data/README.rdoc +1 -1
  4. data/lib/csspool/css/document.rb +6 -0
  5. data/lib/csspool/css/document_handler.rb +41 -7
  6. data/lib/csspool/css/document_query.rb +14 -0
  7. data/lib/csspool/css/import_rule.rb +8 -4
  8. data/lib/csspool/css/keyframes_block.rb +14 -0
  9. data/lib/csspool/css/keyframes_rule.rb +14 -0
  10. data/lib/csspool/css/media.rb +5 -3
  11. data/lib/csspool/css/namespace_rule.rb +13 -0
  12. data/lib/csspool/css/parser.rb +970 -425
  13. data/lib/csspool/css/parser.y +227 -30
  14. data/lib/csspool/css/tokenizer.rb +31 -7
  15. data/lib/csspool/css/tokenizer.rex +36 -7
  16. data/lib/csspool/css.rb +4 -0
  17. data/lib/csspool/selector.rb +5 -1
  18. data/lib/csspool/selectors/attribute.rb +6 -1
  19. data/lib/csspool/selectors/pseudo.rb +17 -0
  20. data/lib/csspool/selectors/pseudo_element.rb +13 -0
  21. data/lib/csspool/selectors/simple.rb +0 -4
  22. data/lib/csspool/selectors/type.rb +7 -0
  23. data/lib/csspool/selectors/universal.rb +7 -0
  24. data/lib/csspool/selectors.rb +1 -1
  25. data/lib/csspool/terms/math.rb +18 -0
  26. data/lib/csspool/terms.rb +1 -0
  27. data/lib/csspool/visitors/children.rb +1 -1
  28. data/lib/csspool/visitors/comparable.rb +8 -2
  29. data/lib/csspool/visitors/iterator.rb +1 -1
  30. data/lib/csspool/visitors/to_css.rb +41 -21
  31. data/lib/csspool.rb +1 -1
  32. data/test/_local_helper.rb +2 -0
  33. data/test/css/test_document_query.rb +76 -0
  34. data/test/css/test_import_rule.rb +1 -1
  35. data/test/css/test_keyframes_rule.rb +93 -0
  36. data/test/css/test_namespace_rule.rb +54 -0
  37. data/test/css/test_parser.rb +46 -1
  38. data/test/css/test_tokenizer.rb +0 -45
  39. data/test/helper.rb +6 -1
  40. data/test/sac/test_parser.rb +16 -3
  41. data/test/test_declaration.rb +39 -0
  42. data/test/test_parser.rb +26 -13
  43. data/test/test_selector.rb +205 -5
  44. data/test/test_term.rb +23 -0
  45. data/test/visitors/test_to_css.rb +34 -23
  46. metadata +136 -118
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.4.9
3
+ # This file is automatically generated by Racc 1.4.8
4
4
  # from Racc grammer file "".
5
5
  #
6
6
 
@@ -9,7 +9,7 @@ module CSSPool
9
9
  module CSS
10
10
  class Parser < Racc::Parser
11
11
 
12
- module_eval(<<'...end parser.y/module_eval...', 'parser.y', 318)
12
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 511)
13
13
 
14
14
  def numeric thing
15
15
  thing = thing.gsub(/[^\d.]/, '')
@@ -21,7 +21,11 @@ def interpret_identifier s
21
21
  end
22
22
 
23
23
  def interpret_uri s
24
- interpret_escapes s.match(/^url\((.*)\)$/mu)[1].strip.match(/^(['"]?)((?:\\.|.)*)\1$/mu)[2]
24
+ interpret_escapes s.match(/^url\((.*)\)$/mui)[1].strip.match(/^(['"]?)((?:\\.|.)*)\1$/mu)[2]
25
+ end
26
+
27
+ def interpret_string_no_quote s
28
+ interpret_escapes s.match(/^(.*)\)$/mu)[1].strip.match(/^(['"]?)((?:\\.|.)*)\1$/mu)[2]
25
29
  end
26
30
 
27
31
  def interpret_string s
@@ -50,247 +54,384 @@ end
50
54
  ##### State transition tables begin ###
51
55
 
52
56
  racc_action_table = [
53
- 13, 17, 41, 52, 22, 25, 61, 56, 51, 4,
54
- 6, 9, 13, 17, 83, 42, 22, 25, 3, 62,
55
- 63, 4, 6, 9, 46, 94, 13, 17, 66, 81,
56
- 22, 25, 8, 10, 14, 4, 6, 9, 80, 73,
57
- 6, 9, 22, 82, 8, 10, 14, 4, 6, 9,
58
- 22, 74, 47, 66, 67, 4, 6, 9, 8, 10,
59
- 14, 22, 25, 10, 14, 93, 4, 6, 9, 22,
60
- 25, 10, 14, 79, 4, 6, 9, 22, 25, 10,
61
- 14, 78, 4, 6, 9, 6, 9, 22, 25, 8,
62
- 10, 14, 4, 6, 9, 52, 72, 8, 10, 14,
63
- 51, 34, 121, 105, 35, 109, 10, 14, 10, 14,
64
- 89, 98, 90, 6, 9, 8, 10, 14, 116, 91,
65
- 119, 92, 97, 100, 102, 104, 107, 110, 112, 115,
66
- 118, 120, 105, 122, 109, 143, 10, 14, 123, 87,
67
- 98, 88, 6, 9, 6, 9, 124, 116, 125, 119,
68
- 126, 97, 100, 102, 104, 107, 110, 112, 115, 118,
69
- 120, 105, 127, 109, 114, 10, 14, 10, 14, 98,
70
- 68, 69, 70, 71, 86, 133, 116, 134, 119, 135,
71
- 97, 100, 102, 104, 107, 110, 112, 115, 118, 120,
72
- 105, 136, 109, 76, 34, 77, 137, 59, 98, 57,
73
- 40, 141, 37, 36, 141, 116, 147, 119, 31, 97,
74
- 100, 102, 104, 107, 110, 112, 115, 118, 120, 105,
75
- 141, 109, 141, nil, nil, nil, nil, 98, nil, nil,
76
- nil, nil, nil, nil, 116, nil, 119, nil, 97, 100,
77
- 102, 104, 107, 110, 112, 115, 118, 120, 105, nil,
78
- 109, nil, 131, nil, nil, nil, 98, nil, nil, 129,
79
- nil, nil, nil, 116, nil, 119, 128, 97, 100, 102,
80
- 104, 107, 110, 112, 115, 118, 120, 105, nil, 109,
81
- nil, nil, nil, nil, nil, 98, nil, nil, nil, nil,
82
- nil, nil, 116, nil, 119, nil, 97, 100, 102, 104,
83
- 107, 110, 112, 115, 118, 120, 119, nil, 97, 100,
84
- 102, 104, 107, 110, 112, 115, 118 ]
57
+ 9, 10, 166, 48, 30, 24, 123, 124, 105, 32,
58
+ 38, 40, 48, 107, 52, 48, 9, 10, 121, 76,
59
+ 30, 24, -47, 185, 170, 32, 38, 40, 219, 171,
60
+ 218, 49, 18, 76, 20, 184, 11, 38, 40, 77,
61
+ 49, 3, 22, 49, 165, 31, 39, 41, 18, 106,
62
+ 20, 81, 11, 77, 91, 9, 10, 174, 22, 30,
63
+ 24, 31, 39, 41, 32, 38, 40, 92, 93, 97,
64
+ 175, 9, 10, 39, 41, 30, 24, 210, 30, 211,
65
+ 32, 38, 40, 32, 38, 40, 94, 18, 30, 20,
66
+ 190, 11, 118, 32, 38, 40, 119, 22, 118, 109,
67
+ 31, 39, 41, 18, 30, 20, 213, 11, 212, 32,
68
+ 38, 40, 111, 22, 67, 81, 31, 39, 41, 31,
69
+ 39, 41, 189, 58, 183, 123, 59, 69, 113, 31,
70
+ 39, 41, 68, 161, 30, 24, 112, 160, 114, 32,
71
+ 38, 40, 110, 30, 24, 31, 39, 41, 32, 38,
72
+ 40, 67, 30, 24, 81, 85, 159, 32, 38, 40,
73
+ 86, 30, 24, 158, 69, 97, 32, 38, 40, 68,
74
+ 98, 18, 154, 20, 172, 31, 39, 41, 191, 173,
75
+ 18, 22, 20, 130, 31, 39, 41, 38, 40, 18,
76
+ 22, 20, 129, 31, 39, 41, 38, 40, 121, 22,
77
+ 30, 24, 31, 39, 41, 32, 38, 40, 30, 38,
78
+ 40, 30, 198, 32, 38, 40, 32, 38, 40, 81,
79
+ 85, 38, 40, 39, 41, 86, 130, 76, 18, 199,
80
+ 20, 71, 39, 41, 81, 85, 129, 200, 22, 80,
81
+ 86, 31, 39, 41, 128, 39, 41, 77, 202, 31,
82
+ 39, 41, 31, 39, 41, 30, 24, 39, 41, 61,
83
+ 32, 38, 40, 182, 176, 177, 178, 153, 127, 144,
84
+ 152, 146, 145, 147, 148, 149, 150, 151, 117, 58,
85
+ 118, 126, 125, 18, 142, 20, 52, 207, 193, 179,
86
+ 180, 181, 141, 22, 170, 195, 31, 39, 41, 67,
87
+ 172, 153, 194, 144, 152, 146, 145, 147, 148, 149,
88
+ 150, 151, 69, 142, 122, 52, 229, 81, 85, 115,
89
+ 104, 141, 157, 86, 167, 217, 140, 216, 67, 215,
90
+ 153, 214, 144, 152, 146, 145, 147, 148, 149, 150,
91
+ 151, 69, 142, 209, 52, 208, 99, 96, 220, 221,
92
+ 141, 222, 223, 89, 226, 140, 88, 67, 78, 153,
93
+ 230, 144, 152, 146, 145, 147, 148, 149, 150, 151,
94
+ 69, 142, 231, 52, 232, 233, 234, 235, 236, 141,
95
+ 237, 238, 239, 240, 140, 241, 67, 46, 153, 226,
96
+ 144, 152, 146, 145, 147, 148, 149, 150, 151, 69,
97
+ 142, 226, 52, 42, 226, nil, nil, nil, 141, nil,
98
+ nil, nil, nil, 140, nil, 67, nil, 153, nil, 144,
99
+ 152, 146, 145, 147, 148, 149, 150, 151, 69, 142,
100
+ nil, 52, 206, nil, nil, nil, nil, 141, nil, nil,
101
+ nil, nil, 140, nil, 67, nil, 153, nil, 144, 152,
102
+ 146, 145, 147, 148, 149, 150, 151, 69, 142, nil,
103
+ 52, nil, nil, nil, nil, nil, 141, nil, nil, nil,
104
+ nil, 140, nil, 67, nil, 153, nil, 144, 152, 146,
105
+ 145, 147, 148, 149, 150, 151, 69, nil, nil, nil,
106
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
107
+ 140 ]
85
108
 
86
109
  racc_action_check = [
87
- 29, 29, 14, 21, 29, 29, 28, 21, 21, 29,
88
- 29, 29, 2, 2, 55, 14, 2, 2, 1, 28,
89
- 28, 2, 2, 2, 17, 75, 27, 27, 75, 54,
90
- 27, 27, 29, 29, 29, 27, 27, 27, 53, 42,
91
- 15, 15, 59, 55, 2, 2, 2, 59, 59, 59,
92
- 64, 42, 17, 33, 33, 64, 64, 64, 27, 27,
93
- 27, 19, 19, 15, 15, 73, 19, 19, 19, 16,
94
- 16, 59, 59, 51, 16, 16, 16, 25, 25, 64,
95
- 64, 49, 25, 25, 25, 20, 20, 12, 12, 19,
96
- 19, 19, 12, 12, 12, 80, 40, 16, 16, 16,
97
- 80, 8, 83, 116, 8, 116, 25, 25, 20, 20,
98
- 70, 116, 70, 11, 11, 12, 12, 12, 116, 71,
99
- 116, 71, 116, 116, 116, 116, 116, 116, 116, 116,
100
- 116, 116, 121, 87, 121, 121, 11, 11, 88, 69,
101
- 121, 69, 5, 5, 18, 18, 89, 121, 90, 121,
102
- 91, 121, 121, 121, 121, 121, 121, 121, 121, 121,
103
- 121, 82, 92, 82, 82, 5, 5, 18, 18, 82,
104
- 36, 36, 36, 36, 66, 99, 82, 103, 82, 106,
105
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
106
- 132, 108, 132, 45, 45, 45, 111, 26, 132, 24,
107
- 13, 117, 10, 9, 139, 132, 140, 132, 3, 132,
108
- 132, 132, 132, 132, 132, 132, 132, 132, 132, 143,
109
- 144, 143, 148, nil, nil, nil, nil, 143, nil, nil,
110
- nil, nil, nil, nil, 143, nil, 143, nil, 143, 143,
111
- 143, 143, 143, 143, 143, 143, 143, 143, 96, nil,
112
- 96, nil, 96, nil, nil, nil, 96, nil, nil, 96,
113
- nil, nil, nil, 96, nil, 96, 96, 96, 96, 96,
114
- 96, 96, 96, 96, 96, 96, 96, 114, nil, 114,
115
- nil, nil, nil, nil, nil, 114, nil, nil, nil, nil,
116
- nil, nil, 114, nil, 114, nil, 114, 114, 114, 114,
117
- 114, 114, 114, 114, 114, 114, 113, nil, 113, 113,
118
- 113, 113, 113, 113, 113, 113, 113 ]
110
+ 2, 2, 84, 10, 2, 2, 57, 57, 40, 2,
111
+ 2, 2, 11, 40, 11, 51, 7, 7, 51, 72,
112
+ 7, 7, 72, 111, 96, 7, 7, 7, 181, 96,
113
+ 181, 10, 2, 159, 2, 111, 2, 36, 36, 72,
114
+ 11, 1, 2, 51, 84, 2, 2, 2, 7, 40,
115
+ 7, 82, 7, 159, 27, 6, 6, 105, 7, 6,
116
+ 6, 7, 7, 7, 6, 6, 6, 27, 27, 106,
117
+ 107, 5, 5, 36, 36, 5, 5, 177, 89, 177,
118
+ 5, 5, 5, 89, 89, 89, 27, 6, 90, 6,
119
+ 120, 6, 120, 90, 90, 90, 50, 6, 50, 41,
120
+ 6, 6, 6, 5, 222, 5, 178, 5, 178, 222,
121
+ 222, 222, 41, 5, 20, 81, 5, 5, 5, 89,
122
+ 89, 89, 116, 18, 110, 116, 18, 20, 41, 90,
123
+ 90, 90, 20, 79, 24, 24, 41, 78, 41, 24,
124
+ 24, 24, 41, 12, 12, 222, 222, 222, 12, 12,
125
+ 12, 127, 13, 13, 163, 163, 75, 13, 13, 13,
126
+ 163, 14, 14, 74, 127, 31, 14, 14, 14, 127,
127
+ 31, 12, 70, 12, 99, 24, 24, 24, 123, 99,
128
+ 13, 12, 13, 66, 12, 12, 12, 28, 28, 14,
129
+ 13, 14, 65, 13, 13, 13, 34, 34, 132, 14,
130
+ 17, 17, 14, 14, 14, 17, 17, 17, 112, 35,
131
+ 35, 114, 134, 112, 112, 112, 114, 114, 114, 83,
132
+ 83, 37, 37, 28, 28, 83, 135, 21, 17, 136,
133
+ 17, 21, 34, 34, 23, 23, 138, 139, 17, 23,
134
+ 23, 17, 17, 17, 64, 35, 35, 21, 156, 112,
135
+ 112, 112, 114, 114, 114, 19, 19, 37, 37, 19,
136
+ 19, 19, 19, 108, 108, 108, 108, 143, 63, 143,
137
+ 143, 143, 143, 143, 143, 143, 143, 143, 47, 47,
138
+ 47, 62, 60, 19, 131, 19, 131, 166, 131, 108,
139
+ 108, 108, 131, 19, 174, 131, 19, 19, 19, 131,
140
+ 175, 131, 131, 131, 131, 131, 131, 131, 131, 131,
141
+ 131, 131, 131, 207, 56, 207, 207, 73, 73, 46,
142
+ 39, 207, 73, 73, 86, 180, 131, 180, 207, 179,
143
+ 207, 179, 207, 207, 207, 207, 207, 207, 207, 207,
144
+ 207, 207, 67, 176, 67, 176, 32, 30, 185, 186,
145
+ 67, 187, 188, 26, 205, 207, 25, 67, 22, 67,
146
+ 208, 67, 67, 67, 67, 67, 67, 67, 67, 67,
147
+ 67, 229, 209, 229, 210, 211, 212, 213, 214, 229,
148
+ 215, 216, 217, 218, 67, 219, 229, 9, 229, 227,
149
+ 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
150
+ 196, 228, 196, 3, 245, nil, nil, nil, 196, nil,
151
+ nil, nil, nil, 229, nil, 196, nil, 196, nil, 196,
152
+ 196, 196, 196, 196, 196, 196, 196, 196, 196, 165,
153
+ nil, 165, 165, nil, nil, nil, nil, 165, nil, nil,
154
+ nil, nil, 196, nil, 165, nil, 165, nil, 165, 165,
155
+ 165, 165, 165, 165, 165, 165, 165, 165, 206, nil,
156
+ 206, nil, nil, nil, nil, nil, 206, nil, nil, nil,
157
+ nil, 165, nil, 206, nil, 206, nil, 206, 206, 206,
158
+ 206, 206, 206, 206, 206, 206, 206, nil, nil, nil,
159
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
160
+ 206 ]
119
161
 
120
162
  racc_action_pointer = [
121
- nil, 18, 10, 208, nil, 130, nil, nil, 95, 197,
122
- 196, 101, 81, 196, -4, 28, 63, 20, 132, 55,
123
- 73, -3, nil, nil, 190, 71, 189, 24, -1, -2,
124
- nil, nil, nil, 45, nil, nil, 156, nil, nil, nil,
125
- 91, nil, 33, nil, nil, 188, nil, nil, nil, 71,
126
- nil, 67, nil, 33, 19, 7, nil, nil, nil, 36,
127
- nil, nil, nil, nil, 44, nil, 168, nil, nil, 135,
128
- 106, 115, nil, 47, nil, 20, nil, nil, nil, nil,
129
- 89, nil, 157, 66, nil, nil, nil, 119, 124, 132,
130
- 134, 136, 148, nil, nil, nil, 244, nil, nil, 168,
131
- nil, nil, nil, 170, nil, nil, 172, nil, 184, nil,
132
- nil, 189, nil, 285, 273, nil, 99, 168, nil, nil,
133
- nil, 128, nil, nil, nil, nil, nil, nil, nil, nil,
134
- nil, nil, 186, nil, nil, nil, nil, nil, nil, 171,
135
- 188, nil, nil, 215, 187, nil, nil, nil, 189, nil,
136
- nil ]
163
+ nil, 41, -2, 403, nil, 69, 53, 14, nil, 383,
164
+ -1, 8, 137, 146, 155, nil, nil, 194, 117, 249,
165
+ 95, 221, 352, 229, 128, 347, 345, 47, 175, nil,
166
+ 300, 159, 299, nil, 184, 197, 25, 209, nil, 314,
167
+ 2, 93, nil, nil, nil, nil, 314, 273, nil, nil,
168
+ 91, 11, nil, nil, nil, nil, 304, -2, nil, nil,
169
+ 272, nil, 272, 260, 237, 185, 176, 338, nil, nil,
170
+ 162, nil, 13, 312, 154, 148, nil, nil, 128, 123,
171
+ nil, 110, 46, 214, -5, nil, 318, nil, nil, 72,
172
+ 82, nil, nil, nil, nil, nil, 18, nil, nil, 168,
173
+ nil, nil, nil, nil, nil, 10, 63, 23, 249, nil,
174
+ 118, 17, 202, nil, 205, nil, 117, nil, nil, nil,
175
+ 85, nil, nil, 172, nil, nil, nil, 132, nil, nil,
176
+ nil, 280, 191, nil, 205, 219, 222, nil, 229, 219,
177
+ nil, nil, nil, 246, nil, nil, nil, nil, nil, nil,
178
+ nil, nil, nil, nil, nil, nil, 238, nil, nil, 27,
179
+ nil, nil, nil, 149, nil, 425, 238, nil, nil, nil,
180
+ nil, nil, nil, nil, 288, 294, 339, 73, 102, 325,
181
+ 321, 24, nil, nil, nil, 330, 331, 343, 334, nil,
182
+ nil, nil, nil, nil, nil, nil, 396, nil, nil, nil,
183
+ nil, nil, nil, nil, nil, 321, 454, 309, 346, 358,
184
+ 360, 361, 362, 363, 364, 366, 367, 368, 369, 371,
185
+ nil, nil, 98, nil, nil, nil, nil, 356, 368, 367,
186
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
187
+ nil, nil, nil, nil, nil, 371, nil ]
137
188
 
138
189
  racc_action_default = [
139
- -1, -103, -103, -103, -38, -35, -47, -36, -103, -103,
140
- -103, -39, -18, -103, -103, -40, -19, -103, -41, -103,
141
- -42, -103, -37, -2, -103, -103, -28, -5, -30, -6,
142
- -7, 151, -34, -103, -15, -22, -103, -48, -43, -16,
143
- -103, -56, -103, -44, -17, -103, -12, -13, -45, -103,
144
- -46, -103, -68, -61, -103, -103, -24, -26, -25, -103,
145
- -3, -31, -32, -33, -103, -4, -103, -21, -55, -103,
146
- -103, -103, -8, -103, -57, -103, -10, -11, -20, -69,
147
- -60, -23, -103, -103, -27, -29, -14, -103, -103, -103,
148
- -103, -103, -103, -58, -9, -59, -75, -91, -85, -76,
149
- -99, -77, -93, -78, -92, -89, -79, -94, -80, -102,
150
- -95, -81, -96, -103, -103, -97, -103, -67, -98, -100,
151
- -87, -103, -50, -49, -51, -52, -54, -53, -71, -72,
152
- -74, -70, -103, -101, -88, -86, -84, -82, -90, -67,
153
- -103, -66, -62, -103, -67, -73, -63, -83, -67, -64,
154
- -65 ]
190
+ -1, -160, -160, -160, -2, -6, -7, -8, -9, -160,
191
+ -160, -160, -23, -24, -25, -26, -27, -160, -160, -160,
192
+ -160, -47, -160, -160, -160, -160, -57, -59, -65, -66,
193
+ -69, -160, -74, -73, -78, -79, -80, -81, -86, -160,
194
+ -160, -160, 247, -3, -4, -5, -160, -160, -14, -15,
195
+ -160, -160, -159, -20, -21, -22, -160, -160, -19, -30,
196
+ -160, -32, -160, -35, -36, -37, -38, -160, -139, -144,
197
+ -160, -40, -43, -160, -160, -49, -50, -51, -160, -160,
198
+ -53, -108, -113, -114, -160, -121, -160, -54, -55, -160,
199
+ -160, -60, -61, -62, -63, -64, -160, -71, -75, -160,
200
+ -82, -83, -84, -85, -87, -69, -160, -160, -160, -101,
201
+ -160, -160, -160, -106, -160, -10, -160, -12, -13, -17,
202
+ -160, -158, -28, -160, -29, -31, -33, -160, -138, -136,
203
+ -143, -128, -129, -130, -131, -132, -133, -134, -135, -160,
204
+ -140, -142, -146, -160, -148, -149, -150, -151, -152, -153,
205
+ -154, -155, -156, -157, -39, -42, -160, -45, -46, -47,
206
+ -41, -52, -109, -112, -111, -160, -160, -122, -56, -58,
207
+ -70, -77, -72, -76, -160, -160, -160, -160, -160, -160,
208
+ -160, -160, -100, -102, -103, -160, -160, -68, -160, -11,
209
+ -16, -18, -34, -123, -124, -125, -160, -127, -145, -141,
210
+ -137, -147, -44, -48, -110, -120, -160, -160, -160, -160,
211
+ -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
212
+ -104, -105, -160, -107, -126, -115, -119, -120, -120, -160,
213
+ -88, -89, -90, -91, -92, -93, -94, -95, -96, -97,
214
+ -98, -99, -67, -116, -117, -120, -118 ]
155
215
 
156
216
  racc_goto_table = [
157
- 117, 54, 142, 33, 84, 32, 58, 85, 64, 39,
158
- 23, 38, 45, 44, 130, 43, 49, 2, 48, 1,
159
- 50, 132, 138, nil, 146, nil, nil, nil, nil, 149,
160
- nil, nil, 139, 150, 140, 60, nil, 65, nil, 144,
161
- 75, nil, nil, nil, nil, nil, nil, nil, nil, nil,
162
- 145, nil, nil, nil, nil, nil, nil, nil, nil, nil,
163
- 95, 148 ]
217
+ 139, 79, 186, 188, 187, 70, 66, 65, 62, 47,
218
+ 50, 57, 225, 95, 162, 163, 87, 168, 90, 100,
219
+ 101, 102, 103, 53, 54, 55, 169, 203, 56, 108,
220
+ 60, 51, 2, 4, 243, 244, 43, 44, 45, 1,
221
+ 116, 196, 201, nil, nil, nil, nil, nil, nil, nil,
222
+ 120, 156, 246, nil, nil, nil, 155, nil, nil, nil,
223
+ nil, 164, nil, nil, 197, nil, nil, nil, nil, nil,
224
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
225
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
226
+ nil, nil, nil, nil, nil, nil, nil, nil, 205, nil,
227
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
228
+ nil, 242, 187, 66, 65, 192, nil, nil, nil, nil,
229
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 224,
230
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 227,
231
+ 228, 204, nil, nil, nil, nil, nil, nil, nil, nil,
232
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
233
+ nil, nil, 245 ]
164
234
 
165
235
  racc_goto_check = [
166
- 26, 13, 27, 8, 14, 19, 12, 15, 17, 6,
167
- 2, 19, 7, 6, 26, 19, 6, 3, 19, 1,
168
- 19, 28, 31, nil, 27, nil, nil, nil, nil, 27,
169
- nil, nil, 26, 27, 26, 2, nil, 2, nil, 26,
170
- 8, nil, nil, nil, nil, nil, nil, nil, nil, nil,
171
- 26, nil, nil, nil, nil, nil, nil, nil, nil, nil,
172
- 13, 26 ]
236
+ 46, 27, 33, 37, 33, 24, 22, 21, 18, 8,
237
+ 8, 9, 47, 36, 43, 43, 30, 31, 34, 36,
238
+ 36, 36, 36, 7, 7, 7, 32, 28, 7, 38,
239
+ 7, 10, 3, 2, 47, 47, 2, 2, 2, 1,
240
+ 9, 48, 50, nil, nil, nil, nil, nil, nil, nil,
241
+ 8, 27, 47, nil, nil, nil, 24, nil, nil, nil,
242
+ nil, 27, nil, nil, 46, nil, nil, nil, nil, nil,
243
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
244
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
245
+ nil, nil, nil, nil, nil, nil, nil, nil, 46, nil,
246
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
247
+ nil, 37, 33, 22, 21, 18, nil, nil, nil, nil,
248
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 46,
249
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 46,
250
+ 46, 27, nil, nil, nil, nil, nil, nil, nil, nil,
251
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
252
+ nil, nil, 46 ]
173
253
 
174
254
  racc_goto_pointer = [
175
- nil, 19, 8, 17, nil, nil, -3, -5, -5, nil,
176
- nil, nil, -19, -20, -55, -57, nil, -20, nil, 0,
177
- nil, nil, nil, nil, nil, nil, -82, -115, -75, nil,
178
- nil, -91, nil, nil, nil, nil, nil ]
255
+ nil, 39, 31, 32, nil, nil, nil, 11, -1, -7,
256
+ 20, nil, nil, nil, nil, nil, nil, nil, -12, nil,
257
+ nil, -13, -14, nil, -16, nil, nil, -22, -132, nil,
258
+ -8, -72, -64, -110, -9, nil, -15, -111, -11, nil,
259
+ nil, nil, nil, -67, nil, nil, -67, -193, -90, nil,
260
+ -101, nil, nil, nil, nil ]
179
261
 
180
262
  racc_goto_default = [
181
- nil, nil, nil, nil, 27, 29, 30, nil, nil, 12,
182
- 16, 19, 21, nil, 24, 26, 28, nil, 5, 7,
183
- 11, 15, 18, 20, 53, 55, nil, nil, nil, 96,
184
- 99, 101, 103, 106, 108, 111, 113 ]
263
+ nil, nil, nil, nil, 5, 6, 7, 8, nil, nil,
264
+ 132, 12, 13, 14, 15, 16, 17, 19, nil, 63,
265
+ 64, 138, 135, 21, nil, 72, 73, nil, 74, 75,
266
+ 23, 25, 26, 27, nil, 28, 29, nil, 33, 34,
267
+ 35, 36, 37, 83, 82, 84, nil, nil, nil, 131,
268
+ 133, 134, 136, 137, 143 ]
185
269
 
186
270
  racc_reduce_table = [
187
271
  0, 0, :racc_error,
188
- 0, 40, :_reduce_1,
189
- 2, 38, :_reduce_2,
190
- 2, 39, :_reduce_none,
191
- 2, 39, :_reduce_none,
192
- 1, 39, :_reduce_none,
193
- 1, 39, :_reduce_none,
194
- 1, 39, :_reduce_none,
195
- 3, 41, :_reduce_8,
196
- 4, 42, :_reduce_9,
197
- 3, 42, :_reduce_10,
198
- 2, 44, :_reduce_none,
199
- 1, 44, :_reduce_12,
200
- 1, 44, :_reduce_13,
201
- 3, 45, :_reduce_14,
202
- 1, 45, :_reduce_15,
203
- 2, 43, :_reduce_none,
204
- 2, 43, :_reduce_none,
205
- 1, 43, :_reduce_none,
206
- 1, 43, :_reduce_none,
207
- 3, 47, :_reduce_20,
208
- 3, 48, :_reduce_21,
209
- 2, 48, :_reduce_22,
210
- 3, 46, :_reduce_23,
211
- 2, 46, :_reduce_24,
212
- 2, 49, :_reduce_25,
213
- 2, 49, :_reduce_26,
214
- 3, 51, :_reduce_27,
215
- 1, 51, :_reduce_28,
216
- 3, 52, :_reduce_29,
272
+ 0, 53, :_reduce_1,
273
+ 2, 51, :_reduce_2,
274
+ 2, 52, :_reduce_none,
275
+ 2, 52, :_reduce_none,
276
+ 2, 52, :_reduce_none,
277
+ 1, 52, :_reduce_none,
217
278
  1, 52, :_reduce_none,
218
- 1, 54, :_reduce_31,
219
- 1, 54, :_reduce_32,
220
- 1, 54, :_reduce_33,
221
- 2, 53, :_reduce_34,
222
- 1, 53, :_reduce_35,
223
- 1, 53, :_reduce_36,
224
- 1, 55, :_reduce_37,
225
- 1, 55, :_reduce_38,
226
- 1, 56, :_reduce_39,
227
- 1, 56, :_reduce_40,
228
- 1, 56, :_reduce_41,
229
- 1, 56, :_reduce_42,
230
- 2, 56, :_reduce_43,
231
- 2, 56, :_reduce_44,
232
- 2, 56, :_reduce_45,
233
- 2, 56, :_reduce_46,
234
- 1, 57, :_reduce_47,
235
- 2, 58, :_reduce_48,
236
- 5, 59, :_reduce_49,
237
- 5, 59, :_reduce_50,
238
- 5, 59, :_reduce_51,
239
- 5, 59, :_reduce_52,
240
- 5, 59, :_reduce_53,
241
- 5, 59, :_reduce_54,
242
- 3, 59, :_reduce_55,
243
- 2, 60, :_reduce_56,
244
- 3, 60, :_reduce_57,
245
- 4, 60, :_reduce_58,
246
- 3, 50, :_reduce_none,
247
- 2, 50, :_reduce_none,
248
- 1, 50, :_reduce_none,
249
- 4, 61, :_reduce_62,
250
- 5, 61, :_reduce_63,
251
- 5, 61, :_reduce_64,
252
- 6, 61, :_reduce_65,
253
- 1, 64, :_reduce_66,
254
- 0, 64, :_reduce_67,
255
- 1, 62, :_reduce_68,
256
- 2, 62, :_reduce_69,
257
- 1, 65, :_reduce_none,
258
- 1, 65, :_reduce_none,
259
- 1, 65, :_reduce_none,
260
- 3, 63, :_reduce_73,
261
- 2, 63, :_reduce_74,
262
- 1, 63, :_reduce_75,
263
- 1, 66, :_reduce_none,
264
- 1, 66, :_reduce_none,
265
- 1, 66, :_reduce_none,
266
- 1, 66, :_reduce_none,
267
- 1, 66, :_reduce_none,
268
- 1, 66, :_reduce_none,
269
- 2, 72, :_reduce_82,
270
- 3, 72, :_reduce_83,
271
- 2, 71, :_reduce_84,
272
- 1, 71, :_reduce_85,
273
- 2, 70, :_reduce_86,
274
- 1, 70, :_reduce_87,
275
- 2, 69, :_reduce_88,
276
- 1, 69, :_reduce_89,
277
- 2, 68, :_reduce_90,
278
- 1, 68, :_reduce_91,
279
- 1, 68, :_reduce_92,
280
- 1, 68, :_reduce_93,
281
- 1, 68, :_reduce_94,
282
- 1, 68, :_reduce_95,
283
- 1, 68, :_reduce_96,
284
- 1, 68, :_reduce_97,
285
- 1, 68, :_reduce_98,
286
- 1, 73, :_reduce_99,
287
- 1, 73, :_reduce_100,
288
- 2, 67, :_reduce_101,
289
- 1, 67, :_reduce_102 ]
290
-
291
- racc_reduce_n = 103
292
-
293
- racc_shift_n = 151
279
+ 1, 52, :_reduce_none,
280
+ 1, 52, :_reduce_none,
281
+ 3, 54, :_reduce_10,
282
+ 4, 55, :_reduce_11,
283
+ 3, 55, :_reduce_12,
284
+ 2, 58, :_reduce_none,
285
+ 1, 58, :_reduce_14,
286
+ 1, 58, :_reduce_15,
287
+ 4, 56, :_reduce_16,
288
+ 3, 56, :_reduce_17,
289
+ 3, 59, :_reduce_18,
290
+ 1, 59, :_reduce_19,
291
+ 2, 57, :_reduce_none,
292
+ 2, 57, :_reduce_none,
293
+ 2, 57, :_reduce_none,
294
+ 1, 57, :_reduce_none,
295
+ 1, 57, :_reduce_none,
296
+ 1, 57, :_reduce_none,
297
+ 1, 62, :_reduce_none,
298
+ 1, 62, :_reduce_none,
299
+ 3, 64, :_reduce_28,
300
+ 3, 66, :_reduce_29,
301
+ 2, 66, :_reduce_30,
302
+ 3, 65, :_reduce_31,
303
+ 2, 65, :_reduce_32,
304
+ 3, 67, :_reduce_33,
305
+ 3, 68, :_reduce_34,
306
+ 1, 68, :_reduce_35,
307
+ 1, 69, :_reduce_none,
308
+ 1, 69, :_reduce_none,
309
+ 1, 69, :_reduce_none,
310
+ 3, 63, :_reduce_none,
311
+ 2, 63, :_reduce_none,
312
+ 3, 73, :_reduce_41,
313
+ 2, 74, :_reduce_none,
314
+ 1, 74, :_reduce_none,
315
+ 3, 75, :_reduce_44,
316
+ 2, 75, :_reduce_45,
317
+ 2, 76, :_reduce_46,
318
+ 0, 78, :_reduce_none,
319
+ 3, 78, :_reduce_48,
320
+ 1, 78, :_reduce_none,
321
+ 1, 79, :_reduce_none,
322
+ 1, 79, :_reduce_51,
323
+ 3, 61, :_reduce_52,
324
+ 2, 61, :_reduce_53,
325
+ 2, 80, :_reduce_54,
326
+ 2, 80, :_reduce_55,
327
+ 3, 81, :_reduce_56,
328
+ 1, 81, :_reduce_57,
329
+ 3, 82, :_reduce_58,
330
+ 1, 82, :_reduce_none,
331
+ 1, 84, :_reduce_60,
332
+ 1, 84, :_reduce_61,
333
+ 1, 84, :_reduce_62,
334
+ 1, 84, :_reduce_63,
335
+ 2, 83, :_reduce_64,
336
+ 1, 83, :_reduce_65,
337
+ 1, 83, :_reduce_66,
338
+ 3, 87, :_reduce_67,
339
+ 1, 87, :_reduce_none,
340
+ 1, 88, :_reduce_69,
341
+ 3, 88, :_reduce_70,
342
+ 2, 88, :_reduce_71,
343
+ 3, 88, :_reduce_72,
344
+ 1, 85, :_reduce_73,
345
+ 1, 85, :_reduce_74,
346
+ 2, 85, :_reduce_75,
347
+ 3, 85, :_reduce_76,
348
+ 3, 85, :_reduce_77,
349
+ 1, 86, :_reduce_78,
350
+ 1, 86, :_reduce_79,
351
+ 1, 86, :_reduce_80,
352
+ 1, 86, :_reduce_81,
353
+ 2, 86, :_reduce_82,
354
+ 2, 86, :_reduce_83,
355
+ 2, 86, :_reduce_84,
356
+ 2, 86, :_reduce_85,
357
+ 1, 89, :_reduce_86,
358
+ 2, 90, :_reduce_87,
359
+ 5, 91, :_reduce_88,
360
+ 5, 91, :_reduce_89,
361
+ 5, 91, :_reduce_90,
362
+ 5, 91, :_reduce_91,
363
+ 5, 91, :_reduce_92,
364
+ 5, 91, :_reduce_93,
365
+ 5, 91, :_reduce_94,
366
+ 5, 91, :_reduce_95,
367
+ 5, 91, :_reduce_96,
368
+ 5, 91, :_reduce_97,
369
+ 5, 91, :_reduce_98,
370
+ 5, 91, :_reduce_99,
371
+ 3, 91, :_reduce_100,
372
+ 2, 92, :_reduce_101,
373
+ 3, 92, :_reduce_102,
374
+ 3, 92, :_reduce_103,
375
+ 4, 92, :_reduce_104,
376
+ 4, 92, :_reduce_105,
377
+ 2, 92, :_reduce_106,
378
+ 4, 92, :_reduce_107,
379
+ 1, 93, :_reduce_none,
380
+ 2, 93, :_reduce_none,
381
+ 3, 77, :_reduce_none,
382
+ 2, 77, :_reduce_none,
383
+ 2, 77, :_reduce_none,
384
+ 1, 77, :_reduce_none,
385
+ 1, 77, :_reduce_none,
386
+ 4, 94, :_reduce_115,
387
+ 5, 94, :_reduce_116,
388
+ 5, 94, :_reduce_117,
389
+ 6, 94, :_reduce_118,
390
+ 1, 97, :_reduce_119,
391
+ 0, 97, :_reduce_120,
392
+ 1, 95, :_reduce_121,
393
+ 2, 95, :_reduce_122,
394
+ 1, 98, :_reduce_none,
395
+ 1, 98, :_reduce_none,
396
+ 1, 98, :_reduce_none,
397
+ 3, 96, :_reduce_126,
398
+ 2, 96, :_reduce_127,
399
+ 1, 96, :_reduce_128,
400
+ 1, 99, :_reduce_none,
401
+ 1, 99, :_reduce_none,
402
+ 1, 99, :_reduce_none,
403
+ 1, 99, :_reduce_none,
404
+ 1, 99, :_reduce_none,
405
+ 1, 99, :_reduce_none,
406
+ 1, 99, :_reduce_none,
407
+ 2, 71, :_reduce_136,
408
+ 3, 71, :_reduce_137,
409
+ 2, 70, :_reduce_138,
410
+ 1, 70, :_reduce_139,
411
+ 1, 103, :_reduce_140,
412
+ 2, 102, :_reduce_141,
413
+ 1, 102, :_reduce_142,
414
+ 2, 72, :_reduce_143,
415
+ 1, 72, :_reduce_144,
416
+ 2, 101, :_reduce_145,
417
+ 1, 101, :_reduce_146,
418
+ 2, 100, :_reduce_147,
419
+ 1, 100, :_reduce_148,
420
+ 1, 100, :_reduce_149,
421
+ 1, 100, :_reduce_150,
422
+ 1, 100, :_reduce_151,
423
+ 1, 100, :_reduce_152,
424
+ 1, 100, :_reduce_153,
425
+ 1, 100, :_reduce_154,
426
+ 1, 100, :_reduce_155,
427
+ 1, 104, :_reduce_156,
428
+ 1, 104, :_reduce_157,
429
+ 2, 60, :_reduce_158,
430
+ 1, 60, :_reduce_159 ]
431
+
432
+ racc_reduce_n = 160
433
+
434
+ racc_shift_n = 247
294
435
 
295
436
  racc_token_table = {
296
437
  false => 0,
@@ -328,10 +469,23 @@ racc_token_table = {
328
469
  :URI => 32,
329
470
  :IMPORTANT_SYM => 33,
330
471
  :MEDIA_SYM => 34,
331
- "." => 35,
332
- ":" => 36 }
333
-
334
- racc_nt_base = 37
472
+ :NTH_PSEUDO_CLASS => 35,
473
+ :DOCUMENT_QUERY_SYM => 36,
474
+ :FUNCTION_NO_QUOTE => 37,
475
+ :NAMESPACE_SYM => 38,
476
+ :TILDE => 39,
477
+ :PREFIXMATCH => 40,
478
+ :SUFFIXMATCH => 41,
479
+ :SUBSTRINGMATCH => 42,
480
+ :NOT_PSEUDO_CLASS => 43,
481
+ :KEYFRAMES_SYM => 44,
482
+ :MATCHES_PSEUDO_CLASS => 45,
483
+ :MATH => 46,
484
+ "|" => 47,
485
+ "." => 48,
486
+ ":" => 49 }
487
+
488
+ racc_nt_base = 50
335
489
 
336
490
  racc_use_result_var = true
337
491
 
@@ -387,6 +541,19 @@ Racc_token_to_s_table = [
387
541
  "URI",
388
542
  "IMPORTANT_SYM",
389
543
  "MEDIA_SYM",
544
+ "NTH_PSEUDO_CLASS",
545
+ "DOCUMENT_QUERY_SYM",
546
+ "FUNCTION_NO_QUOTE",
547
+ "NAMESPACE_SYM",
548
+ "TILDE",
549
+ "PREFIXMATCH",
550
+ "SUFFIXMATCH",
551
+ "SUBSTRINGMATCH",
552
+ "NOT_PSEUDO_CLASS",
553
+ "KEYFRAMES_SYM",
554
+ "MATCHES_PSEUDO_CLASS",
555
+ "MATH",
556
+ "\"|\"",
390
557
  "\".\"",
391
558
  "\":\"",
392
559
  "$start",
@@ -395,36 +562,54 @@ Racc_token_to_s_table = [
395
562
  "@1",
396
563
  "charset",
397
564
  "import",
565
+ "namespace",
398
566
  "body",
399
567
  "import_location",
400
568
  "medium",
569
+ "ident",
401
570
  "ruleset",
571
+ "conditional_rule",
572
+ "keyframes_rule",
402
573
  "media",
574
+ "document_query",
403
575
  "start_media",
404
- "start_selector",
576
+ "start_document_query",
577
+ "url_match_fns",
578
+ "url_match_fn",
579
+ "function_no_quote",
580
+ "function",
581
+ "uri",
582
+ "start_keyframes_rule",
583
+ "keyframes_blocks",
584
+ "keyframes_block",
585
+ "start_keyframes_block",
405
586
  "declarations",
587
+ "keyframes_selectors",
588
+ "keyframes_selector",
589
+ "start_selector",
406
590
  "selectors",
407
591
  "selector",
408
592
  "simple_selector",
409
593
  "combinator",
410
594
  "element_name",
411
595
  "hcap",
596
+ "simple_selectors",
597
+ "ident_with_namespace",
412
598
  "hash",
413
599
  "class",
414
600
  "attrib",
415
601
  "pseudo",
602
+ "one_or_more_semis",
416
603
  "declaration",
417
604
  "property",
418
605
  "expr",
419
606
  "prio",
420
607
  "operator",
421
608
  "term",
422
- "ident",
423
609
  "numeric",
424
610
  "string",
425
- "uri",
426
611
  "hexcolor",
427
- "function",
612
+ "math",
428
613
  "unary_operator" ]
429
614
 
430
615
  Racc_debug_parser = false
@@ -433,14 +618,14 @@ Racc_debug_parser = false
433
618
 
434
619
  # reduce 0 omitted
435
620
 
436
- module_eval(<<'.,.,', 'parser.y', 9)
621
+ module_eval(<<'.,.,', 'parser.y', 17)
437
622
  def _reduce_1(val, _values, result)
438
623
  @handler.start_document
439
624
  result
440
625
  end
441
626
  .,.,
442
627
 
443
- module_eval(<<'.,.,', 'parser.y', 11)
628
+ module_eval(<<'.,.,', 'parser.y', 19)
444
629
  def _reduce_2(val, _values, result)
445
630
  @handler.end_document
446
631
  result
@@ -457,78 +642,106 @@ module_eval(<<'.,.,', 'parser.y', 11)
457
642
 
458
643
  # reduce 7 omitted
459
644
 
460
- module_eval(<<'.,.,', 'parser.y', 21)
461
- def _reduce_8(val, _values, result)
645
+ # reduce 8 omitted
646
+
647
+ # reduce 9 omitted
648
+
649
+ module_eval(<<'.,.,', 'parser.y', 31)
650
+ def _reduce_10(val, _values, result)
462
651
  @handler.charset interpret_string(val[1]), {}
463
652
  result
464
653
  end
465
654
  .,.,
466
655
 
467
- module_eval(<<'.,.,', 'parser.y', 25)
468
- def _reduce_9(val, _values, result)
656
+ module_eval(<<'.,.,', 'parser.y', 35)
657
+ def _reduce_11(val, _values, result)
469
658
  @handler.import_style [val[2]].flatten, val[1]
470
659
 
471
660
  result
472
661
  end
473
662
  .,.,
474
663
 
475
- module_eval(<<'.,.,', 'parser.y', 28)
476
- def _reduce_10(val, _values, result)
664
+ module_eval(<<'.,.,', 'parser.y', 38)
665
+ def _reduce_12(val, _values, result)
477
666
  @handler.import_style [], val[1]
478
667
 
479
668
  result
480
669
  end
481
670
  .,.,
482
671
 
483
- # reduce 11 omitted
672
+ # reduce 13 omitted
484
673
 
485
- module_eval(<<'.,.,', 'parser.y', 33)
486
- def _reduce_12(val, _values, result)
674
+ module_eval(<<'.,.,', 'parser.y', 43)
675
+ def _reduce_14(val, _values, result)
487
676
  result = Terms::String.new interpret_string val.first
488
677
  result
489
678
  end
490
679
  .,.,
491
680
 
492
- module_eval(<<'.,.,', 'parser.y', 34)
493
- def _reduce_13(val, _values, result)
681
+ module_eval(<<'.,.,', 'parser.y', 44)
682
+ def _reduce_15(val, _values, result)
494
683
  result = Terms::URI.new interpret_uri val.first
495
684
  result
496
685
  end
497
686
  .,.,
498
687
 
499
- module_eval(<<'.,.,', 'parser.y', 38)
500
- def _reduce_14(val, _values, result)
688
+ module_eval(<<'.,.,', 'parser.y', 48)
689
+ def _reduce_16(val, _values, result)
690
+ @handler.namespace val[1], val[2]
691
+
692
+ result
693
+ end
694
+ .,.,
695
+
696
+ module_eval(<<'.,.,', 'parser.y', 51)
697
+ def _reduce_17(val, _values, result)
698
+ @handler.namespace nil, val[1]
699
+
700
+ result
701
+ end
702
+ .,.,
703
+
704
+ module_eval(<<'.,.,', 'parser.y', 56)
705
+ def _reduce_18(val, _values, result)
501
706
  result = [val.first, Terms::Ident.new(interpret_identifier val.last)]
502
707
 
503
708
  result
504
709
  end
505
710
  .,.,
506
711
 
507
- module_eval(<<'.,.,', 'parser.y', 41)
508
- def _reduce_15(val, _values, result)
712
+ module_eval(<<'.,.,', 'parser.y', 59)
713
+ def _reduce_19(val, _values, result)
509
714
  result = Terms::Ident.new interpret_identifier val.first
510
715
 
511
716
  result
512
717
  end
513
718
  .,.,
514
719
 
515
- # reduce 16 omitted
720
+ # reduce 20 omitted
516
721
 
517
- # reduce 17 omitted
722
+ # reduce 21 omitted
518
723
 
519
- # reduce 18 omitted
724
+ # reduce 22 omitted
520
725
 
521
- # reduce 19 omitted
726
+ # reduce 23 omitted
522
727
 
523
- module_eval(<<'.,.,', 'parser.y', 51)
524
- def _reduce_20(val, _values, result)
728
+ # reduce 24 omitted
729
+
730
+ # reduce 25 omitted
731
+
732
+ # reduce 26 omitted
733
+
734
+ # reduce 27 omitted
735
+
736
+ module_eval(<<'.,.,', 'parser.y', 75)
737
+ def _reduce_28(val, _values, result)
525
738
  @handler.end_media val.first
526
739
  result
527
740
  end
528
741
  .,.,
529
742
 
530
- module_eval(<<'.,.,', 'parser.y', 55)
531
- def _reduce_21(val, _values, result)
743
+ module_eval(<<'.,.,', 'parser.y', 79)
744
+ def _reduce_29(val, _values, result)
532
745
  result = [val[1]].flatten
533
746
  @handler.start_media result
534
747
 
@@ -536,46 +749,149 @@ module_eval(<<'.,.,', 'parser.y', 55)
536
749
  end
537
750
  .,.,
538
751
 
539
- module_eval(<<'.,.,', 'parser.y', 58)
540
- def _reduce_22(val, _values, result)
752
+ module_eval(<<'.,.,', 'parser.y', 82)
753
+ def _reduce_30(val, _values, result)
541
754
  result = []
542
755
  result
543
756
  end
544
757
  .,.,
545
758
 
546
- module_eval(<<'.,.,', 'parser.y', 62)
547
- def _reduce_23(val, _values, result)
759
+ module_eval(<<'.,.,', 'parser.y', 85)
760
+ def _reduce_31(val, _values, result)
761
+ @handler.end_document_query
762
+ result
763
+ end
764
+ .,.,
765
+
766
+ module_eval(<<'.,.,', 'parser.y', 86)
767
+ def _reduce_32(val, _values, result)
768
+ @handler.end_document_query
769
+ result
770
+ end
771
+ .,.,
772
+
773
+ module_eval(<<'.,.,', 'parser.y', 90)
774
+ def _reduce_33(val, _values, result)
775
+ @handler.start_document_query val[1]
776
+
777
+ result
778
+ end
779
+ .,.,
780
+
781
+ module_eval(<<'.,.,', 'parser.y', 95)
782
+ def _reduce_34(val, _values, result)
783
+ result = [val[0], val[2]].flatten
784
+
785
+ result
786
+ end
787
+ .,.,
788
+
789
+ module_eval(<<'.,.,', 'parser.y', 98)
790
+ def _reduce_35(val, _values, result)
791
+ result = val
792
+
793
+ result
794
+ end
795
+ .,.,
796
+
797
+ # reduce 36 omitted
798
+
799
+ # reduce 37 omitted
800
+
801
+ # reduce 38 omitted
802
+
803
+ # reduce 39 omitted
804
+
805
+ # reduce 40 omitted
806
+
807
+ module_eval(<<'.,.,', 'parser.y', 112)
808
+ def _reduce_41(val, _values, result)
809
+ @handler.start_keyframes_rule val[1]
810
+
811
+ result
812
+ end
813
+ .,.,
814
+
815
+ # reduce 42 omitted
816
+
817
+ # reduce 43 omitted
818
+
819
+ module_eval(<<'.,.,', 'parser.y', 120)
820
+ def _reduce_44(val, _values, result)
821
+ @handler.end_keyframes_block
822
+ result
823
+ end
824
+ .,.,
825
+
826
+ module_eval(<<'.,.,', 'parser.y', 121)
827
+ def _reduce_45(val, _values, result)
828
+ @handler.end_keyframes_block
829
+ result
830
+ end
831
+ .,.,
832
+
833
+ module_eval(<<'.,.,', 'parser.y', 125)
834
+ def _reduce_46(val, _values, result)
835
+ @handler.start_keyframes_block val[0]
836
+
837
+ result
838
+ end
839
+ .,.,
840
+
841
+ # reduce 47 omitted
842
+
843
+ module_eval(<<'.,.,', 'parser.y', 130)
844
+ def _reduce_48(val, _values, result)
845
+ result = val[0] + ', ' + val[2]
846
+
847
+ result
848
+ end
849
+ .,.,
850
+
851
+ # reduce 49 omitted
852
+
853
+ # reduce 50 omitted
854
+
855
+ module_eval(<<'.,.,', 'parser.y', 136)
856
+ def _reduce_51(val, _values, result)
857
+ result = val[0].strip
858
+ result
859
+ end
860
+ .,.,
861
+
862
+ module_eval(<<'.,.,', 'parser.y', 140)
863
+ def _reduce_52(val, _values, result)
548
864
  @handler.end_selector val.first
549
865
 
550
866
  result
551
867
  end
552
868
  .,.,
553
869
 
554
- module_eval(<<'.,.,', 'parser.y', 65)
555
- def _reduce_24(val, _values, result)
870
+ module_eval(<<'.,.,', 'parser.y', 143)
871
+ def _reduce_53(val, _values, result)
556
872
  @handler.end_selector val.first
557
873
 
558
874
  result
559
875
  end
560
876
  .,.,
561
877
 
562
- module_eval(<<'.,.,', 'parser.y', 69)
563
- def _reduce_25(val, _values, result)
878
+ module_eval(<<'.,.,', 'parser.y', 147)
879
+ def _reduce_54(val, _values, result)
564
880
  result = val.last
565
881
  result
566
882
  end
567
883
  .,.,
568
884
 
569
- module_eval(<<'.,.,', 'parser.y', 71)
570
- def _reduce_26(val, _values, result)
885
+ module_eval(<<'.,.,', 'parser.y', 149)
886
+ def _reduce_55(val, _values, result)
571
887
  @handler.start_selector val.first
572
888
 
573
889
  result
574
890
  end
575
891
  .,.,
576
892
 
577
- module_eval(<<'.,.,', 'parser.y', 77)
578
- def _reduce_27(val, _values, result)
893
+ module_eval(<<'.,.,', 'parser.y', 155)
894
+ def _reduce_56(val, _values, result)
579
895
  # FIXME: should always garantee array
580
896
  sel = Selector.new(val.first, {})
581
897
  result = [sel, val[2]].flatten
@@ -584,16 +900,16 @@ module_eval(<<'.,.,', 'parser.y', 77)
584
900
  end
585
901
  .,.,
586
902
 
587
- module_eval(<<'.,.,', 'parser.y', 83)
588
- def _reduce_28(val, _values, result)
903
+ module_eval(<<'.,.,', 'parser.y', 161)
904
+ def _reduce_57(val, _values, result)
589
905
  result = [Selector.new(val.first, {})]
590
906
 
591
907
  result
592
908
  end
593
909
  .,.,
594
910
 
595
- module_eval(<<'.,.,', 'parser.y', 89)
596
- def _reduce_29(val, _values, result)
911
+ module_eval(<<'.,.,', 'parser.y', 167)
912
+ def _reduce_58(val, _values, result)
597
913
  val = val.flatten
598
914
  val[2].combinator = val.delete_at 1
599
915
  result = val
@@ -602,31 +918,38 @@ module_eval(<<'.,.,', 'parser.y', 89)
602
918
  end
603
919
  .,.,
604
920
 
605
- # reduce 30 omitted
921
+ # reduce 59 omitted
606
922
 
607
- module_eval(<<'.,.,', 'parser.y', 96)
608
- def _reduce_31(val, _values, result)
923
+ module_eval(<<'.,.,', 'parser.y', 174)
924
+ def _reduce_60(val, _values, result)
609
925
  result = :s
610
926
  result
611
927
  end
612
928
  .,.,
613
929
 
614
- module_eval(<<'.,.,', 'parser.y', 97)
615
- def _reduce_32(val, _values, result)
930
+ module_eval(<<'.,.,', 'parser.y', 175)
931
+ def _reduce_61(val, _values, result)
616
932
  result = :>
617
933
  result
618
934
  end
619
935
  .,.,
620
936
 
621
- module_eval(<<'.,.,', 'parser.y', 98)
622
- def _reduce_33(val, _values, result)
937
+ module_eval(<<'.,.,', 'parser.y', 176)
938
+ def _reduce_62(val, _values, result)
623
939
  result = :+
624
940
  result
625
941
  end
626
942
  .,.,
627
943
 
628
- module_eval(<<'.,.,', 'parser.y', 102)
629
- def _reduce_34(val, _values, result)
944
+ module_eval(<<'.,.,', 'parser.y', 177)
945
+ def _reduce_63(val, _values, result)
946
+ result = :~
947
+ result
948
+ end
949
+ .,.,
950
+
951
+ module_eval(<<'.,.,', 'parser.y', 181)
952
+ def _reduce_64(val, _values, result)
630
953
  selector = val.first
631
954
  selector.additional_selectors = val.last
632
955
  result = [selector]
@@ -635,15 +958,15 @@ module_eval(<<'.,.,', 'parser.y', 102)
635
958
  end
636
959
  .,.,
637
960
 
638
- module_eval(<<'.,.,', 'parser.y', 106)
639
- def _reduce_35(val, _values, result)
961
+ module_eval(<<'.,.,', 'parser.y', 185)
962
+ def _reduce_65(val, _values, result)
640
963
  result = val
641
964
  result
642
965
  end
643
966
  .,.,
644
967
 
645
- module_eval(<<'.,.,', 'parser.y', 109)
646
- def _reduce_36(val, _values, result)
968
+ module_eval(<<'.,.,', 'parser.y', 188)
969
+ def _reduce_66(val, _values, result)
647
970
  ss = Selectors::Simple.new nil, nil
648
971
  ss.additional_selectors = val.flatten
649
972
  result = [ss]
@@ -652,188 +975,339 @@ module_eval(<<'.,.,', 'parser.y', 109)
652
975
  end
653
976
  .,.,
654
977
 
655
- module_eval(<<'.,.,', 'parser.y', 115)
656
- def _reduce_37(val, _values, result)
657
- result = Selectors::Type.new interpret_identifier val.first
978
+ module_eval(<<'.,.,', 'parser.y', 194)
979
+ def _reduce_67(val, _values, result)
980
+ result = [val[0], val[2]].flatten
981
+ result
982
+ end
983
+ .,.,
984
+
985
+ # reduce 68 omitted
986
+
987
+ module_eval(<<'.,.,', 'parser.y', 198)
988
+ def _reduce_69(val, _values, result)
989
+ result = [interpret_identifier(val[0]), nil]
990
+ result
991
+ end
992
+ .,.,
993
+
994
+ module_eval(<<'.,.,', 'parser.y', 199)
995
+ def _reduce_70(val, _values, result)
996
+ result = [interpret_identifier(val[2]), interpret_identifier(val[0])]
997
+ result
998
+ end
999
+ .,.,
1000
+
1001
+ module_eval(<<'.,.,', 'parser.y', 200)
1002
+ def _reduce_71(val, _values, result)
1003
+ result = [interpret_identifier(val[1]), nil]
1004
+ result
1005
+ end
1006
+ .,.,
1007
+
1008
+ module_eval(<<'.,.,', 'parser.y', 201)
1009
+ def _reduce_72(val, _values, result)
1010
+ result = [interpret_identifier(val[2]), '*']
1011
+ result
1012
+ end
1013
+ .,.,
1014
+
1015
+ module_eval(<<'.,.,', 'parser.y', 204)
1016
+ def _reduce_73(val, _values, result)
1017
+ result = Selectors::Type.new val.first[0], nil, val.first[1]
658
1018
  result
659
1019
  end
660
1020
  .,.,
661
1021
 
662
- module_eval(<<'.,.,', 'parser.y', 116)
663
- def _reduce_38(val, _values, result)
1022
+ module_eval(<<'.,.,', 'parser.y', 205)
1023
+ def _reduce_74(val, _values, result)
664
1024
  result = Selectors::Universal.new val.first
665
1025
  result
666
1026
  end
667
1027
  .,.,
668
1028
 
669
- module_eval(<<'.,.,', 'parser.y', 119)
670
- def _reduce_39(val, _values, result)
1029
+ module_eval(<<'.,.,', 'parser.y', 206)
1030
+ def _reduce_75(val, _values, result)
1031
+ result = Selectors::Universal.new val[1]
1032
+ result
1033
+ end
1034
+ .,.,
1035
+
1036
+ module_eval(<<'.,.,', 'parser.y', 207)
1037
+ def _reduce_76(val, _values, result)
1038
+ result = Selectors::Universal.new val[2], nil, val[0]
1039
+ result
1040
+ end
1041
+ .,.,
1042
+
1043
+ module_eval(<<'.,.,', 'parser.y', 208)
1044
+ def _reduce_77(val, _values, result)
1045
+ result = Selectors::Universal.new val[2], nil, interpret_identifier(val[0])
1046
+ result
1047
+ end
1048
+ .,.,
1049
+
1050
+ module_eval(<<'.,.,', 'parser.y', 211)
1051
+ def _reduce_78(val, _values, result)
671
1052
  result = val
672
1053
  result
673
1054
  end
674
1055
  .,.,
675
1056
 
676
- module_eval(<<'.,.,', 'parser.y', 120)
677
- def _reduce_40(val, _values, result)
1057
+ module_eval(<<'.,.,', 'parser.y', 212)
1058
+ def _reduce_79(val, _values, result)
678
1059
  result = val
679
1060
  result
680
1061
  end
681
1062
  .,.,
682
1063
 
683
- module_eval(<<'.,.,', 'parser.y', 121)
684
- def _reduce_41(val, _values, result)
1064
+ module_eval(<<'.,.,', 'parser.y', 213)
1065
+ def _reduce_80(val, _values, result)
685
1066
  result = val
686
1067
  result
687
1068
  end
688
1069
  .,.,
689
1070
 
690
- module_eval(<<'.,.,', 'parser.y', 122)
691
- def _reduce_42(val, _values, result)
1071
+ module_eval(<<'.,.,', 'parser.y', 214)
1072
+ def _reduce_81(val, _values, result)
692
1073
  result = val
693
1074
  result
694
1075
  end
695
1076
  .,.,
696
1077
 
697
- module_eval(<<'.,.,', 'parser.y', 123)
698
- def _reduce_43(val, _values, result)
1078
+ module_eval(<<'.,.,', 'parser.y', 215)
1079
+ def _reduce_82(val, _values, result)
699
1080
  result = val.flatten
700
1081
  result
701
1082
  end
702
1083
  .,.,
703
1084
 
704
- module_eval(<<'.,.,', 'parser.y', 124)
705
- def _reduce_44(val, _values, result)
1085
+ module_eval(<<'.,.,', 'parser.y', 216)
1086
+ def _reduce_83(val, _values, result)
706
1087
  result = val.flatten
707
1088
  result
708
1089
  end
709
1090
  .,.,
710
1091
 
711
- module_eval(<<'.,.,', 'parser.y', 125)
712
- def _reduce_45(val, _values, result)
1092
+ module_eval(<<'.,.,', 'parser.y', 217)
1093
+ def _reduce_84(val, _values, result)
713
1094
  result = val.flatten
714
1095
  result
715
1096
  end
716
1097
  .,.,
717
1098
 
718
- module_eval(<<'.,.,', 'parser.y', 126)
719
- def _reduce_46(val, _values, result)
1099
+ module_eval(<<'.,.,', 'parser.y', 218)
1100
+ def _reduce_85(val, _values, result)
720
1101
  result = val.flatten
721
1102
  result
722
1103
  end
723
1104
  .,.,
724
1105
 
725
- module_eval(<<'.,.,', 'parser.y', 130)
726
- def _reduce_47(val, _values, result)
1106
+ module_eval(<<'.,.,', 'parser.y', 222)
1107
+ def _reduce_86(val, _values, result)
727
1108
  result = Selectors::Id.new interpret_identifier val.first.sub(/^#/, '')
728
1109
 
729
1110
  result
730
1111
  end
731
1112
  .,.,
732
1113
 
733
- module_eval(<<'.,.,', 'parser.y', 134)
734
- def _reduce_48(val, _values, result)
1114
+ module_eval(<<'.,.,', 'parser.y', 226)
1115
+ def _reduce_87(val, _values, result)
735
1116
  result = Selectors::Class.new interpret_identifier val.last
736
1117
 
737
1118
  result
738
1119
  end
739
1120
  .,.,
740
1121
 
741
- module_eval(<<'.,.,', 'parser.y', 139)
742
- def _reduce_49(val, _values, result)
1122
+ module_eval(<<'.,.,', 'parser.y', 231)
1123
+ def _reduce_88(val, _values, result)
743
1124
  result = Selectors::Attribute.new(
744
- interpret_identifier(val[1]),
1125
+ val[1][0],
745
1126
  interpret_identifier(val[3]),
746
- Selectors::Attribute::EQUALS
1127
+ Selectors::Attribute::EQUALS,
1128
+ val[1][1]
747
1129
  )
748
1130
 
749
1131
  result
750
1132
  end
751
1133
  .,.,
752
1134
 
753
- module_eval(<<'.,.,', 'parser.y', 146)
754
- def _reduce_50(val, _values, result)
1135
+ module_eval(<<'.,.,', 'parser.y', 239)
1136
+ def _reduce_89(val, _values, result)
755
1137
  result = Selectors::Attribute.new(
756
- interpret_identifier(val[1]),
1138
+ val[1][0],
757
1139
  interpret_string(val[3]),
758
- Selectors::Attribute::EQUALS
1140
+ Selectors::Attribute::EQUALS,
1141
+ val[1][1]
759
1142
  )
760
1143
 
761
1144
  result
762
1145
  end
763
1146
  .,.,
764
1147
 
765
- module_eval(<<'.,.,', 'parser.y', 153)
766
- def _reduce_51(val, _values, result)
1148
+ module_eval(<<'.,.,', 'parser.y', 247)
1149
+ def _reduce_90(val, _values, result)
767
1150
  result = Selectors::Attribute.new(
768
- interpret_identifier(val[1]),
1151
+ val[1][0],
769
1152
  interpret_string(val[3]),
770
- Selectors::Attribute::INCLUDES
1153
+ Selectors::Attribute::INCLUDES,
1154
+ val[1][1]
771
1155
  )
772
1156
 
773
1157
  result
774
1158
  end
775
1159
  .,.,
776
1160
 
777
- module_eval(<<'.,.,', 'parser.y', 160)
778
- def _reduce_52(val, _values, result)
1161
+ module_eval(<<'.,.,', 'parser.y', 255)
1162
+ def _reduce_91(val, _values, result)
779
1163
  result = Selectors::Attribute.new(
780
- interpret_identifier(val[1]),
1164
+ val[1][0],
781
1165
  interpret_identifier(val[3]),
782
- Selectors::Attribute::INCLUDES
1166
+ Selectors::Attribute::INCLUDES,
1167
+ val[1][1]
783
1168
  )
784
1169
 
785
1170
  result
786
1171
  end
787
1172
  .,.,
788
1173
 
789
- module_eval(<<'.,.,', 'parser.y', 167)
790
- def _reduce_53(val, _values, result)
1174
+ module_eval(<<'.,.,', 'parser.y', 263)
1175
+ def _reduce_92(val, _values, result)
791
1176
  result = Selectors::Attribute.new(
792
- interpret_identifier(val[1]),
1177
+ val[1][0],
793
1178
  interpret_identifier(val[3]),
794
- Selectors::Attribute::DASHMATCH
1179
+ Selectors::Attribute::DASHMATCH,
1180
+ val[1][1]
795
1181
  )
796
1182
 
797
1183
  result
798
1184
  end
799
1185
  .,.,
800
1186
 
801
- module_eval(<<'.,.,', 'parser.y', 174)
802
- def _reduce_54(val, _values, result)
1187
+ module_eval(<<'.,.,', 'parser.y', 271)
1188
+ def _reduce_93(val, _values, result)
803
1189
  result = Selectors::Attribute.new(
804
- interpret_identifier(val[1]),
1190
+ val[1][0],
805
1191
  interpret_string(val[3]),
806
- Selectors::Attribute::DASHMATCH
1192
+ Selectors::Attribute::DASHMATCH,
1193
+ val[1][1]
807
1194
  )
808
1195
 
809
1196
  result
810
1197
  end
811
1198
  .,.,
812
1199
 
813
- module_eval(<<'.,.,', 'parser.y', 181)
814
- def _reduce_55(val, _values, result)
1200
+ module_eval(<<'.,.,', 'parser.y', 279)
1201
+ def _reduce_94(val, _values, result)
815
1202
  result = Selectors::Attribute.new(
816
- interpret_identifier(val[1]),
1203
+ val[1][0],
1204
+ interpret_identifier(val[3]),
1205
+ Selectors::Attribute::PREFIXMATCH,
1206
+ val[1][1]
1207
+ )
1208
+
1209
+ result
1210
+ end
1211
+ .,.,
1212
+
1213
+ module_eval(<<'.,.,', 'parser.y', 287)
1214
+ def _reduce_95(val, _values, result)
1215
+ result = Selectors::Attribute.new(
1216
+ val[1][0],
1217
+ interpret_string(val[3]),
1218
+ Selectors::Attribute::PREFIXMATCH,
1219
+ val[1][1]
1220
+ )
1221
+
1222
+ result
1223
+ end
1224
+ .,.,
1225
+
1226
+ module_eval(<<'.,.,', 'parser.y', 295)
1227
+ def _reduce_96(val, _values, result)
1228
+ result = Selectors::Attribute.new(
1229
+ val[1][0],
1230
+ interpret_identifier(val[3]),
1231
+ Selectors::Attribute::SUFFIXMATCH,
1232
+ val[1][1]
1233
+ )
1234
+
1235
+ result
1236
+ end
1237
+ .,.,
1238
+
1239
+ module_eval(<<'.,.,', 'parser.y', 303)
1240
+ def _reduce_97(val, _values, result)
1241
+ result = Selectors::Attribute.new(
1242
+ val[1][0],
1243
+ interpret_string(val[3]),
1244
+ Selectors::Attribute::SUFFIXMATCH,
1245
+ val[1][1]
1246
+ )
1247
+
1248
+ result
1249
+ end
1250
+ .,.,
1251
+
1252
+ module_eval(<<'.,.,', 'parser.y', 311)
1253
+ def _reduce_98(val, _values, result)
1254
+ result = Selectors::Attribute.new(
1255
+ val[1][0],
1256
+ interpret_identifier(val[3]),
1257
+ Selectors::Attribute::SUBSTRINGMATCH,
1258
+ val[1][1]
1259
+ )
1260
+
1261
+ result
1262
+ end
1263
+ .,.,
1264
+
1265
+ module_eval(<<'.,.,', 'parser.y', 319)
1266
+ def _reduce_99(val, _values, result)
1267
+ result = Selectors::Attribute.new(
1268
+ val[1][0],
1269
+ interpret_string(val[3]),
1270
+ Selectors::Attribute::SUBSTRINGMATCH,
1271
+ val[1][1]
1272
+ )
1273
+
1274
+ result
1275
+ end
1276
+ .,.,
1277
+
1278
+ module_eval(<<'.,.,', 'parser.y', 327)
1279
+ def _reduce_100(val, _values, result)
1280
+ result = Selectors::Attribute.new(
1281
+ val[1][0],
817
1282
  nil,
818
- Selectors::Attribute::SET
1283
+ Selectors::Attribute::SET,
1284
+ val[1][1]
819
1285
  )
820
1286
 
821
1287
  result
822
1288
  end
823
1289
  .,.,
824
1290
 
825
- module_eval(<<'.,.,', 'parser.y', 190)
826
- def _reduce_56(val, _values, result)
827
- result = Selectors::PseudoClass.new(
828
- interpret_identifier(val[1])
1291
+ module_eval(<<'.,.,', 'parser.y', 337)
1292
+ def _reduce_101(val, _values, result)
1293
+ result = Selectors::pseudo interpret_identifier(val[1])
1294
+
1295
+ result
1296
+ end
1297
+ .,.,
1298
+
1299
+ module_eval(<<'.,.,', 'parser.y', 340)
1300
+ def _reduce_102(val, _values, result)
1301
+ result = Selectors::PseudoElement.new(
1302
+ interpret_identifier(val[2])
829
1303
  )
830
1304
 
831
1305
  result
832
1306
  end
833
1307
  .,.,
834
1308
 
835
- module_eval(<<'.,.,', 'parser.y', 195)
836
- def _reduce_57(val, _values, result)
1309
+ module_eval(<<'.,.,', 'parser.y', 345)
1310
+ def _reduce_103(val, _values, result)
837
1311
  result = Selectors::PseudoClass.new(
838
1312
  interpret_identifier(val[1].sub(/\($/, '')),
839
1313
  ''
@@ -843,8 +1317,8 @@ module_eval(<<'.,.,', 'parser.y', 195)
843
1317
  end
844
1318
  .,.,
845
1319
 
846
- module_eval(<<'.,.,', 'parser.y', 201)
847
- def _reduce_58(val, _values, result)
1320
+ module_eval(<<'.,.,', 'parser.y', 351)
1321
+ def _reduce_104(val, _values, result)
848
1322
  result = Selectors::PseudoClass.new(
849
1323
  interpret_identifier(val[1].sub(/\($/, '')),
850
1324
  interpret_identifier(val[2])
@@ -854,76 +1328,117 @@ module_eval(<<'.,.,', 'parser.y', 201)
854
1328
  end
855
1329
  .,.,
856
1330
 
857
- # reduce 59 omitted
1331
+ module_eval(<<'.,.,', 'parser.y', 357)
1332
+ def _reduce_105(val, _values, result)
1333
+ result = Selectors::PseudoClass.new(
1334
+ 'not',
1335
+ val[2].first.to_s
1336
+ )
1337
+
1338
+ result
1339
+ end
1340
+ .,.,
858
1341
 
859
- # reduce 60 omitted
1342
+ module_eval(<<'.,.,', 'parser.y', 363)
1343
+ def _reduce_106(val, _values, result)
1344
+ result = Selectors::PseudoClass.new(
1345
+ interpret_identifier(val[1].sub(/\(.*/, '')),
1346
+ interpret_identifier(val[1].sub(/.*\(/, '').sub(/\).*/, ''))
1347
+ )
1348
+
1349
+ result
1350
+ end
1351
+ .,.,
1352
+
1353
+ module_eval(<<'.,.,', 'parser.y', 369)
1354
+ def _reduce_107(val, _values, result)
1355
+ result = Selectors::PseudoClass.new(
1356
+ val[1].split('(').first.strip,
1357
+ val[2].join(', ')
1358
+ )
1359
+
1360
+ result
1361
+ end
1362
+ .,.,
860
1363
 
861
- # reduce 61 omitted
1364
+ # reduce 108 omitted
862
1365
 
863
- module_eval(<<'.,.,', 'parser.y', 214)
864
- def _reduce_62(val, _values, result)
1366
+ # reduce 109 omitted
1367
+
1368
+ # reduce 110 omitted
1369
+
1370
+ # reduce 111 omitted
1371
+
1372
+ # reduce 112 omitted
1373
+
1374
+ # reduce 113 omitted
1375
+
1376
+ # reduce 114 omitted
1377
+
1378
+ module_eval(<<'.,.,', 'parser.y', 389)
1379
+ def _reduce_115(val, _values, result)
865
1380
  @handler.property val.first, val[2], val[3]
866
1381
  result
867
1382
  end
868
1383
  .,.,
869
1384
 
870
- module_eval(<<'.,.,', 'parser.y', 216)
871
- def _reduce_63(val, _values, result)
1385
+ module_eval(<<'.,.,', 'parser.y', 391)
1386
+ def _reduce_116(val, _values, result)
872
1387
  @handler.property val.first, val[3], val[4]
873
1388
  result
874
1389
  end
875
1390
  .,.,
876
1391
 
877
- module_eval(<<'.,.,', 'parser.y', 218)
878
- def _reduce_64(val, _values, result)
1392
+ module_eval(<<'.,.,', 'parser.y', 393)
1393
+ def _reduce_117(val, _values, result)
879
1394
  @handler.property val.first, val[3], val[4]
880
1395
  result
881
1396
  end
882
1397
  .,.,
883
1398
 
884
- module_eval(<<'.,.,', 'parser.y', 220)
885
- def _reduce_65(val, _values, result)
1399
+ module_eval(<<'.,.,', 'parser.y', 395)
1400
+ def _reduce_118(val, _values, result)
886
1401
  @handler.property val.first, val[4], val[5]
887
1402
  result
888
1403
  end
889
1404
  .,.,
890
1405
 
891
- module_eval(<<'.,.,', 'parser.y', 223)
892
- def _reduce_66(val, _values, result)
1406
+ module_eval(<<'.,.,', 'parser.y', 398)
1407
+ def _reduce_119(val, _values, result)
893
1408
  result = true
894
1409
  result
895
1410
  end
896
1411
  .,.,
897
1412
 
898
- module_eval(<<'.,.,', 'parser.y', 224)
899
- def _reduce_67(val, _values, result)
1413
+ module_eval(<<'.,.,', 'parser.y', 399)
1414
+ def _reduce_120(val, _values, result)
900
1415
  result = false
901
1416
  result
902
1417
  end
903
1418
  .,.,
904
1419
 
905
- module_eval(<<'.,.,', 'parser.y', 227)
906
- def _reduce_68(val, _values, result)
1420
+ module_eval(<<'.,.,', 'parser.y', 402)
1421
+ def _reduce_121(val, _values, result)
907
1422
  result = interpret_identifier val[0]
908
1423
  result
909
1424
  end
910
1425
  .,.,
911
1426
 
912
- module_eval(<<'.,.,', 'parser.y', 228)
913
- def _reduce_69(val, _values, result)
1427
+ module_eval(<<'.,.,', 'parser.y', 403)
1428
+ def _reduce_122(val, _values, result)
914
1429
  result = interpret_identifier val.join
915
1430
  result
916
1431
  end
917
1432
  .,.,
918
1433
 
919
- # reduce 70 omitted
1434
+ # reduce 123 omitted
920
1435
 
921
- # reduce 71 omitted
1436
+ # reduce 124 omitted
922
1437
 
923
- # reduce 72 omitted
1438
+ # reduce 125 omitted
924
1439
 
925
- module_eval(<<'.,.,', 'parser.y', 237)
926
- def _reduce_73(val, _values, result)
1440
+ module_eval(<<'.,.,', 'parser.y', 412)
1441
+ def _reduce_126(val, _values, result)
927
1442
  result = [val.first, val.last].flatten
928
1443
  val.last.first.operator = val[1]
929
1444
 
@@ -931,41 +1446,43 @@ module_eval(<<'.,.,', 'parser.y', 237)
931
1446
  end
932
1447
  .,.,
933
1448
 
934
- module_eval(<<'.,.,', 'parser.y', 240)
935
- def _reduce_74(val, _values, result)
1449
+ module_eval(<<'.,.,', 'parser.y', 415)
1450
+ def _reduce_127(val, _values, result)
936
1451
  result = val.flatten
937
1452
  result
938
1453
  end
939
1454
  .,.,
940
1455
 
941
- module_eval(<<'.,.,', 'parser.y', 241)
942
- def _reduce_75(val, _values, result)
1456
+ module_eval(<<'.,.,', 'parser.y', 416)
1457
+ def _reduce_128(val, _values, result)
943
1458
  result = val
944
1459
  result
945
1460
  end
946
1461
  .,.,
947
1462
 
948
- # reduce 76 omitted
1463
+ # reduce 129 omitted
949
1464
 
950
- # reduce 77 omitted
1465
+ # reduce 130 omitted
951
1466
 
952
- # reduce 78 omitted
1467
+ # reduce 131 omitted
953
1468
 
954
- # reduce 79 omitted
1469
+ # reduce 132 omitted
955
1470
 
956
- # reduce 80 omitted
1471
+ # reduce 133 omitted
957
1472
 
958
- # reduce 81 omitted
1473
+ # reduce 134 omitted
959
1474
 
960
- module_eval(<<'.,.,', 'parser.y', 252)
961
- def _reduce_82(val, _values, result)
1475
+ # reduce 135 omitted
1476
+
1477
+ module_eval(<<'.,.,', 'parser.y', 428)
1478
+ def _reduce_136(val, _values, result)
962
1479
  result = val.first
963
1480
  result
964
1481
  end
965
1482
  .,.,
966
1483
 
967
- module_eval(<<'.,.,', 'parser.y', 254)
968
- def _reduce_83(val, _values, result)
1484
+ module_eval(<<'.,.,', 'parser.y', 430)
1485
+ def _reduce_137(val, _values, result)
969
1486
  name = interpret_identifier val.first.sub(/\($/, '')
970
1487
  if name == 'rgb'
971
1488
  result = Terms::Rgb.new(*val[1])
@@ -977,50 +1494,78 @@ module_eval(<<'.,.,', 'parser.y', 254)
977
1494
  end
978
1495
  .,.,
979
1496
 
980
- module_eval(<<'.,.,', 'parser.y', 263)
981
- def _reduce_84(val, _values, result)
1497
+ module_eval(<<'.,.,', 'parser.y', 439)
1498
+ def _reduce_138(val, _values, result)
982
1499
  result = val.first
983
1500
  result
984
1501
  end
985
1502
  .,.,
986
1503
 
987
- module_eval(<<'.,.,', 'parser.y', 264)
988
- def _reduce_85(val, _values, result)
1504
+ module_eval(<<'.,.,', 'parser.y', 441)
1505
+ def _reduce_139(val, _values, result)
1506
+ parts = val.first.split('(')
1507
+ name = interpret_identifier parts.first
1508
+ result = Terms::Function.new(name, [Terms::String.new(interpret_string_no_quote(parts.last))])
1509
+
1510
+ result
1511
+ end
1512
+ .,.,
1513
+
1514
+ module_eval(<<'.,.,', 'parser.y', 448)
1515
+ def _reduce_140(val, _values, result)
1516
+ parts = val.first.split('(', 2)
1517
+ name = parts[0].strip
1518
+ expression = parts[1][0..parts[1].rindex(')')-1].strip
1519
+ result = Terms::Math.new(name, expression)
1520
+
1521
+ result
1522
+ end
1523
+ .,.,
1524
+
1525
+ module_eval(<<'.,.,', 'parser.y', 455)
1526
+ def _reduce_141(val, _values, result)
1527
+ result = val.first
1528
+ result
1529
+ end
1530
+ .,.,
1531
+
1532
+ module_eval(<<'.,.,', 'parser.y', 456)
1533
+ def _reduce_142(val, _values, result)
989
1534
  result = Terms::Hash.new val.first.sub(/^#/, '')
990
1535
  result
991
1536
  end
992
1537
  .,.,
993
1538
 
994
- module_eval(<<'.,.,', 'parser.y', 267)
995
- def _reduce_86(val, _values, result)
1539
+ module_eval(<<'.,.,', 'parser.y', 459)
1540
+ def _reduce_143(val, _values, result)
996
1541
  result = val.first
997
1542
  result
998
1543
  end
999
1544
  .,.,
1000
1545
 
1001
- module_eval(<<'.,.,', 'parser.y', 268)
1002
- def _reduce_87(val, _values, result)
1546
+ module_eval(<<'.,.,', 'parser.y', 460)
1547
+ def _reduce_144(val, _values, result)
1003
1548
  result = Terms::URI.new interpret_uri val.first
1004
1549
  result
1005
1550
  end
1006
1551
  .,.,
1007
1552
 
1008
- module_eval(<<'.,.,', 'parser.y', 270)
1009
- def _reduce_88(val, _values, result)
1553
+ module_eval(<<'.,.,', 'parser.y', 463)
1554
+ def _reduce_145(val, _values, result)
1010
1555
  result = val.first
1011
1556
  result
1012
1557
  end
1013
1558
  .,.,
1014
1559
 
1015
- module_eval(<<'.,.,', 'parser.y', 271)
1016
- def _reduce_89(val, _values, result)
1560
+ module_eval(<<'.,.,', 'parser.y', 464)
1561
+ def _reduce_146(val, _values, result)
1017
1562
  result = Terms::String.new interpret_string val.first
1018
1563
  result
1019
1564
  end
1020
1565
  .,.,
1021
1566
 
1022
- module_eval(<<'.,.,', 'parser.y', 275)
1023
- def _reduce_90(val, _values, result)
1567
+ module_eval(<<'.,.,', 'parser.y', 468)
1568
+ def _reduce_147(val, _values, result)
1024
1569
  result = val[1]
1025
1570
  val[1].unary_operator = val.first
1026
1571
 
@@ -1028,24 +1573,24 @@ module_eval(<<'.,.,', 'parser.y', 275)
1028
1573
  end
1029
1574
  .,.,
1030
1575
 
1031
- module_eval(<<'.,.,', 'parser.y', 279)
1032
- def _reduce_91(val, _values, result)
1576
+ module_eval(<<'.,.,', 'parser.y', 472)
1577
+ def _reduce_148(val, _values, result)
1033
1578
  result = Terms::Number.new numeric val.first
1034
1579
 
1035
1580
  result
1036
1581
  end
1037
1582
  .,.,
1038
1583
 
1039
- module_eval(<<'.,.,', 'parser.y', 282)
1040
- def _reduce_92(val, _values, result)
1584
+ module_eval(<<'.,.,', 'parser.y', 475)
1585
+ def _reduce_149(val, _values, result)
1041
1586
  result = Terms::Number.new numeric(val.first), nil, '%'
1042
1587
 
1043
1588
  result
1044
1589
  end
1045
1590
  .,.,
1046
1591
 
1047
- module_eval(<<'.,.,', 'parser.y', 285)
1048
- def _reduce_93(val, _values, result)
1592
+ module_eval(<<'.,.,', 'parser.y', 478)
1593
+ def _reduce_150(val, _values, result)
1049
1594
  unit = val.first.gsub(/[\s\d.]/, '')
1050
1595
  result = Terms::Number.new numeric(val.first), nil, unit
1051
1596
 
@@ -1053,24 +1598,24 @@ module_eval(<<'.,.,', 'parser.y', 285)
1053
1598
  end
1054
1599
  .,.,
1055
1600
 
1056
- module_eval(<<'.,.,', 'parser.y', 289)
1057
- def _reduce_94(val, _values, result)
1601
+ module_eval(<<'.,.,', 'parser.y', 482)
1602
+ def _reduce_151(val, _values, result)
1058
1603
  result = Terms::Number.new numeric(val.first), nil, 'em'
1059
1604
 
1060
1605
  result
1061
1606
  end
1062
1607
  .,.,
1063
1608
 
1064
- module_eval(<<'.,.,', 'parser.y', 292)
1065
- def _reduce_95(val, _values, result)
1609
+ module_eval(<<'.,.,', 'parser.y', 485)
1610
+ def _reduce_152(val, _values, result)
1066
1611
  result = Terms::Number.new numeric(val.first), nil, 'ex'
1067
1612
 
1068
1613
  result
1069
1614
  end
1070
1615
  .,.,
1071
1616
 
1072
- module_eval(<<'.,.,', 'parser.y', 295)
1073
- def _reduce_96(val, _values, result)
1617
+ module_eval(<<'.,.,', 'parser.y', 488)
1618
+ def _reduce_153(val, _values, result)
1074
1619
  unit = val.first.gsub(/[\s\d.]/, '')
1075
1620
  result = Terms::Number.new numeric(val.first), nil, unit
1076
1621
 
@@ -1078,8 +1623,8 @@ module_eval(<<'.,.,', 'parser.y', 295)
1078
1623
  end
1079
1624
  .,.,
1080
1625
 
1081
- module_eval(<<'.,.,', 'parser.y', 299)
1082
- def _reduce_97(val, _values, result)
1626
+ module_eval(<<'.,.,', 'parser.y', 492)
1627
+ def _reduce_154(val, _values, result)
1083
1628
  unit = val.first.gsub(/[\s\d.]/, '')
1084
1629
  result = Terms::Number.new numeric(val.first), nil, unit
1085
1630
 
@@ -1087,8 +1632,8 @@ module_eval(<<'.,.,', 'parser.y', 299)
1087
1632
  end
1088
1633
  .,.,
1089
1634
 
1090
- module_eval(<<'.,.,', 'parser.y', 303)
1091
- def _reduce_98(val, _values, result)
1635
+ module_eval(<<'.,.,', 'parser.y', 496)
1636
+ def _reduce_155(val, _values, result)
1092
1637
  unit = val.first.gsub(/[\s\d.]/, '')
1093
1638
  result = Terms::Number.new numeric(val.first), nil, unit
1094
1639
 
@@ -1096,29 +1641,29 @@ module_eval(<<'.,.,', 'parser.y', 303)
1096
1641
  end
1097
1642
  .,.,
1098
1643
 
1099
- module_eval(<<'.,.,', 'parser.y', 308)
1100
- def _reduce_99(val, _values, result)
1644
+ module_eval(<<'.,.,', 'parser.y', 501)
1645
+ def _reduce_156(val, _values, result)
1101
1646
  result = :minus
1102
1647
  result
1103
1648
  end
1104
1649
  .,.,
1105
1650
 
1106
- module_eval(<<'.,.,', 'parser.y', 309)
1107
- def _reduce_100(val, _values, result)
1651
+ module_eval(<<'.,.,', 'parser.y', 502)
1652
+ def _reduce_157(val, _values, result)
1108
1653
  result = :plus
1109
1654
  result
1110
1655
  end
1111
1656
  .,.,
1112
1657
 
1113
- module_eval(<<'.,.,', 'parser.y', 312)
1114
- def _reduce_101(val, _values, result)
1658
+ module_eval(<<'.,.,', 'parser.y', 505)
1659
+ def _reduce_158(val, _values, result)
1115
1660
  result = val.first
1116
1661
  result
1117
1662
  end
1118
1663
  .,.,
1119
1664
 
1120
- module_eval(<<'.,.,', 'parser.y', 313)
1121
- def _reduce_102(val, _values, result)
1665
+ module_eval(<<'.,.,', 'parser.y', 506)
1666
+ def _reduce_159(val, _values, result)
1122
1667
  result = Terms::Ident.new interpret_identifier val.first
1123
1668
  result
1124
1669
  end