csspool 3.0.2 → 4.0.0.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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