csspool 4.0.0.pre → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.rdoc +12 -0
  3. data/Gemfile.lock +6 -6
  4. data/Manifest.txt +10 -2
  5. data/Rakefile +1 -0
  6. data/lib/csspool/css/declaration.rb +1 -1
  7. data/lib/csspool/css/document.rb +5 -1
  8. data/lib/csspool/css/document_handler.rb +43 -11
  9. data/lib/csspool/css/fontface_rule.rb +13 -0
  10. data/lib/csspool/css/import_rule.rb +0 -5
  11. data/lib/csspool/css/media_feature.rb +14 -0
  12. data/lib/csspool/css/media_query.rb +19 -0
  13. data/lib/csspool/css/media_query_list.rb +41 -0
  14. data/lib/csspool/css/{media.rb → media_type.rb} +6 -4
  15. data/lib/csspool/css/parser.rb +1272 -671
  16. data/lib/csspool/css/parser.y +223 -53
  17. data/lib/csspool/css/rule_set.rb +4 -3
  18. data/lib/csspool/css/supports_rule.rb +14 -0
  19. data/lib/csspool/css/tokenizer.rb +92 -16
  20. data/lib/csspool/css/tokenizer.rex +42 -19
  21. data/lib/csspool/css.rb +6 -1
  22. data/lib/csspool/node.rb +22 -0
  23. data/lib/csspool/selector.rb +5 -4
  24. data/lib/csspool/selectors/pseudo.rb +2 -2
  25. data/lib/csspool/terms/function.rb +1 -1
  26. data/lib/csspool/terms/resolution.rb +13 -0
  27. data/lib/csspool/terms.rb +1 -0
  28. data/lib/csspool/visitors/children.rb +16 -2
  29. data/lib/csspool/visitors/comparable.rb +27 -8
  30. data/lib/csspool/visitors/iterator.rb +5 -3
  31. data/lib/csspool/visitors/to_css.rb +73 -20
  32. data/test/css/test_document_query.rb +37 -38
  33. data/test/css/test_font_face.rb +16 -0
  34. data/test/css/test_import_rule.rb +0 -3
  35. data/test/css/test_media_rule.rb +92 -0
  36. data/test/css/test_node_position.rb +81 -0
  37. data/test/css/test_parser.rb +12 -39
  38. data/test/css/test_supports_rule.rb +133 -0
  39. data/test/css/test_tokenizer.rb +4 -4
  40. data/test/css/test_variables.rb +33 -0
  41. data/test/helper.rb +3 -3
  42. data/test/sac/test_parser.rb +1 -0
  43. data/test/test_parser.rb +22 -9
  44. data/test/test_selector.rb +44 -4
  45. data/test/test_term.rb +29 -0
  46. data/test/visitors/test_comparable.rb +8 -0
  47. data/test/visitors/test_to_css.rb +89 -13
  48. metadata +54 -58
  49. data/test/_local_helper.rb +0 -2
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.4.8
3
+ # This file is automatically generated by Racc 1.4.9
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', 511)
12
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 655)
13
13
 
14
14
  def numeric thing
15
15
  thing = thing.gsub(/[^\d.]/, '')
@@ -50,388 +50,570 @@ def interpret_escapes s
50
50
  end
51
51
  end.join ''
52
52
  end
53
+
54
+ # override racc's on_error so we can have context in our error messages
55
+ def on_error(t, val, vstack)
56
+ errcontext = (@ss.pre_match[-10..-1] || @ss.pre_match) +
57
+ @ss.matched + @ss.post_match[0..9]
58
+ line_number = @ss.pre_match.lines.count
59
+ raise ParseError, sprintf("parse error on value %s (%s) " +
60
+ "on line %s around \"%s\"",
61
+ val.inspect, token_to_str(t) || '?',
62
+ line_number, errcontext)
63
+ end
64
+
65
+ def before_pos(val)
66
+ # don't include leading whitespace
67
+ return current_pos - val.last.length + val.last[/\A\s*/].size
68
+ end
69
+
70
+ def after_pos(val)
71
+ # don't include trailing whitespace
72
+ return current_pos - val.last[/\s*\z/].size
73
+ end
74
+
75
+ # charpos will work with multibyte strings but is not available until ruby 2
76
+ def current_pos
77
+ @ss.respond_to?('charpos') ? @ss.charpos : @ss.pos
78
+ end
53
79
  ...end parser.y/module_eval...
54
80
  ##### State transition tables begin ###
55
81
 
56
82
  racc_action_table = [
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 ]
83
+ 9, 10, 136, 112, 37, 31, 102, 138, 113, 39,
84
+ 45, 47, 224, 333, 55, 9, 10, 225, 301, 37,
85
+ 31, 45, 47, 37, 39, 45, 47, 103, 39, 45,
86
+ 47, 20, 128, 37, 31, 219, 23, 237, 39, 45,
87
+ 47, 56, 128, 27, 334, 11, 20, 129, 48, 25,
88
+ 114, 23, 137, 29, 38, 46, 107, 112, 27, 48,
89
+ 11, 210, 113, 48, 25, 246, 46, 48, 29, 38,
90
+ 46, 9, 10, 38, 46, 37, 31, 48, 218, 238,
91
+ 39, 45, 47, 38, 46, 240, 9, 10, 107, 112,
92
+ 37, 31, 198, 106, 113, 39, 45, 47, 239, 91,
93
+ 45, 47, 20, 228, 114, 37, 31, 23, 199, 86,
94
+ 39, 45, 47, 226, 27, 93, 11, 20, 227, 48,
95
+ 25, 55, 23, 59, 29, 38, 46, 196, 221, 27,
96
+ -27, 11, 20, 220, 48, 25, 114, 23, 48, 29,
97
+ 38, 46, 74, 197, 27, 46, 37, 252, 56, 48,
98
+ 25, 39, 45, 47, 29, 38, 46, 37, 73, 72,
99
+ 37, 31, 39, 45, 47, 39, 45, 47, 37, 247,
100
+ 156, 157, 248, 39, 45, 47, 253, 107, 107, 112,
101
+ 107, 112, 102, 117, 113, -87, 113, 20, 37, 31,
102
+ 48, 107, 23, 39, 45, 47, 38, 46, 196, 27,
103
+ 294, 48, 293, 103, 48, 25, 154, 38, 46, 29,
104
+ 38, 46, 48, 260, 197, 20, 37, 31, 38, 46,
105
+ 23, 39, 45, 47, 37, 63, 114, 27, 114, 39,
106
+ 45, 47, 48, 25, 198, 37, 168, 29, 38, 46,
107
+ 39, 45, 47, 20, 261, 167, 45, 47, 23, 262,
108
+ 199, 20, 107, 112, 214, 27, 23, 122, 113, 82,
109
+ 48, 25, 249, 27, 150, 29, 38, 46, 48, 25,
110
+ 84, 123, 124, 29, 38, 46, 37, 31, 83, 48,
111
+ 76, 39, 45, 47, 48, 38, 46, 37, 31, 309,
112
+ 125, 46, 39, 45, 47, 45, 47, 45, 47, 82,
113
+ 114, 310, 55, 20, 307, 154, 213, 308, 23, 91,
114
+ 84, 112, 205, 102, 91, 27, 113, 97, 83, 91,
115
+ 48, 25, 292, 91, 291, 29, 38, 46, 184, 56,
116
+ 59, 48, 91, 48, 103, 48, 183, 38, 46, 93,
117
+ 46, 212, 46, 74, 82, 152, 193, 150, 186, 192,
118
+ 188, 187, 189, 190, 191, 84, 211, 274, 114, 73,
119
+ 72, 140, 290, 184, 289, 59, 281, 236, 230, 231,
120
+ 232, 183, 285, 169, 286, 142, 275, 179, 182, 82,
121
+ 288, 193, 287, 186, 192, 188, 187, 189, 190, 191,
122
+ 84, 284, 144, 283, 233, 234, 235, 207, 184, 143,
123
+ 59, 145, 277, 146, 91, 141, 183, 195, 169, 149,
124
+ 151, 150, 179, 182, 82, 194, 193, 282, 186, 192,
125
+ 188, 187, 189, 190, 191, 84, 224, 226, 168, 167,
126
+ 166, 165, 164, 184, 163, 59, 246, 255, 296, 297,
127
+ 298, 183, 299, 169, 257, 300, 229, 179, 182, 82,
128
+ 302, 193, 256, 186, 192, 188, 187, 189, 190, 191,
129
+ 84, 252, 74, 162, 162, 167, 306, 159, 184, 155,
130
+ 59, 317, 147, 312, 314, 135, 183, 130, 169, 318,
131
+ 319, 320, 179, 182, 82, 321, 193, 322, 186, 192,
132
+ 188, 187, 189, 190, 191, 84, 323, 324, 325, 326,
133
+ 327, 328, 329, 184, 330, 59, 127, 246, 120, 162,
134
+ 119, 183, 115, 169, 104, 53, 340, 179, 182, 82,
135
+ 314, 193, 314, 186, 192, 188, 187, 189, 190, 191,
136
+ 84, 49, 162, 314, 3, 347, nil, nil, 184, nil,
137
+ 59, nil, nil, nil, nil, nil, 183, nil, 169, nil,
138
+ nil, nil, 179, 182, 82, nil, 193, nil, 186, 192,
139
+ 188, 187, 189, 190, 191, 84, nil, nil, nil, nil,
140
+ nil, nil, nil, nil, 184, nil, 59, nil, nil, nil,
141
+ nil, nil, 183, 169, nil, nil, nil, 179, 182, 181,
142
+ 82, nil, 193, nil, 186, 192, 188, 187, 189, 190,
143
+ 191, 84, 268, nil, 82, nil, 193, nil, 186, 192,
144
+ 188, 187, 189, 190, 191, nil, nil, nil, nil, 169,
145
+ nil, nil, nil, 179, 182, 268, nil, 82, nil, 193,
146
+ nil, 186, 192, 188, 187, 189, 190, 191, 268, nil,
147
+ 82, nil, 193, nil, 186, 192, 188, 187, 189, 190,
148
+ 191, 268, nil, 82, nil, 193, nil, 186, 192, 188,
149
+ 187, 189, 190, 191, 268, nil, 82, nil, 193, nil,
150
+ 186, 192, 188, 187, 189, 190, 191, 268, nil, 82,
151
+ nil, 193, nil, 186, 192, 188, 187, 189, 190, 191,
152
+ 193, nil, 186, 192, 188, 187, 189, 190, 191 ]
108
153
 
109
154
  racc_action_check = [
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 ]
155
+ 2, 2, 47, 205, 2, 2, 212, 47, 205, 2,
156
+ 2, 2, 127, 304, 10, 7, 7, 127, 246, 7,
157
+ 7, 41, 41, 121, 7, 7, 7, 212, 121, 121,
158
+ 121, 2, 137, 63, 63, 111, 2, 141, 63, 63,
159
+ 63, 10, 38, 2, 304, 2, 7, 38, 2, 2,
160
+ 205, 7, 47, 2, 2, 2, 99, 99, 7, 41,
161
+ 7, 99, 99, 7, 7, 146, 41, 121, 7, 7,
162
+ 7, 6, 6, 121, 121, 6, 6, 63, 111, 141,
163
+ 6, 6, 6, 63, 63, 142, 5, 5, 28, 28,
164
+ 5, 5, 202, 28, 28, 5, 5, 5, 142, 25,
165
+ 44, 44, 6, 136, 99, 24, 24, 6, 202, 24,
166
+ 24, 24, 24, 130, 6, 25, 6, 5, 130, 6,
167
+ 6, 11, 5, 11, 6, 6, 6, 89, 116, 5,
168
+ 20, 5, 24, 113, 5, 5, 28, 24, 44, 5,
169
+ 5, 5, 20, 89, 24, 44, 120, 160, 11, 24,
170
+ 24, 120, 120, 120, 24, 24, 24, 298, 20, 20,
171
+ 12, 12, 298, 298, 298, 12, 12, 12, 145, 148,
172
+ 69, 69, 148, 145, 145, 145, 161, 108, 30, 30,
173
+ 216, 216, 98, 30, 30, 98, 216, 12, 13, 13,
174
+ 120, 107, 12, 13, 13, 13, 120, 120, 201, 12,
175
+ 235, 298, 235, 98, 12, 12, 171, 298, 298, 12,
176
+ 12, 12, 145, 173, 201, 13, 14, 14, 145, 145,
177
+ 13, 14, 14, 14, 19, 19, 30, 13, 216, 19,
178
+ 19, 19, 13, 13, 90, 143, 174, 13, 13, 13,
179
+ 143, 143, 143, 14, 175, 177, 43, 43, 14, 180,
180
+ 90, 19, 109, 109, 105, 14, 19, 34, 109, 22,
181
+ 14, 14, 153, 19, 153, 14, 14, 14, 19, 19,
182
+ 22, 34, 34, 19, 19, 19, 21, 21, 22, 143,
183
+ 21, 21, 21, 21, 43, 143, 143, 31, 31, 266,
184
+ 34, 43, 31, 31, 31, 35, 35, 42, 42, 165,
185
+ 109, 266, 58, 21, 265, 58, 104, 265, 21, 196,
186
+ 165, 91, 91, 26, 197, 21, 91, 26, 165, 198,
187
+ 21, 21, 234, 91, 234, 21, 21, 21, 258, 58,
188
+ 258, 31, 199, 35, 26, 42, 258, 31, 31, 91,
189
+ 35, 101, 42, 156, 258, 57, 258, 57, 258, 258,
190
+ 258, 258, 258, 258, 258, 258, 100, 203, 91, 156,
191
+ 156, 48, 233, 218, 233, 218, 218, 139, 139, 139,
192
+ 139, 218, 231, 258, 231, 48, 204, 258, 258, 218,
193
+ 232, 218, 232, 218, 218, 218, 218, 218, 218, 218,
194
+ 218, 230, 48, 230, 139, 139, 139, 96, 281, 48,
195
+ 281, 48, 209, 48, 93, 48, 281, 87, 218, 54,
196
+ 54, 54, 218, 218, 281, 85, 281, 219, 281, 281,
197
+ 281, 281, 281, 281, 281, 281, 228, 229, 81, 80,
198
+ 79, 78, 77, 170, 75, 170, 238, 170, 240, 241,
199
+ 242, 170, 243, 281, 170, 244, 138, 281, 281, 170,
200
+ 248, 170, 170, 170, 170, 170, 170, 170, 170, 170,
201
+ 170, 251, 252, 253, 74, 263, 264, 70, 282, 66,
202
+ 282, 282, 53, 276, 280, 46, 282, 39, 170, 283,
203
+ 284, 285, 170, 170, 282, 286, 282, 287, 282, 282,
204
+ 282, 282, 282, 282, 282, 282, 288, 289, 290, 291,
205
+ 292, 293, 294, 317, 295, 317, 37, 301, 33, 306,
206
+ 32, 317, 29, 282, 27, 9, 311, 282, 282, 317,
207
+ 315, 317, 316, 317, 317, 317, 317, 317, 317, 317,
208
+ 317, 3, 334, 343, 1, 346, nil, nil, 344, nil,
209
+ 344, nil, nil, nil, nil, nil, 344, nil, 317, nil,
210
+ nil, nil, 317, 317, 344, nil, 344, nil, 344, 344,
211
+ 344, 344, 344, 344, 344, 344, nil, nil, nil, nil,
212
+ nil, nil, nil, nil, 82, nil, 82, nil, nil, nil,
213
+ nil, nil, 82, 344, nil, nil, nil, 344, 344, 82,
214
+ 82, nil, 82, nil, 82, 82, 82, 82, 82, 82,
215
+ 82, 82, 307, nil, 307, nil, 307, nil, 307, 307,
216
+ 307, 307, 307, 307, 307, nil, nil, nil, nil, 82,
217
+ nil, nil, nil, 82, 82, 308, nil, 308, nil, 308,
218
+ nil, 308, 308, 308, 308, 308, 308, 308, 309, nil,
219
+ 309, nil, 309, nil, 309, 309, 309, 309, 309, 309,
220
+ 309, 310, nil, 310, nil, 310, nil, 310, 310, 310,
221
+ 310, 310, 310, 310, 268, nil, 268, nil, 268, nil,
222
+ 268, 268, 268, 268, 268, 268, 268, 182, nil, 182,
223
+ nil, 182, nil, 182, 182, 182, 182, 182, 182, 182,
224
+ 185, nil, 185, 185, 185, 185, 185, 185, 185 ]
161
225
 
162
226
  racc_action_pointer = [
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,
227
+ nil, 534, -2, 531, nil, 84, 69, 13, nil, 511,
228
+ 10, 117, 154, 182, 210, nil, nil, nil, nil, 218,
229
+ 124, 270, 239, nil, 99, 81, 307, 508, 83, 503,
230
+ 173, 281, 501, 500, 250, 283, nil, 450, 36, 421,
231
+ nil, 9, 285, 234, 88, nil, 469, -4, 355, nil,
232
+ nil, nil, nil, 467, 404, nil, nil, 340, 298, nil,
233
+ nil, nil, nil, 27, nil, nil, 459, nil, nil, 162,
234
+ 461, nil, nil, nil, 457, 424, nil, 423, 423, 423,
235
+ 422, 421, 570, nil, nil, 405, nil, 398, nil, 91,
236
+ 198, 305, nil, 386, nil, nil, 387, nil, 176, 51,
237
+ 347, 333, nil, nil, 297, 244, nil, 186, 172, 247,
238
+ nil, 28, nil, 127, nil, nil, 118, nil, nil, nil,
239
+ 140, 17, nil, nil, nil, nil, nil, 6, nil, nil,
240
+ 107, nil, nil, nil, nil, nil, 47, 26, 390, 353,
241
+ nil, 31, 79, 229, nil, 162, 59, nil, 164, nil,
242
+ nil, nil, nil, 257, nil, nil, 325, nil, nil, nil,
243
+ 111, 170, nil, nil, nil, 279, nil, nil, nil, nil,
244
+ 429, 199, nil, 206, 229, 237, nil, 238, nil, nil,
245
+ 230, nil, 659, nil, nil, 668, nil, nil, nil, nil,
246
+ nil, nil, nil, nil, nil, nil, 291, 296, 301, 314,
247
+ nil, 162, 56, 338, 357, -3, nil, nil, nil, 392,
248
+ nil, nil, 0, nil, nil, nil, 175, nil, 359, 367,
249
+ nil, nil, nil, nil, nil, nil, nil, nil, 420, 421,
250
+ 387, 368, 376, 358, 318, 196, nil, nil, 430, nil,
251
+ 419, 420, 432, 423, 426, nil, 10, nil, 444, nil,
252
+ nil, 425, 444, 456, nil, nil, nil, nil, 324, nil,
253
+ nil, nil, nil, 458, 447, 282, 278, nil, 646, nil,
254
+ nil, nil, nil, nil, nil, nil, 454, nil, nil, nil,
255
+ 442, 394, 464, 465, 466, 467, 471, 473, 482, 483,
256
+ 484, 485, 486, 487, 488, 485, nil, nil, 151, nil,
257
+ nil, 501, nil, nil, -6, nil, 502, 584, 607, 620,
258
+ 633, 497, nil, nil, nil, 488, 490, 499, nil, nil,
186
259
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
187
- nil, nil, nil, nil, nil, 371, nil ]
260
+ nil, nil, nil, nil, 525, nil, nil, nil, nil, nil,
261
+ nil, nil, nil, 501, 534, nil, 516, nil ]
188
262
 
189
263
  racc_action_default = [
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 ]
264
+ -1, -222, -222, -222, -2, -6, -7, -8, -9, -222,
265
+ -222, -222, -39, -40, -41, -42, -43, -44, -45, -32,
266
+ -22, -222, -222, -53, -222, -222, -87, -222, -222, -222,
267
+ -222, -222, -222, -101, -103, -109, -110, -113, -222, -118,
268
+ -117, -122, -123, -124, -125, -130, -222, -222, -222, 348,
269
+ -3, -4, -5, -222, -222, -14, -15, -222, -222, -221,
270
+ -36, -37, -38, -31, -46, -47, -222, -97, -20, -222,
271
+ -222, -34, -25, -26, -32, -222, -51, -222, -55, -56,
272
+ -57, -58, -222, -194, -208, -222, -60, -222, -62, -63,
273
+ -64, -222, -69, -222, -71, -72, -222, -80, -83, -222,
274
+ -222, -89, -90, -91, -222, -222, -93, -158, -163, -164,
275
+ -165, -222, -172, -222, -174, -94, -222, -96, -98, -99,
276
+ -222, -222, -104, -105, -106, -107, -108, -222, -115, -119,
277
+ -222, -126, -127, -128, -129, -131, -113, -222, -222, -222,
278
+ -145, -222, -222, -222, -150, -222, -154, -10, -222, -12,
279
+ -13, -19, -17, -222, -220, -48, -27, -49, -34, -28,
280
+ -24, -222, -31, -50, -52, -222, -193, -190, -207, -35,
281
+ -180, -181, -182, -183, -184, -185, -186, -187, -188, -189,
282
+ -222, -192, -222, -206, -210, -222, -212, -213, -214, -215,
283
+ -216, -217, -218, -219, -59, -61, -222, -222, -222, -222,
284
+ -65, -66, -67, -222, -222, -222, -70, -79, -82, -222,
285
+ -85, -86, -87, -81, -92, -159, -162, -161, -222, -222,
286
+ -173, -95, -100, -102, -114, -121, -116, -120, -222, -222,
287
+ -222, -222, -222, -222, -222, -222, -144, -146, -154, -147,
288
+ -222, -222, -112, -222, -222, -155, -156, -11, -222, -16,
289
+ -21, -23, -222, -32, -54, -175, -176, -177, -222, -179,
290
+ -209, -205, -191, -203, -222, -196, -199, -202, -222, -211,
291
+ -74, -76, -73, -75, -68, -77, -222, -84, -88, -160,
292
+ -171, -222, -222, -222, -222, -222, -222, -222, -222, -222,
293
+ -222, -222, -222, -222, -222, -222, -148, -149, -222, -151,
294
+ -152, -222, -18, -33, -222, -178, -32, -222, -222, -222,
295
+ -222, -222, -78, -166, -170, -171, -171, -222, -132, -133,
296
+ -134, -135, -136, -137, -138, -139, -140, -141, -142, -143,
297
+ -153, -111, -157, -29, -32, -195, -197, -198, -200, -201,
298
+ -204, -167, -168, -171, -222, -169, -222, -30 ]
215
299
 
216
300
  racc_goto_table = [
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,
301
+ 67, 180, 105, 80, 116, 241, 243, 242, 90, 81,
302
+ 77, 68, 204, 267, 244, 160, 269, 264, 96, 88,
303
+ 89, 313, 54, 57, 126, 203, 118, 60, 61, 62,
304
+ 131, 132, 133, 134, 64, 278, 75, 4, 87, 85,
305
+ 50, 51, 52, 215, 216, 338, 339, 222, 223, 65,
306
+ 121, 66, 303, 139, 158, 161, 341, 342, 118, 332,
307
+ 69, 58, 258, 148, 2, 1, nil, nil, nil, nil,
308
+ 153, nil, nil, 209, 202, nil, 206, nil, nil, nil,
309
+ nil, nil, nil, 217, 345, 200, 201, nil, nil, 259,
310
+ 208, nil, nil, nil, nil, nil, nil, nil, nil, 267,
311
+ nil, nil, 251, 311, nil, nil, 295, nil, nil, nil,
312
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
313
+ nil, nil, nil, nil, nil, nil, 276, nil, nil, nil,
314
+ nil, nil, nil, nil, nil, nil, nil, 280, 267, 267,
315
+ 267, 267, 336, 337, nil, nil, 80, 250, nil, nil,
316
+ nil, nil, 81, 254, nil, nil, nil, nil, nil, 331,
317
+ 242, nil, nil, 263, nil, nil, nil, nil, nil, nil,
318
+ nil, nil, nil, nil, nil, nil, nil, 305, nil, 270,
319
+ 271, 272, 273, nil, nil, nil, nil, nil, nil, nil,
320
+ 279, nil, nil, nil, nil, nil, nil, nil, nil, nil,
321
+ 315, 316, nil, nil, nil, nil, nil, nil, nil, nil,
322
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
224
323
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
324
+ nil, nil, nil, nil, 304, nil, 343, nil, nil, nil,
325
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 263,
225
326
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
226
- nil, nil, nil, nil, nil, nil, nil, nil, 205, nil,
327
+ nil, nil, nil, 346, nil, nil, nil, nil, nil, nil,
227
328
  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,
329
+ nil, nil, nil, nil, nil, nil, nil, 335, 263, 263,
330
+ 263, 263, nil, nil, nil, nil, nil, nil, nil, nil,
232
331
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
233
- nil, nil, 245 ]
332
+ nil, nil, nil, nil, nil, 344 ]
234
333
 
235
334
  racc_goto_check = [
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,
335
+ 17, 18, 51, 35, 51, 58, 62, 58, 41, 36,
336
+ 32, 12, 46, 76, 68, 15, 76, 80, 48, 39,
337
+ 40, 73, 8, 8, 61, 42, 55, 7, 7, 7,
338
+ 61, 61, 61, 61, 7, 52, 7, 2, 38, 7,
339
+ 2, 2, 2, 70, 70, 82, 82, 56, 57, 28,
340
+ 59, 27, 16, 63, 14, 17, 73, 73, 55, 69,
341
+ 11, 10, 74, 9, 3, 1, nil, nil, nil, nil,
342
+ 8, nil, nil, 51, 41, nil, 41, nil, nil, nil,
343
+ nil, nil, nil, 51, 73, 39, 40, nil, nil, 18,
344
+ 48, nil, nil, nil, nil, nil, nil, nil, nil, 76,
345
+ nil, nil, 15, 80, nil, nil, 68, nil, nil, nil,
243
346
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
347
+ nil, nil, nil, nil, nil, nil, 46, nil, nil, nil,
348
+ nil, nil, nil, nil, nil, nil, nil, 18, 76, 76,
349
+ 76, 76, 80, 80, nil, nil, 35, 12, nil, nil,
350
+ nil, nil, 36, 32, nil, nil, nil, nil, nil, 62,
351
+ 58, nil, nil, 35, nil, nil, nil, nil, nil, nil,
352
+ nil, nil, nil, nil, nil, nil, nil, 18, nil, 41,
353
+ 41, 41, 41, nil, nil, nil, nil, nil, nil, nil,
354
+ 51, nil, nil, nil, nil, nil, nil, nil, nil, nil,
355
+ 18, 18, nil, nil, nil, nil, nil, nil, nil, nil,
244
356
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
245
- nil, nil, nil, nil, nil, nil, nil, nil, 46, nil,
246
357
  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,
358
+ nil, nil, nil, nil, 17, nil, 18, nil, nil, nil,
359
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 35,
251
360
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
252
- nil, nil, 46 ]
361
+ nil, nil, nil, 18, nil, nil, nil, nil, nil, nil,
362
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
363
+ nil, nil, nil, nil, nil, nil, nil, 17, 35, 35,
364
+ 35, 35, nil, nil, nil, nil, nil, nil, nil, nil,
365
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
366
+ nil, nil, nil, nil, nil, 17 ]
253
367
 
254
368
  racc_goto_pointer = [
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 ]
369
+ nil, 65, 35, 64, nil, nil, nil, 15, 12, 9,
370
+ 50, 40, -9, nil, -16, -56, -200, -19, -81, nil,
371
+ nil, nil, nil, nil, nil, nil, nil, 32, 30, nil,
372
+ nil, nil, -12, nil, nil, -19, -13, nil, 13, -6,
373
+ -5, -17, -66, nil, nil, nil, -79, nil, -8, nil,
374
+ nil, -26, -177, nil, nil, -5, -73, -73, -138, 16,
375
+ nil, -11, -139, 6, nil, nil, nil, nil, -132, -242,
376
+ -64, nil, nil, -259, -108, nil, -169, nil, nil, nil,
377
+ -165, nil, -264, nil ]
261
378
 
262
379
  racc_goto_default = [
263
380
  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 ]
381
+ 171, nil, nil, 70, nil, nil, 71, nil, nil, 178,
382
+ 12, 13, 14, 15, 16, 17, 18, nil, nil, 19,
383
+ 21, 22, nil, 78, 79, 177, 174, 24, nil, nil,
384
+ nil, nil, nil, 92, 94, 95, 110, 26, nil, 98,
385
+ 99, nil, 100, 101, 28, 30, 32, 33, 34, nil,
386
+ 35, 36, nil, 40, 41, 42, 43, 44, nil, 245,
387
+ 109, 108, 111, nil, nil, 170, 172, 173, 175, 176,
388
+ nil, 265, 266, 185 ]
269
389
 
270
390
  racc_reduce_table = [
271
391
  0, 0, :racc_error,
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,
278
- 1, 52, :_reduce_none,
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,
392
+ 0, 61, :_reduce_1,
393
+ 2, 59, :_reduce_2,
394
+ 2, 60, :_reduce_none,
395
+ 2, 60, :_reduce_none,
396
+ 2, 60, :_reduce_none,
397
+ 1, 60, :_reduce_none,
398
+ 1, 60, :_reduce_none,
399
+ 1, 60, :_reduce_none,
400
+ 1, 60, :_reduce_none,
401
+ 3, 62, :_reduce_10,
402
+ 4, 63, :_reduce_11,
403
+ 3, 63, :_reduce_12,
404
+ 2, 66, :_reduce_none,
405
+ 1, 66, :_reduce_14,
406
+ 1, 66, :_reduce_15,
407
+ 4, 64, :_reduce_16,
408
+ 3, 64, :_reduce_17,
409
+ 3, 67, :_reduce_18,
410
+ 1, 67, :_reduce_19,
411
+ 1, 69, :_reduce_20,
412
+ 3, 69, :_reduce_21,
413
+ 0, 69, :_reduce_22,
414
+ 3, 70, :_reduce_23,
415
+ 2, 70, :_reduce_24,
416
+ 1, 71, :_reduce_25,
417
+ 1, 71, :_reduce_26,
418
+ 0, 71, :_reduce_27,
419
+ 1, 72, :_reduce_28,
420
+ 5, 74, :_reduce_29,
421
+ 8, 74, :_reduce_30,
422
+ 1, 75, :_reduce_31,
423
+ 0, 75, :_reduce_32,
424
+ 3, 73, :_reduce_33,
425
+ 0, 73, :_reduce_34,
426
+ 1, 77, :_reduce_35,
427
+ 2, 65, :_reduce_none,
428
+ 2, 65, :_reduce_none,
429
+ 2, 65, :_reduce_none,
430
+ 1, 65, :_reduce_none,
431
+ 1, 65, :_reduce_none,
432
+ 1, 65, :_reduce_none,
433
+ 1, 65, :_reduce_none,
321
434
  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,
435
+ 1, 79, :_reduce_none,
436
+ 1, 79, :_reduce_none,
437
+ 1, 85, :_reduce_none,
438
+ 1, 85, :_reduce_none,
439
+ 3, 82, :_reduce_48,
440
+ 3, 87, :_reduce_49,
441
+ 3, 83, :_reduce_50,
442
+ 2, 83, :_reduce_51,
443
+ 3, 88, :_reduce_52,
444
+ 1, 89, :_reduce_53,
445
+ 3, 90, :_reduce_54,
446
+ 1, 90, :_reduce_55,
447
+ 1, 91, :_reduce_none,
448
+ 1, 91, :_reduce_none,
449
+ 1, 91, :_reduce_none,
450
+ 3, 84, :_reduce_59,
451
+ 2, 84, :_reduce_60,
452
+ 3, 95, :_reduce_61,
453
+ 1, 96, :_reduce_62,
454
+ 1, 96, :_reduce_63,
455
+ 1, 96, :_reduce_64,
456
+ 1, 100, :_reduce_65,
457
+ 1, 100, :_reduce_66,
458
+ 1, 100, :_reduce_67,
459
+ 3, 99, :_reduce_68,
460
+ 1, 99, :_reduce_69,
461
+ 2, 97, :_reduce_70,
395
462
  1, 98, :_reduce_none,
396
463
  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
464
+ 3, 102, :_reduce_73,
465
+ 3, 102, :_reduce_74,
466
+ 3, 103, :_reduce_75,
467
+ 3, 103, :_reduce_76,
468
+ 3, 101, :_reduce_77,
469
+ 4, 101, :_reduce_78,
470
+ 3, 80, :_reduce_none,
471
+ 2, 80, :_reduce_none,
472
+ 3, 105, :_reduce_81,
473
+ 2, 106, :_reduce_none,
474
+ 1, 106, :_reduce_none,
475
+ 3, 107, :_reduce_84,
476
+ 2, 107, :_reduce_85,
477
+ 2, 108, :_reduce_86,
478
+ 0, 110, :_reduce_none,
479
+ 3, 110, :_reduce_88,
480
+ 1, 110, :_reduce_none,
481
+ 1, 111, :_reduce_none,
482
+ 1, 111, :_reduce_91,
483
+ 3, 81, :_reduce_92,
484
+ 2, 81, :_reduce_93,
485
+ 2, 112, :_reduce_94,
486
+ 3, 78, :_reduce_95,
487
+ 2, 78, :_reduce_96,
488
+ 1, 86, :_reduce_97,
489
+ 2, 113, :_reduce_98,
490
+ 2, 113, :_reduce_99,
491
+ 3, 114, :_reduce_100,
492
+ 1, 114, :_reduce_101,
493
+ 3, 115, :_reduce_102,
494
+ 1, 115, :_reduce_none,
495
+ 1, 117, :_reduce_104,
496
+ 1, 117, :_reduce_105,
497
+ 1, 117, :_reduce_106,
498
+ 1, 117, :_reduce_107,
499
+ 2, 116, :_reduce_108,
500
+ 1, 116, :_reduce_109,
501
+ 1, 116, :_reduce_110,
502
+ 3, 120, :_reduce_111,
503
+ 1, 120, :_reduce_none,
504
+ 1, 121, :_reduce_113,
505
+ 3, 121, :_reduce_114,
506
+ 2, 121, :_reduce_115,
507
+ 3, 121, :_reduce_116,
508
+ 1, 118, :_reduce_117,
509
+ 1, 118, :_reduce_118,
510
+ 2, 118, :_reduce_119,
511
+ 3, 118, :_reduce_120,
512
+ 3, 118, :_reduce_121,
513
+ 1, 119, :_reduce_122,
514
+ 1, 119, :_reduce_123,
515
+ 1, 119, :_reduce_124,
516
+ 1, 119, :_reduce_125,
517
+ 2, 119, :_reduce_126,
518
+ 2, 119, :_reduce_127,
519
+ 2, 119, :_reduce_128,
520
+ 2, 119, :_reduce_129,
521
+ 1, 122, :_reduce_130,
522
+ 2, 123, :_reduce_131,
523
+ 5, 124, :_reduce_132,
524
+ 5, 124, :_reduce_133,
525
+ 5, 124, :_reduce_134,
526
+ 5, 124, :_reduce_135,
527
+ 5, 124, :_reduce_136,
528
+ 5, 124, :_reduce_137,
529
+ 5, 124, :_reduce_138,
530
+ 5, 124, :_reduce_139,
531
+ 5, 124, :_reduce_140,
532
+ 5, 124, :_reduce_141,
533
+ 5, 124, :_reduce_142,
534
+ 5, 124, :_reduce_143,
535
+ 3, 124, :_reduce_144,
536
+ 2, 125, :_reduce_145,
537
+ 3, 125, :_reduce_146,
538
+ 3, 125, :_reduce_147,
539
+ 4, 125, :_reduce_148,
540
+ 4, 125, :_reduce_149,
541
+ 2, 125, :_reduce_150,
542
+ 4, 125, :_reduce_151,
543
+ 4, 125, :_reduce_152,
544
+ 5, 125, :_reduce_153,
545
+ 0, 126, :_reduce_none,
546
+ 1, 126, :_reduce_none,
547
+ 1, 127, :_reduce_none,
548
+ 3, 127, :_reduce_none,
549
+ 1, 128, :_reduce_none,
550
+ 2, 128, :_reduce_none,
551
+ 3, 109, :_reduce_none,
552
+ 2, 109, :_reduce_none,
553
+ 2, 109, :_reduce_none,
554
+ 1, 109, :_reduce_none,
555
+ 1, 109, :_reduce_none,
556
+ 1, 129, :_reduce_165,
557
+ 4, 104, :_reduce_166,
558
+ 5, 104, :_reduce_167,
559
+ 5, 104, :_reduce_168,
560
+ 6, 104, :_reduce_169,
561
+ 1, 131, :_reduce_170,
562
+ 0, 131, :_reduce_171,
563
+ 1, 130, :_reduce_172,
564
+ 2, 130, :_reduce_173,
565
+ 1, 130, :_reduce_174,
566
+ 1, 132, :_reduce_none,
567
+ 1, 132, :_reduce_none,
568
+ 1, 132, :_reduce_none,
569
+ 3, 76, :_reduce_178,
570
+ 2, 76, :_reduce_179,
571
+ 1, 76, :_reduce_180,
572
+ 1, 133, :_reduce_none,
573
+ 1, 133, :_reduce_none,
574
+ 1, 133, :_reduce_none,
575
+ 1, 133, :_reduce_none,
576
+ 1, 133, :_reduce_none,
577
+ 1, 133, :_reduce_none,
578
+ 1, 133, :_reduce_none,
579
+ 1, 133, :_reduce_none,
580
+ 1, 133, :_reduce_none,
581
+ 2, 93, :_reduce_190,
582
+ 3, 93, :_reduce_191,
583
+ 2, 93, :_reduce_192,
584
+ 2, 92, :_reduce_193,
585
+ 1, 92, :_reduce_194,
586
+ 4, 137, :_reduce_195,
587
+ 1, 138, :_reduce_none,
588
+ 3, 138, :_reduce_197,
589
+ 3, 138, :_reduce_198,
590
+ 1, 139, :_reduce_none,
591
+ 3, 139, :_reduce_200,
592
+ 3, 139, :_reduce_201,
593
+ 1, 140, :_reduce_202,
594
+ 1, 140, :_reduce_203,
595
+ 3, 140, :_reduce_204,
596
+ 2, 136, :_reduce_205,
597
+ 1, 136, :_reduce_206,
598
+ 2, 94, :_reduce_207,
599
+ 1, 94, :_reduce_208,
600
+ 2, 135, :_reduce_209,
601
+ 1, 135, :_reduce_210,
602
+ 2, 134, :_reduce_211,
603
+ 1, 134, :_reduce_212,
604
+ 1, 134, :_reduce_213,
605
+ 1, 134, :_reduce_214,
606
+ 1, 134, :_reduce_215,
607
+ 1, 134, :_reduce_216,
608
+ 1, 134, :_reduce_217,
609
+ 1, 141, :_reduce_218,
610
+ 1, 141, :_reduce_219,
611
+ 2, 68, :_reduce_220,
612
+ 1, 68, :_reduce_221 ]
613
+
614
+ racc_reduce_n = 222
615
+
616
+ racc_shift_n = 348
435
617
 
436
618
  racc_token_table = {
437
619
  false => 0,
@@ -452,40 +634,48 @@ racc_token_table = {
452
634
  :EQUAL => 15,
453
635
  :INCLUDES => 16,
454
636
  :DASHMATCH => 17,
455
- :RPAREN => 18,
456
- :FUNCTION => 19,
457
- :GREATER => 20,
458
- :PLUS => 21,
459
- :SLASH => 22,
460
- :NUMBER => 23,
461
- :MINUS => 24,
462
- :LENGTH => 25,
463
- :PERCENTAGE => 26,
464
- :EMS => 27,
465
- :EXS => 28,
466
- :ANGLE => 29,
467
- :TIME => 30,
468
- :FREQ => 31,
469
- :URI => 32,
470
- :IMPORTANT_SYM => 33,
471
- :MEDIA_SYM => 34,
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
637
+ :LPAREN => 18,
638
+ :RPAREN => 19,
639
+ :FUNCTION => 20,
640
+ :GREATER => 21,
641
+ :PLUS => 22,
642
+ :SLASH => 23,
643
+ :NUMBER => 24,
644
+ :MINUS => 25,
645
+ :LENGTH => 26,
646
+ :PERCENTAGE => 27,
647
+ :ANGLE => 28,
648
+ :TIME => 29,
649
+ :FREQ => 30,
650
+ :URI => 31,
651
+ :IMPORTANT_SYM => 32,
652
+ :MEDIA_SYM => 33,
653
+ :NOT => 34,
654
+ :ONLY => 35,
655
+ :AND => 36,
656
+ :NTH_PSEUDO_CLASS => 37,
657
+ :DOCUMENT_QUERY_SYM => 38,
658
+ :FUNCTION_NO_QUOTE => 39,
659
+ :TILDE => 40,
660
+ :PREFIXMATCH => 41,
661
+ :SUFFIXMATCH => 42,
662
+ :SUBSTRINGMATCH => 43,
663
+ :NOT_PSEUDO_CLASS => 44,
664
+ :KEYFRAMES_SYM => 45,
665
+ :MATCHES_PSEUDO_CLASS => 46,
666
+ :NAMESPACE_SYM => 47,
667
+ :MOZ_PSEUDO_ELEMENT => 48,
668
+ :RESOLUTION => 49,
669
+ :COLON => 50,
670
+ :SUPPORTS_SYM => 51,
671
+ :OR => 52,
672
+ :VARIABLE_NAME => 53,
673
+ :CALC_SYM => 54,
674
+ :FONTFACE_SYM => 55,
675
+ "|" => 56,
676
+ "." => 57 }
677
+
678
+ racc_nt_base = 58
489
679
 
490
680
  racc_use_result_var = true
491
681
 
@@ -524,6 +714,7 @@ Racc_token_to_s_table = [
524
714
  "EQUAL",
525
715
  "INCLUDES",
526
716
  "DASHMATCH",
717
+ "LPAREN",
527
718
  "RPAREN",
528
719
  "FUNCTION",
529
720
  "GREATER",
@@ -533,18 +724,18 @@ Racc_token_to_s_table = [
533
724
  "MINUS",
534
725
  "LENGTH",
535
726
  "PERCENTAGE",
536
- "EMS",
537
- "EXS",
538
727
  "ANGLE",
539
728
  "TIME",
540
729
  "FREQ",
541
730
  "URI",
542
731
  "IMPORTANT_SYM",
543
732
  "MEDIA_SYM",
733
+ "NOT",
734
+ "ONLY",
735
+ "AND",
544
736
  "NTH_PSEUDO_CLASS",
545
737
  "DOCUMENT_QUERY_SYM",
546
738
  "FUNCTION_NO_QUOTE",
547
- "NAMESPACE_SYM",
548
739
  "TILDE",
549
740
  "PREFIXMATCH",
550
741
  "SUFFIXMATCH",
@@ -552,10 +743,17 @@ Racc_token_to_s_table = [
552
743
  "NOT_PSEUDO_CLASS",
553
744
  "KEYFRAMES_SYM",
554
745
  "MATCHES_PSEUDO_CLASS",
555
- "MATH",
746
+ "NAMESPACE_SYM",
747
+ "MOZ_PSEUDO_ELEMENT",
748
+ "RESOLUTION",
749
+ "COLON",
750
+ "SUPPORTS_SYM",
751
+ "OR",
752
+ "VARIABLE_NAME",
753
+ "CALC_SYM",
754
+ "FONTFACE_SYM",
556
755
  "\"|\"",
557
756
  "\".\"",
558
- "\":\"",
559
757
  "$start",
560
758
  "document",
561
759
  "stylesheet",
@@ -567,18 +765,42 @@ Racc_token_to_s_table = [
567
765
  "import_location",
568
766
  "medium",
569
767
  "ident",
768
+ "media_query_list",
769
+ "media_query",
770
+ "optional_only_or_not",
771
+ "media_type",
772
+ "optional_and_exprs",
773
+ "media_expr",
774
+ "optional_space",
775
+ "expr",
776
+ "resolution",
570
777
  "ruleset",
571
778
  "conditional_rule",
572
779
  "keyframes_rule",
780
+ "fontface_rule",
573
781
  "media",
574
782
  "document_query",
783
+ "supports",
784
+ "body_in_media",
785
+ "empty_ruleset",
575
786
  "start_media",
576
787
  "start_document_query",
788
+ "start_document_query_pos",
577
789
  "url_match_fns",
578
790
  "url_match_fn",
579
791
  "function_no_quote",
580
792
  "function",
581
793
  "uri",
794
+ "start_supports",
795
+ "supports_condition_root",
796
+ "supports_negation",
797
+ "supports_conjunction_or_disjunction",
798
+ "supports_condition_in_parens",
799
+ "supports_condition",
800
+ "supports_declaration_condition",
801
+ "supports_conjunction",
802
+ "supports_disjunction",
803
+ "declaration_internal",
582
804
  "start_keyframes_rule",
583
805
  "keyframes_blocks",
584
806
  "keyframes_block",
@@ -586,6 +808,7 @@ Racc_token_to_s_table = [
586
808
  "declarations",
587
809
  "keyframes_selectors",
588
810
  "keyframes_selector",
811
+ "start_fontface_rule",
589
812
  "start_selector",
590
813
  "selectors",
591
814
  "selector",
@@ -599,17 +822,21 @@ Racc_token_to_s_table = [
599
822
  "class",
600
823
  "attrib",
601
824
  "pseudo",
825
+ "any_number_of_idents",
826
+ "multiple_idents",
602
827
  "one_or_more_semis",
603
828
  "declaration",
604
829
  "property",
605
- "expr",
606
830
  "prio",
607
831
  "operator",
608
832
  "term",
609
833
  "numeric",
610
834
  "string",
611
835
  "hexcolor",
612
- "math",
836
+ "calc",
837
+ "calc_sum",
838
+ "calc_product",
839
+ "calc_value",
613
840
  "unary_operator" ]
614
841
 
615
842
  Racc_debug_parser = false
@@ -618,14 +845,14 @@ Racc_debug_parser = false
618
845
 
619
846
  # reduce 0 omitted
620
847
 
621
- module_eval(<<'.,.,', 'parser.y', 17)
848
+ module_eval(<<'.,.,', 'parser.y', 24)
622
849
  def _reduce_1(val, _values, result)
623
850
  @handler.start_document
624
851
  result
625
852
  end
626
853
  .,.,
627
854
 
628
- module_eval(<<'.,.,', 'parser.y', 19)
855
+ module_eval(<<'.,.,', 'parser.y', 26)
629
856
  def _reduce_2(val, _values, result)
630
857
  @handler.end_document
631
858
  result
@@ -646,22 +873,22 @@ module_eval(<<'.,.,', 'parser.y', 19)
646
873
 
647
874
  # reduce 9 omitted
648
875
 
649
- module_eval(<<'.,.,', 'parser.y', 31)
876
+ module_eval(<<'.,.,', 'parser.y', 38)
650
877
  def _reduce_10(val, _values, result)
651
878
  @handler.charset interpret_string(val[1]), {}
652
879
  result
653
880
  end
654
881
  .,.,
655
882
 
656
- module_eval(<<'.,.,', 'parser.y', 35)
883
+ module_eval(<<'.,.,', 'parser.y', 42)
657
884
  def _reduce_11(val, _values, result)
658
- @handler.import_style [val[2]].flatten, val[1]
885
+ @handler.import_style val[2], val[1]
659
886
 
660
887
  result
661
888
  end
662
889
  .,.,
663
890
 
664
- module_eval(<<'.,.,', 'parser.y', 38)
891
+ module_eval(<<'.,.,', 'parser.y', 45)
665
892
  def _reduce_12(val, _values, result)
666
893
  @handler.import_style [], val[1]
667
894
 
@@ -671,21 +898,21 @@ module_eval(<<'.,.,', 'parser.y', 38)
671
898
 
672
899
  # reduce 13 omitted
673
900
 
674
- module_eval(<<'.,.,', 'parser.y', 43)
901
+ module_eval(<<'.,.,', 'parser.y', 50)
675
902
  def _reduce_14(val, _values, result)
676
903
  result = Terms::String.new interpret_string val.first
677
904
  result
678
905
  end
679
906
  .,.,
680
907
 
681
- module_eval(<<'.,.,', 'parser.y', 44)
908
+ module_eval(<<'.,.,', 'parser.y', 51)
682
909
  def _reduce_15(val, _values, result)
683
910
  result = Terms::URI.new interpret_uri val.first
684
911
  result
685
912
  end
686
913
  .,.,
687
914
 
688
- module_eval(<<'.,.,', 'parser.y', 48)
915
+ module_eval(<<'.,.,', 'parser.y', 55)
689
916
  def _reduce_16(val, _values, result)
690
917
  @handler.namespace val[1], val[2]
691
918
 
@@ -693,7 +920,7 @@ module_eval(<<'.,.,', 'parser.y', 48)
693
920
  end
694
921
  .,.,
695
922
 
696
- module_eval(<<'.,.,', 'parser.y', 51)
923
+ module_eval(<<'.,.,', 'parser.y', 58)
697
924
  def _reduce_17(val, _values, result)
698
925
  @handler.namespace nil, val[1]
699
926
 
@@ -701,94 +928,132 @@ module_eval(<<'.,.,', 'parser.y', 51)
701
928
  end
702
929
  .,.,
703
930
 
704
- module_eval(<<'.,.,', 'parser.y', 56)
931
+ module_eval(<<'.,.,', 'parser.y', 63)
705
932
  def _reduce_18(val, _values, result)
706
- result = [val.first, Terms::Ident.new(interpret_identifier val.last)]
933
+ result = val[0] << MediaType.new(val[2])
707
934
 
708
935
  result
709
936
  end
710
937
  .,.,
711
938
 
712
- module_eval(<<'.,.,', 'parser.y', 59)
939
+ module_eval(<<'.,.,', 'parser.y', 66)
713
940
  def _reduce_19(val, _values, result)
714
- result = Terms::Ident.new interpret_identifier val.first
941
+ result = [MediaType.new(val[0])]
715
942
 
716
943
  result
717
944
  end
718
945
  .,.,
719
946
 
720
- # reduce 20 omitted
947
+ module_eval(<<'.,.,', 'parser.y', 70)
948
+ def _reduce_20(val, _values, result)
949
+ result = MediaQueryList.new([ val[0] ])
950
+ result
951
+ end
952
+ .,.,
721
953
 
722
- # reduce 21 omitted
954
+ module_eval(<<'.,.,', 'parser.y', 71)
955
+ def _reduce_21(val, _values, result)
956
+ result = val[0] << val[2]
957
+ result
958
+ end
959
+ .,.,
723
960
 
724
- # reduce 22 omitted
961
+ module_eval(<<'.,.,', 'parser.y', 72)
962
+ def _reduce_22(val, _values, result)
963
+ result = MediaQueryList.new
964
+ result
965
+ end
966
+ .,.,
725
967
 
726
- # reduce 23 omitted
968
+ module_eval(<<'.,.,', 'parser.y', 75)
969
+ def _reduce_23(val, _values, result)
970
+ result = MediaQuery.new(val[0], val[1], val[2])
971
+ result
972
+ end
973
+ .,.,
727
974
 
728
- # reduce 24 omitted
975
+ module_eval(<<'.,.,', 'parser.y', 76)
976
+ def _reduce_24(val, _values, result)
977
+ result = MediaQuery.new(nil, val[0], val[1])
978
+ result
979
+ end
980
+ .,.,
729
981
 
730
- # reduce 25 omitted
982
+ module_eval(<<'.,.,', 'parser.y', 79)
983
+ def _reduce_25(val, _values, result)
984
+ result = :only
985
+ result
986
+ end
987
+ .,.,
731
988
 
732
- # reduce 26 omitted
989
+ module_eval(<<'.,.,', 'parser.y', 80)
990
+ def _reduce_26(val, _values, result)
991
+ result = :not
992
+ result
993
+ end
994
+ .,.,
733
995
 
734
- # reduce 27 omitted
996
+ module_eval(<<'.,.,', 'parser.y', 81)
997
+ def _reduce_27(val, _values, result)
998
+ result = nil
999
+ result
1000
+ end
1001
+ .,.,
735
1002
 
736
- module_eval(<<'.,.,', 'parser.y', 75)
1003
+ module_eval(<<'.,.,', 'parser.y', 84)
737
1004
  def _reduce_28(val, _values, result)
738
- @handler.end_media val.first
1005
+ result = MediaType.new(val[0])
739
1006
  result
740
1007
  end
741
1008
  .,.,
742
1009
 
743
- module_eval(<<'.,.,', 'parser.y', 79)
1010
+ module_eval(<<'.,.,', 'parser.y', 87)
744
1011
  def _reduce_29(val, _values, result)
745
- result = [val[1]].flatten
746
- @handler.start_media result
747
-
1012
+ result = MediaType.new(val[2])
748
1013
  result
749
1014
  end
750
1015
  .,.,
751
1016
 
752
- module_eval(<<'.,.,', 'parser.y', 82)
1017
+ module_eval(<<'.,.,', 'parser.y', 88)
753
1018
  def _reduce_30(val, _values, result)
754
- result = []
1019
+ result = MediaFeature.new(val[2], val[6][0])
755
1020
  result
756
1021
  end
757
1022
  .,.,
758
1023
 
759
- module_eval(<<'.,.,', 'parser.y', 85)
1024
+ module_eval(<<'.,.,', 'parser.y', 91)
760
1025
  def _reduce_31(val, _values, result)
761
- @handler.end_document_query
1026
+ result = val[0]
762
1027
  result
763
1028
  end
764
1029
  .,.,
765
1030
 
766
- module_eval(<<'.,.,', 'parser.y', 86)
1031
+ module_eval(<<'.,.,', 'parser.y', 92)
767
1032
  def _reduce_32(val, _values, result)
768
- @handler.end_document_query
1033
+ result = nil
769
1034
  result
770
1035
  end
771
1036
  .,.,
772
1037
 
773
- module_eval(<<'.,.,', 'parser.y', 90)
1038
+ module_eval(<<'.,.,', 'parser.y', 95)
774
1039
  def _reduce_33(val, _values, result)
775
- @handler.start_document_query val[1]
776
-
1040
+ result = val[0] << val[2]
777
1041
  result
778
1042
  end
779
1043
  .,.,
780
1044
 
781
- module_eval(<<'.,.,', 'parser.y', 95)
1045
+ module_eval(<<'.,.,', 'parser.y', 96)
782
1046
  def _reduce_34(val, _values, result)
783
- result = [val[0], val[2]].flatten
784
-
1047
+ result = []
785
1048
  result
786
1049
  end
787
1050
  .,.,
788
1051
 
789
- module_eval(<<'.,.,', 'parser.y', 98)
1052
+ module_eval(<<'.,.,', 'parser.y', 100)
790
1053
  def _reduce_35(val, _values, result)
791
- result = val
1054
+ unit = val.first.gsub(/[\s\d.]/, '')
1055
+ number = numeric(val.first)
1056
+ result = Terms::Resolution.new(number, unit)
792
1057
 
793
1058
  result
794
1059
  end
@@ -804,113 +1069,360 @@ module_eval(<<'.,.,', 'parser.y', 98)
804
1069
 
805
1070
  # reduce 40 omitted
806
1071
 
807
- module_eval(<<'.,.,', 'parser.y', 112)
808
- def _reduce_41(val, _values, result)
1072
+ # reduce 41 omitted
1073
+
1074
+ # reduce 42 omitted
1075
+
1076
+ # reduce 43 omitted
1077
+
1078
+ # reduce 44 omitted
1079
+
1080
+ # reduce 45 omitted
1081
+
1082
+ # reduce 46 omitted
1083
+
1084
+ # reduce 47 omitted
1085
+
1086
+ module_eval(<<'.,.,', 'parser.y', 124)
1087
+ def _reduce_48(val, _values, result)
1088
+ @handler.end_media val.first
1089
+ result
1090
+ end
1091
+ .,.,
1092
+
1093
+ module_eval(<<'.,.,', 'parser.y', 128)
1094
+ def _reduce_49(val, _values, result)
1095
+ result = val[1]
1096
+ @handler.start_media result
1097
+
1098
+ result
1099
+ end
1100
+ .,.,
1101
+
1102
+ module_eval(<<'.,.,', 'parser.y', 133)
1103
+ def _reduce_50(val, _values, result)
1104
+ @handler.end_document_query(before_pos(val), after_pos(val))
1105
+ result
1106
+ end
1107
+ .,.,
1108
+
1109
+ module_eval(<<'.,.,', 'parser.y', 134)
1110
+ def _reduce_51(val, _values, result)
1111
+ @handler.end_document_query(before_pos(val), after_pos(val))
1112
+ result
1113
+ end
1114
+ .,.,
1115
+
1116
+ module_eval(<<'.,.,', 'parser.y', 138)
1117
+ def _reduce_52(val, _values, result)
1118
+ @handler.start_document_query(val[1], after_pos(val))
1119
+
1120
+ result
1121
+ end
1122
+ .,.,
1123
+
1124
+ module_eval(<<'.,.,', 'parser.y', 143)
1125
+ def _reduce_53(val, _values, result)
1126
+ @handler.node_start_pos = before_pos(val)
1127
+
1128
+ result
1129
+ end
1130
+ .,.,
1131
+
1132
+ module_eval(<<'.,.,', 'parser.y', 148)
1133
+ def _reduce_54(val, _values, result)
1134
+ result = [val[0], val[2]].flatten
1135
+
1136
+ result
1137
+ end
1138
+ .,.,
1139
+
1140
+ module_eval(<<'.,.,', 'parser.y', 151)
1141
+ def _reduce_55(val, _values, result)
1142
+ result = val
1143
+
1144
+ result
1145
+ end
1146
+ .,.,
1147
+
1148
+ # reduce 56 omitted
1149
+
1150
+ # reduce 57 omitted
1151
+
1152
+ # reduce 58 omitted
1153
+
1154
+ module_eval(<<'.,.,', 'parser.y', 160)
1155
+ def _reduce_59(val, _values, result)
1156
+ @handler.end_supports
1157
+ result
1158
+ end
1159
+ .,.,
1160
+
1161
+ module_eval(<<'.,.,', 'parser.y', 161)
1162
+ def _reduce_60(val, _values, result)
1163
+ @handler.end_supports
1164
+ result
1165
+ end
1166
+ .,.,
1167
+
1168
+ module_eval(<<'.,.,', 'parser.y', 165)
1169
+ def _reduce_61(val, _values, result)
1170
+ @handler.start_supports val[1]
1171
+
1172
+ result
1173
+ end
1174
+ .,.,
1175
+
1176
+ module_eval(<<'.,.,', 'parser.y', 169)
1177
+ def _reduce_62(val, _values, result)
1178
+ result = val.join('')
1179
+ result
1180
+ end
1181
+ .,.,
1182
+
1183
+ module_eval(<<'.,.,', 'parser.y', 170)
1184
+ def _reduce_63(val, _values, result)
1185
+ result = val.join('')
1186
+ result
1187
+ end
1188
+ .,.,
1189
+
1190
+ module_eval(<<'.,.,', 'parser.y', 171)
1191
+ def _reduce_64(val, _values, result)
1192
+ result = val.join('')
1193
+ result
1194
+ end
1195
+ .,.,
1196
+
1197
+ module_eval(<<'.,.,', 'parser.y', 174)
1198
+ def _reduce_65(val, _values, result)
1199
+ result = val.join('')
1200
+ result
1201
+ end
1202
+ .,.,
1203
+
1204
+ module_eval(<<'.,.,', 'parser.y', 175)
1205
+ def _reduce_66(val, _values, result)
1206
+ result = val.join('')
1207
+ result
1208
+ end
1209
+ .,.,
1210
+
1211
+ module_eval(<<'.,.,', 'parser.y', 176)
1212
+ def _reduce_67(val, _values, result)
1213
+ result = val.join('')
1214
+ result
1215
+ end
1216
+ .,.,
1217
+
1218
+ module_eval(<<'.,.,', 'parser.y', 179)
1219
+ def _reduce_68(val, _values, result)
1220
+ result = val.join('')
1221
+ result
1222
+ end
1223
+ .,.,
1224
+
1225
+ module_eval(<<'.,.,', 'parser.y', 180)
1226
+ def _reduce_69(val, _values, result)
1227
+ result = val.join('')
1228
+ result
1229
+ end
1230
+ .,.,
1231
+
1232
+ module_eval(<<'.,.,', 'parser.y', 183)
1233
+ def _reduce_70(val, _values, result)
1234
+ result = val.join('')
1235
+ result
1236
+ end
1237
+ .,.,
1238
+
1239
+ # reduce 71 omitted
1240
+
1241
+ # reduce 72 omitted
1242
+
1243
+ module_eval(<<'.,.,', 'parser.y', 190)
1244
+ def _reduce_73(val, _values, result)
1245
+ result = val.join('')
1246
+ result
1247
+ end
1248
+ .,.,
1249
+
1250
+ module_eval(<<'.,.,', 'parser.y', 191)
1251
+ def _reduce_74(val, _values, result)
1252
+ result = val.join('')
1253
+ result
1254
+ end
1255
+ .,.,
1256
+
1257
+ module_eval(<<'.,.,', 'parser.y', 194)
1258
+ def _reduce_75(val, _values, result)
1259
+ result = val.join('')
1260
+ result
1261
+ end
1262
+ .,.,
1263
+
1264
+ module_eval(<<'.,.,', 'parser.y', 195)
1265
+ def _reduce_76(val, _values, result)
1266
+ result = val.join('')
1267
+ result
1268
+ end
1269
+ .,.,
1270
+
1271
+ module_eval(<<'.,.,', 'parser.y', 198)
1272
+ def _reduce_77(val, _values, result)
1273
+ result = val.join('')
1274
+ result
1275
+ end
1276
+ .,.,
1277
+
1278
+ module_eval(<<'.,.,', 'parser.y', 199)
1279
+ def _reduce_78(val, _values, result)
1280
+ result = val.join('')
1281
+ result
1282
+ end
1283
+ .,.,
1284
+
1285
+ # reduce 79 omitted
1286
+
1287
+ # reduce 80 omitted
1288
+
1289
+ module_eval(<<'.,.,', 'parser.y', 207)
1290
+ def _reduce_81(val, _values, result)
809
1291
  @handler.start_keyframes_rule val[1]
810
1292
 
811
1293
  result
812
1294
  end
813
1295
  .,.,
814
1296
 
815
- # reduce 42 omitted
1297
+ # reduce 82 omitted
816
1298
 
817
- # reduce 43 omitted
1299
+ # reduce 83 omitted
818
1300
 
819
- module_eval(<<'.,.,', 'parser.y', 120)
820
- def _reduce_44(val, _values, result)
1301
+ module_eval(<<'.,.,', 'parser.y', 215)
1302
+ def _reduce_84(val, _values, result)
821
1303
  @handler.end_keyframes_block
822
1304
  result
823
1305
  end
824
1306
  .,.,
825
1307
 
826
- module_eval(<<'.,.,', 'parser.y', 121)
827
- def _reduce_45(val, _values, result)
1308
+ module_eval(<<'.,.,', 'parser.y', 216)
1309
+ def _reduce_85(val, _values, result)
828
1310
  @handler.end_keyframes_block
829
1311
  result
830
1312
  end
831
1313
  .,.,
832
1314
 
833
- module_eval(<<'.,.,', 'parser.y', 125)
834
- def _reduce_46(val, _values, result)
1315
+ module_eval(<<'.,.,', 'parser.y', 220)
1316
+ def _reduce_86(val, _values, result)
835
1317
  @handler.start_keyframes_block val[0]
836
1318
 
837
1319
  result
838
1320
  end
839
1321
  .,.,
840
1322
 
841
- # reduce 47 omitted
1323
+ # reduce 87 omitted
842
1324
 
843
- module_eval(<<'.,.,', 'parser.y', 130)
844
- def _reduce_48(val, _values, result)
1325
+ module_eval(<<'.,.,', 'parser.y', 225)
1326
+ def _reduce_88(val, _values, result)
845
1327
  result = val[0] + ', ' + val[2]
846
1328
 
847
1329
  result
848
1330
  end
849
1331
  .,.,
850
1332
 
851
- # reduce 49 omitted
1333
+ # reduce 89 omitted
852
1334
 
853
- # reduce 50 omitted
1335
+ # reduce 90 omitted
854
1336
 
855
- module_eval(<<'.,.,', 'parser.y', 136)
856
- def _reduce_51(val, _values, result)
1337
+ module_eval(<<'.,.,', 'parser.y', 231)
1338
+ def _reduce_91(val, _values, result)
857
1339
  result = val[0].strip
858
1340
  result
859
1341
  end
860
1342
  .,.,
861
1343
 
862
- module_eval(<<'.,.,', 'parser.y', 140)
863
- def _reduce_52(val, _values, result)
1344
+ module_eval(<<'.,.,', 'parser.y', 234)
1345
+ def _reduce_92(val, _values, result)
1346
+ @handler.end_fontface_rule
1347
+ result
1348
+ end
1349
+ .,.,
1350
+
1351
+ module_eval(<<'.,.,', 'parser.y', 235)
1352
+ def _reduce_93(val, _values, result)
1353
+ @handler.end_fontface_rule
1354
+ result
1355
+ end
1356
+ .,.,
1357
+
1358
+ module_eval(<<'.,.,', 'parser.y', 239)
1359
+ def _reduce_94(val, _values, result)
1360
+ @handler.start_fontface_rule
1361
+
1362
+ result
1363
+ end
1364
+ .,.,
1365
+
1366
+ module_eval(<<'.,.,', 'parser.y', 244)
1367
+ def _reduce_95(val, _values, result)
864
1368
  @handler.end_selector val.first
865
1369
 
866
1370
  result
867
1371
  end
868
1372
  .,.,
869
1373
 
870
- module_eval(<<'.,.,', 'parser.y', 143)
871
- def _reduce_53(val, _values, result)
1374
+ module_eval(<<'.,.,', 'parser.y', 247)
1375
+ def _reduce_96(val, _values, result)
872
1376
  @handler.end_selector val.first
873
1377
 
874
1378
  result
875
1379
  end
876
1380
  .,.,
877
1381
 
878
- module_eval(<<'.,.,', 'parser.y', 147)
879
- def _reduce_54(val, _values, result)
1382
+ module_eval(<<'.,.,', 'parser.y', 252)
1383
+ def _reduce_97(val, _values, result)
1384
+ start = @handler.start_selector([])
1385
+ @handler.end_selector(start)
1386
+
1387
+ result
1388
+ end
1389
+ .,.,
1390
+
1391
+ module_eval(<<'.,.,', 'parser.y', 257)
1392
+ def _reduce_98(val, _values, result)
880
1393
  result = val.last
881
1394
  result
882
1395
  end
883
1396
  .,.,
884
1397
 
885
- module_eval(<<'.,.,', 'parser.y', 149)
886
- def _reduce_55(val, _values, result)
1398
+ module_eval(<<'.,.,', 'parser.y', 259)
1399
+ def _reduce_99(val, _values, result)
887
1400
  @handler.start_selector val.first
888
1401
 
889
1402
  result
890
1403
  end
891
1404
  .,.,
892
1405
 
893
- module_eval(<<'.,.,', 'parser.y', 155)
894
- def _reduce_56(val, _values, result)
895
- # FIXME: should always garantee array
896
- sel = Selector.new(val.first, {})
897
- result = [sel, val[2]].flatten
1406
+ module_eval(<<'.,.,', 'parser.y', 265)
1407
+ def _reduce_100(val, _values, result)
1408
+ sel = Selector.new(val.first, {})
1409
+ result = [sel].concat(val[2])
898
1410
 
899
1411
  result
900
1412
  end
901
1413
  .,.,
902
1414
 
903
- module_eval(<<'.,.,', 'parser.y', 161)
904
- def _reduce_57(val, _values, result)
1415
+ module_eval(<<'.,.,', 'parser.y', 270)
1416
+ def _reduce_101(val, _values, result)
905
1417
  result = [Selector.new(val.first, {})]
906
1418
 
907
1419
  result
908
1420
  end
909
1421
  .,.,
910
1422
 
911
- module_eval(<<'.,.,', 'parser.y', 167)
912
- def _reduce_58(val, _values, result)
913
- val = val.flatten
1423
+ module_eval(<<'.,.,', 'parser.y', 276)
1424
+ def _reduce_102(val, _values, result)
1425
+ val.flatten!
914
1426
  val[2].combinator = val.delete_at 1
915
1427
  result = val
916
1428
 
@@ -918,38 +1430,38 @@ module_eval(<<'.,.,', 'parser.y', 167)
918
1430
  end
919
1431
  .,.,
920
1432
 
921
- # reduce 59 omitted
1433
+ # reduce 103 omitted
922
1434
 
923
- module_eval(<<'.,.,', 'parser.y', 174)
924
- def _reduce_60(val, _values, result)
1435
+ module_eval(<<'.,.,', 'parser.y', 283)
1436
+ def _reduce_104(val, _values, result)
925
1437
  result = :s
926
1438
  result
927
1439
  end
928
1440
  .,.,
929
1441
 
930
- module_eval(<<'.,.,', 'parser.y', 175)
931
- def _reduce_61(val, _values, result)
1442
+ module_eval(<<'.,.,', 'parser.y', 284)
1443
+ def _reduce_105(val, _values, result)
932
1444
  result = :>
933
1445
  result
934
1446
  end
935
1447
  .,.,
936
1448
 
937
- module_eval(<<'.,.,', 'parser.y', 176)
938
- def _reduce_62(val, _values, result)
1449
+ module_eval(<<'.,.,', 'parser.y', 285)
1450
+ def _reduce_106(val, _values, result)
939
1451
  result = :+
940
1452
  result
941
1453
  end
942
1454
  .,.,
943
1455
 
944
- module_eval(<<'.,.,', 'parser.y', 177)
945
- def _reduce_63(val, _values, result)
1456
+ module_eval(<<'.,.,', 'parser.y', 286)
1457
+ def _reduce_107(val, _values, result)
946
1458
  result = :~
947
1459
  result
948
1460
  end
949
1461
  .,.,
950
1462
 
951
- module_eval(<<'.,.,', 'parser.y', 181)
952
- def _reduce_64(val, _values, result)
1463
+ module_eval(<<'.,.,', 'parser.y', 290)
1464
+ def _reduce_108(val, _values, result)
953
1465
  selector = val.first
954
1466
  selector.additional_selectors = val.last
955
1467
  result = [selector]
@@ -958,15 +1470,15 @@ module_eval(<<'.,.,', 'parser.y', 181)
958
1470
  end
959
1471
  .,.,
960
1472
 
961
- module_eval(<<'.,.,', 'parser.y', 185)
962
- def _reduce_65(val, _values, result)
1473
+ module_eval(<<'.,.,', 'parser.y', 294)
1474
+ def _reduce_109(val, _values, result)
963
1475
  result = val
964
1476
  result
965
1477
  end
966
1478
  .,.,
967
1479
 
968
- module_eval(<<'.,.,', 'parser.y', 188)
969
- def _reduce_66(val, _values, result)
1480
+ module_eval(<<'.,.,', 'parser.y', 297)
1481
+ def _reduce_110(val, _values, result)
970
1482
  ss = Selectors::Simple.new nil, nil
971
1483
  ss.additional_selectors = val.flatten
972
1484
  result = [ss]
@@ -975,152 +1487,152 @@ module_eval(<<'.,.,', 'parser.y', 188)
975
1487
  end
976
1488
  .,.,
977
1489
 
978
- module_eval(<<'.,.,', 'parser.y', 194)
979
- def _reduce_67(val, _values, result)
1490
+ module_eval(<<'.,.,', 'parser.y', 303)
1491
+ def _reduce_111(val, _values, result)
980
1492
  result = [val[0], val[2]].flatten
981
1493
  result
982
1494
  end
983
1495
  .,.,
984
1496
 
985
- # reduce 68 omitted
1497
+ # reduce 112 omitted
986
1498
 
987
- module_eval(<<'.,.,', 'parser.y', 198)
988
- def _reduce_69(val, _values, result)
1499
+ module_eval(<<'.,.,', 'parser.y', 307)
1500
+ def _reduce_113(val, _values, result)
989
1501
  result = [interpret_identifier(val[0]), nil]
990
1502
  result
991
1503
  end
992
1504
  .,.,
993
1505
 
994
- module_eval(<<'.,.,', 'parser.y', 199)
995
- def _reduce_70(val, _values, result)
1506
+ module_eval(<<'.,.,', 'parser.y', 308)
1507
+ def _reduce_114(val, _values, result)
996
1508
  result = [interpret_identifier(val[2]), interpret_identifier(val[0])]
997
1509
  result
998
1510
  end
999
1511
  .,.,
1000
1512
 
1001
- module_eval(<<'.,.,', 'parser.y', 200)
1002
- def _reduce_71(val, _values, result)
1513
+ module_eval(<<'.,.,', 'parser.y', 309)
1514
+ def _reduce_115(val, _values, result)
1003
1515
  result = [interpret_identifier(val[1]), nil]
1004
1516
  result
1005
1517
  end
1006
1518
  .,.,
1007
1519
 
1008
- module_eval(<<'.,.,', 'parser.y', 201)
1009
- def _reduce_72(val, _values, result)
1520
+ module_eval(<<'.,.,', 'parser.y', 310)
1521
+ def _reduce_116(val, _values, result)
1010
1522
  result = [interpret_identifier(val[2]), '*']
1011
1523
  result
1012
1524
  end
1013
1525
  .,.,
1014
1526
 
1015
- module_eval(<<'.,.,', 'parser.y', 204)
1016
- def _reduce_73(val, _values, result)
1527
+ module_eval(<<'.,.,', 'parser.y', 313)
1528
+ def _reduce_117(val, _values, result)
1017
1529
  result = Selectors::Type.new val.first[0], nil, val.first[1]
1018
1530
  result
1019
1531
  end
1020
1532
  .,.,
1021
1533
 
1022
- module_eval(<<'.,.,', 'parser.y', 205)
1023
- def _reduce_74(val, _values, result)
1534
+ module_eval(<<'.,.,', 'parser.y', 314)
1535
+ def _reduce_118(val, _values, result)
1024
1536
  result = Selectors::Universal.new val.first
1025
1537
  result
1026
1538
  end
1027
1539
  .,.,
1028
1540
 
1029
- module_eval(<<'.,.,', 'parser.y', 206)
1030
- def _reduce_75(val, _values, result)
1541
+ module_eval(<<'.,.,', 'parser.y', 315)
1542
+ def _reduce_119(val, _values, result)
1031
1543
  result = Selectors::Universal.new val[1]
1032
1544
  result
1033
1545
  end
1034
1546
  .,.,
1035
1547
 
1036
- module_eval(<<'.,.,', 'parser.y', 207)
1037
- def _reduce_76(val, _values, result)
1548
+ module_eval(<<'.,.,', 'parser.y', 316)
1549
+ def _reduce_120(val, _values, result)
1038
1550
  result = Selectors::Universal.new val[2], nil, val[0]
1039
1551
  result
1040
1552
  end
1041
1553
  .,.,
1042
1554
 
1043
- module_eval(<<'.,.,', 'parser.y', 208)
1044
- def _reduce_77(val, _values, result)
1555
+ module_eval(<<'.,.,', 'parser.y', 317)
1556
+ def _reduce_121(val, _values, result)
1045
1557
  result = Selectors::Universal.new val[2], nil, interpret_identifier(val[0])
1046
1558
  result
1047
1559
  end
1048
1560
  .,.,
1049
1561
 
1050
- module_eval(<<'.,.,', 'parser.y', 211)
1051
- def _reduce_78(val, _values, result)
1562
+ module_eval(<<'.,.,', 'parser.y', 320)
1563
+ def _reduce_122(val, _values, result)
1052
1564
  result = val
1053
1565
  result
1054
1566
  end
1055
1567
  .,.,
1056
1568
 
1057
- module_eval(<<'.,.,', 'parser.y', 212)
1058
- def _reduce_79(val, _values, result)
1569
+ module_eval(<<'.,.,', 'parser.y', 321)
1570
+ def _reduce_123(val, _values, result)
1059
1571
  result = val
1060
1572
  result
1061
1573
  end
1062
1574
  .,.,
1063
1575
 
1064
- module_eval(<<'.,.,', 'parser.y', 213)
1065
- def _reduce_80(val, _values, result)
1576
+ module_eval(<<'.,.,', 'parser.y', 322)
1577
+ def _reduce_124(val, _values, result)
1066
1578
  result = val
1067
1579
  result
1068
1580
  end
1069
1581
  .,.,
1070
1582
 
1071
- module_eval(<<'.,.,', 'parser.y', 214)
1072
- def _reduce_81(val, _values, result)
1583
+ module_eval(<<'.,.,', 'parser.y', 323)
1584
+ def _reduce_125(val, _values, result)
1073
1585
  result = val
1074
1586
  result
1075
1587
  end
1076
1588
  .,.,
1077
1589
 
1078
- module_eval(<<'.,.,', 'parser.y', 215)
1079
- def _reduce_82(val, _values, result)
1590
+ module_eval(<<'.,.,', 'parser.y', 324)
1591
+ def _reduce_126(val, _values, result)
1080
1592
  result = val.flatten
1081
1593
  result
1082
1594
  end
1083
1595
  .,.,
1084
1596
 
1085
- module_eval(<<'.,.,', 'parser.y', 216)
1086
- def _reduce_83(val, _values, result)
1597
+ module_eval(<<'.,.,', 'parser.y', 325)
1598
+ def _reduce_127(val, _values, result)
1087
1599
  result = val.flatten
1088
1600
  result
1089
1601
  end
1090
1602
  .,.,
1091
1603
 
1092
- module_eval(<<'.,.,', 'parser.y', 217)
1093
- def _reduce_84(val, _values, result)
1604
+ module_eval(<<'.,.,', 'parser.y', 326)
1605
+ def _reduce_128(val, _values, result)
1094
1606
  result = val.flatten
1095
1607
  result
1096
1608
  end
1097
1609
  .,.,
1098
1610
 
1099
- module_eval(<<'.,.,', 'parser.y', 218)
1100
- def _reduce_85(val, _values, result)
1611
+ module_eval(<<'.,.,', 'parser.y', 327)
1612
+ def _reduce_129(val, _values, result)
1101
1613
  result = val.flatten
1102
1614
  result
1103
1615
  end
1104
1616
  .,.,
1105
1617
 
1106
- module_eval(<<'.,.,', 'parser.y', 222)
1107
- def _reduce_86(val, _values, result)
1618
+ module_eval(<<'.,.,', 'parser.y', 331)
1619
+ def _reduce_130(val, _values, result)
1108
1620
  result = Selectors::Id.new interpret_identifier val.first.sub(/^#/, '')
1109
1621
 
1110
1622
  result
1111
1623
  end
1112
1624
  .,.,
1113
1625
 
1114
- module_eval(<<'.,.,', 'parser.y', 226)
1115
- def _reduce_87(val, _values, result)
1626
+ module_eval(<<'.,.,', 'parser.y', 335)
1627
+ def _reduce_131(val, _values, result)
1116
1628
  result = Selectors::Class.new interpret_identifier val.last
1117
1629
 
1118
1630
  result
1119
1631
  end
1120
1632
  .,.,
1121
1633
 
1122
- module_eval(<<'.,.,', 'parser.y', 231)
1123
- def _reduce_88(val, _values, result)
1634
+ module_eval(<<'.,.,', 'parser.y', 340)
1635
+ def _reduce_132(val, _values, result)
1124
1636
  result = Selectors::Attribute.new(
1125
1637
  val[1][0],
1126
1638
  interpret_identifier(val[3]),
@@ -1132,8 +1644,8 @@ module_eval(<<'.,.,', 'parser.y', 231)
1132
1644
  end
1133
1645
  .,.,
1134
1646
 
1135
- module_eval(<<'.,.,', 'parser.y', 239)
1136
- def _reduce_89(val, _values, result)
1647
+ module_eval(<<'.,.,', 'parser.y', 348)
1648
+ def _reduce_133(val, _values, result)
1137
1649
  result = Selectors::Attribute.new(
1138
1650
  val[1][0],
1139
1651
  interpret_string(val[3]),
@@ -1145,8 +1657,8 @@ module_eval(<<'.,.,', 'parser.y', 239)
1145
1657
  end
1146
1658
  .,.,
1147
1659
 
1148
- module_eval(<<'.,.,', 'parser.y', 247)
1149
- def _reduce_90(val, _values, result)
1660
+ module_eval(<<'.,.,', 'parser.y', 356)
1661
+ def _reduce_134(val, _values, result)
1150
1662
  result = Selectors::Attribute.new(
1151
1663
  val[1][0],
1152
1664
  interpret_string(val[3]),
@@ -1158,8 +1670,8 @@ module_eval(<<'.,.,', 'parser.y', 247)
1158
1670
  end
1159
1671
  .,.,
1160
1672
 
1161
- module_eval(<<'.,.,', 'parser.y', 255)
1162
- def _reduce_91(val, _values, result)
1673
+ module_eval(<<'.,.,', 'parser.y', 364)
1674
+ def _reduce_135(val, _values, result)
1163
1675
  result = Selectors::Attribute.new(
1164
1676
  val[1][0],
1165
1677
  interpret_identifier(val[3]),
@@ -1171,8 +1683,8 @@ module_eval(<<'.,.,', 'parser.y', 255)
1171
1683
  end
1172
1684
  .,.,
1173
1685
 
1174
- module_eval(<<'.,.,', 'parser.y', 263)
1175
- def _reduce_92(val, _values, result)
1686
+ module_eval(<<'.,.,', 'parser.y', 372)
1687
+ def _reduce_136(val, _values, result)
1176
1688
  result = Selectors::Attribute.new(
1177
1689
  val[1][0],
1178
1690
  interpret_identifier(val[3]),
@@ -1184,8 +1696,8 @@ module_eval(<<'.,.,', 'parser.y', 263)
1184
1696
  end
1185
1697
  .,.,
1186
1698
 
1187
- module_eval(<<'.,.,', 'parser.y', 271)
1188
- def _reduce_93(val, _values, result)
1699
+ module_eval(<<'.,.,', 'parser.y', 380)
1700
+ def _reduce_137(val, _values, result)
1189
1701
  result = Selectors::Attribute.new(
1190
1702
  val[1][0],
1191
1703
  interpret_string(val[3]),
@@ -1197,8 +1709,8 @@ module_eval(<<'.,.,', 'parser.y', 271)
1197
1709
  end
1198
1710
  .,.,
1199
1711
 
1200
- module_eval(<<'.,.,', 'parser.y', 279)
1201
- def _reduce_94(val, _values, result)
1712
+ module_eval(<<'.,.,', 'parser.y', 388)
1713
+ def _reduce_138(val, _values, result)
1202
1714
  result = Selectors::Attribute.new(
1203
1715
  val[1][0],
1204
1716
  interpret_identifier(val[3]),
@@ -1210,8 +1722,8 @@ module_eval(<<'.,.,', 'parser.y', 279)
1210
1722
  end
1211
1723
  .,.,
1212
1724
 
1213
- module_eval(<<'.,.,', 'parser.y', 287)
1214
- def _reduce_95(val, _values, result)
1725
+ module_eval(<<'.,.,', 'parser.y', 396)
1726
+ def _reduce_139(val, _values, result)
1215
1727
  result = Selectors::Attribute.new(
1216
1728
  val[1][0],
1217
1729
  interpret_string(val[3]),
@@ -1223,8 +1735,8 @@ module_eval(<<'.,.,', 'parser.y', 287)
1223
1735
  end
1224
1736
  .,.,
1225
1737
 
1226
- module_eval(<<'.,.,', 'parser.y', 295)
1227
- def _reduce_96(val, _values, result)
1738
+ module_eval(<<'.,.,', 'parser.y', 404)
1739
+ def _reduce_140(val, _values, result)
1228
1740
  result = Selectors::Attribute.new(
1229
1741
  val[1][0],
1230
1742
  interpret_identifier(val[3]),
@@ -1236,8 +1748,8 @@ module_eval(<<'.,.,', 'parser.y', 295)
1236
1748
  end
1237
1749
  .,.,
1238
1750
 
1239
- module_eval(<<'.,.,', 'parser.y', 303)
1240
- def _reduce_97(val, _values, result)
1751
+ module_eval(<<'.,.,', 'parser.y', 412)
1752
+ def _reduce_141(val, _values, result)
1241
1753
  result = Selectors::Attribute.new(
1242
1754
  val[1][0],
1243
1755
  interpret_string(val[3]),
@@ -1249,8 +1761,8 @@ module_eval(<<'.,.,', 'parser.y', 303)
1249
1761
  end
1250
1762
  .,.,
1251
1763
 
1252
- module_eval(<<'.,.,', 'parser.y', 311)
1253
- def _reduce_98(val, _values, result)
1764
+ module_eval(<<'.,.,', 'parser.y', 420)
1765
+ def _reduce_142(val, _values, result)
1254
1766
  result = Selectors::Attribute.new(
1255
1767
  val[1][0],
1256
1768
  interpret_identifier(val[3]),
@@ -1262,8 +1774,8 @@ module_eval(<<'.,.,', 'parser.y', 311)
1262
1774
  end
1263
1775
  .,.,
1264
1776
 
1265
- module_eval(<<'.,.,', 'parser.y', 319)
1266
- def _reduce_99(val, _values, result)
1777
+ module_eval(<<'.,.,', 'parser.y', 428)
1778
+ def _reduce_143(val, _values, result)
1267
1779
  result = Selectors::Attribute.new(
1268
1780
  val[1][0],
1269
1781
  interpret_string(val[3]),
@@ -1275,8 +1787,8 @@ module_eval(<<'.,.,', 'parser.y', 319)
1275
1787
  end
1276
1788
  .,.,
1277
1789
 
1278
- module_eval(<<'.,.,', 'parser.y', 327)
1279
- def _reduce_100(val, _values, result)
1790
+ module_eval(<<'.,.,', 'parser.y', 436)
1791
+ def _reduce_144(val, _values, result)
1280
1792
  result = Selectors::Attribute.new(
1281
1793
  val[1][0],
1282
1794
  nil,
@@ -1288,16 +1800,16 @@ module_eval(<<'.,.,', 'parser.y', 327)
1288
1800
  end
1289
1801
  .,.,
1290
1802
 
1291
- module_eval(<<'.,.,', 'parser.y', 337)
1292
- def _reduce_101(val, _values, result)
1803
+ module_eval(<<'.,.,', 'parser.y', 446)
1804
+ def _reduce_145(val, _values, result)
1293
1805
  result = Selectors::pseudo interpret_identifier(val[1])
1294
1806
 
1295
1807
  result
1296
1808
  end
1297
1809
  .,.,
1298
1810
 
1299
- module_eval(<<'.,.,', 'parser.y', 340)
1300
- def _reduce_102(val, _values, result)
1811
+ module_eval(<<'.,.,', 'parser.y', 449)
1812
+ def _reduce_146(val, _values, result)
1301
1813
  result = Selectors::PseudoElement.new(
1302
1814
  interpret_identifier(val[2])
1303
1815
  )
@@ -1306,8 +1818,8 @@ module_eval(<<'.,.,', 'parser.y', 340)
1306
1818
  end
1307
1819
  .,.,
1308
1820
 
1309
- module_eval(<<'.,.,', 'parser.y', 345)
1310
- def _reduce_103(val, _values, result)
1821
+ module_eval(<<'.,.,', 'parser.y', 454)
1822
+ def _reduce_147(val, _values, result)
1311
1823
  result = Selectors::PseudoClass.new(
1312
1824
  interpret_identifier(val[1].sub(/\($/, '')),
1313
1825
  ''
@@ -1317,8 +1829,8 @@ module_eval(<<'.,.,', 'parser.y', 345)
1317
1829
  end
1318
1830
  .,.,
1319
1831
 
1320
- module_eval(<<'.,.,', 'parser.y', 351)
1321
- def _reduce_104(val, _values, result)
1832
+ module_eval(<<'.,.,', 'parser.y', 460)
1833
+ def _reduce_148(val, _values, result)
1322
1834
  result = Selectors::PseudoClass.new(
1323
1835
  interpret_identifier(val[1].sub(/\($/, '')),
1324
1836
  interpret_identifier(val[2])
@@ -1328,8 +1840,8 @@ module_eval(<<'.,.,', 'parser.y', 351)
1328
1840
  end
1329
1841
  .,.,
1330
1842
 
1331
- module_eval(<<'.,.,', 'parser.y', 357)
1332
- def _reduce_105(val, _values, result)
1843
+ module_eval(<<'.,.,', 'parser.y', 466)
1844
+ def _reduce_149(val, _values, result)
1333
1845
  result = Selectors::PseudoClass.new(
1334
1846
  'not',
1335
1847
  val[2].first.to_s
@@ -1339,8 +1851,8 @@ module_eval(<<'.,.,', 'parser.y', 357)
1339
1851
  end
1340
1852
  .,.,
1341
1853
 
1342
- module_eval(<<'.,.,', 'parser.y', 363)
1343
- def _reduce_106(val, _values, result)
1854
+ module_eval(<<'.,.,', 'parser.y', 472)
1855
+ def _reduce_150(val, _values, result)
1344
1856
  result = Selectors::PseudoClass.new(
1345
1857
  interpret_identifier(val[1].sub(/\(.*/, '')),
1346
1858
  interpret_identifier(val[1].sub(/.*\(/, '').sub(/\).*/, ''))
@@ -1350,8 +1862,8 @@ module_eval(<<'.,.,', 'parser.y', 363)
1350
1862
  end
1351
1863
  .,.,
1352
1864
 
1353
- module_eval(<<'.,.,', 'parser.y', 369)
1354
- def _reduce_107(val, _values, result)
1865
+ module_eval(<<'.,.,', 'parser.y', 478)
1866
+ def _reduce_151(val, _values, result)
1355
1867
  result = Selectors::PseudoClass.new(
1356
1868
  val[1].split('(').first.strip,
1357
1869
  val[2].join(', ')
@@ -1361,84 +1873,126 @@ module_eval(<<'.,.,', 'parser.y', 369)
1361
1873
  end
1362
1874
  .,.,
1363
1875
 
1364
- # reduce 108 omitted
1876
+ module_eval(<<'.,.,', 'parser.y', 484)
1877
+ def _reduce_152(val, _values, result)
1878
+ result = Selectors::PseudoElement.new(
1879
+ interpret_identifier(val[1].sub(/\($/, ''))
1880
+ )
1881
+
1882
+ result
1883
+ end
1884
+ .,.,
1885
+
1886
+ module_eval(<<'.,.,', 'parser.y', 489)
1887
+ def _reduce_153(val, _values, result)
1888
+ result = Selectors::PseudoElement.new(
1889
+ interpret_identifier(val[2].sub(/\($/, ''))
1890
+ )
1891
+
1892
+ result
1893
+ end
1894
+ .,.,
1365
1895
 
1366
- # reduce 109 omitted
1896
+ # reduce 154 omitted
1367
1897
 
1368
- # reduce 110 omitted
1898
+ # reduce 155 omitted
1369
1899
 
1370
- # reduce 111 omitted
1900
+ # reduce 156 omitted
1371
1901
 
1372
- # reduce 112 omitted
1902
+ # reduce 157 omitted
1373
1903
 
1374
- # reduce 113 omitted
1904
+ # reduce 158 omitted
1375
1905
 
1376
- # reduce 114 omitted
1906
+ # reduce 159 omitted
1377
1907
 
1378
- module_eval(<<'.,.,', 'parser.y', 389)
1379
- def _reduce_115(val, _values, result)
1380
- @handler.property val.first, val[2], val[3]
1908
+ # reduce 160 omitted
1909
+
1910
+ # reduce 161 omitted
1911
+
1912
+ # reduce 162 omitted
1913
+
1914
+ # reduce 163 omitted
1915
+
1916
+ # reduce 164 omitted
1917
+
1918
+ module_eval(<<'.,.,', 'parser.y', 515)
1919
+ def _reduce_165(val, _values, result)
1920
+ @handler.property val.first
1381
1921
  result
1382
1922
  end
1383
1923
  .,.,
1384
1924
 
1385
- module_eval(<<'.,.,', 'parser.y', 391)
1386
- def _reduce_116(val, _values, result)
1387
- @handler.property val.first, val[3], val[4]
1925
+ module_eval(<<'.,.,', 'parser.y', 519)
1926
+ def _reduce_166(val, _values, result)
1927
+ result = Declaration.new(val.first, val[2], val[3])
1388
1928
  result
1389
1929
  end
1390
1930
  .,.,
1391
1931
 
1392
- module_eval(<<'.,.,', 'parser.y', 393)
1393
- def _reduce_117(val, _values, result)
1394
- @handler.property val.first, val[3], val[4]
1932
+ module_eval(<<'.,.,', 'parser.y', 521)
1933
+ def _reduce_167(val, _values, result)
1934
+ result = Declaration.new(val.first, val[3], val[4])
1395
1935
  result
1396
1936
  end
1397
1937
  .,.,
1398
1938
 
1399
- module_eval(<<'.,.,', 'parser.y', 395)
1400
- def _reduce_118(val, _values, result)
1401
- @handler.property val.first, val[4], val[5]
1939
+ module_eval(<<'.,.,', 'parser.y', 523)
1940
+ def _reduce_168(val, _values, result)
1941
+ result = Declaration.new(val.first, val[3], val[4])
1402
1942
  result
1403
1943
  end
1404
1944
  .,.,
1405
1945
 
1406
- module_eval(<<'.,.,', 'parser.y', 398)
1407
- def _reduce_119(val, _values, result)
1946
+ module_eval(<<'.,.,', 'parser.y', 525)
1947
+ def _reduce_169(val, _values, result)
1948
+ result = Declaration.new(val.first, val[4], val[5])
1949
+ result
1950
+ end
1951
+ .,.,
1952
+
1953
+ module_eval(<<'.,.,', 'parser.y', 528)
1954
+ def _reduce_170(val, _values, result)
1408
1955
  result = true
1409
1956
  result
1410
1957
  end
1411
1958
  .,.,
1412
1959
 
1413
- module_eval(<<'.,.,', 'parser.y', 399)
1414
- def _reduce_120(val, _values, result)
1960
+ module_eval(<<'.,.,', 'parser.y', 529)
1961
+ def _reduce_171(val, _values, result)
1415
1962
  result = false
1416
1963
  result
1417
1964
  end
1418
1965
  .,.,
1419
1966
 
1420
- module_eval(<<'.,.,', 'parser.y', 402)
1421
- def _reduce_121(val, _values, result)
1967
+ module_eval(<<'.,.,', 'parser.y', 532)
1968
+ def _reduce_172(val, _values, result)
1422
1969
  result = interpret_identifier val[0]
1423
1970
  result
1424
1971
  end
1425
1972
  .,.,
1426
1973
 
1427
- module_eval(<<'.,.,', 'parser.y', 403)
1428
- def _reduce_122(val, _values, result)
1974
+ module_eval(<<'.,.,', 'parser.y', 533)
1975
+ def _reduce_173(val, _values, result)
1429
1976
  result = interpret_identifier val.join
1430
1977
  result
1431
1978
  end
1432
1979
  .,.,
1433
1980
 
1434
- # reduce 123 omitted
1981
+ module_eval(<<'.,.,', 'parser.y', 534)
1982
+ def _reduce_174(val, _values, result)
1983
+ result = interpret_identifier val[0]
1984
+ result
1985
+ end
1986
+ .,.,
1987
+
1988
+ # reduce 175 omitted
1435
1989
 
1436
- # reduce 124 omitted
1990
+ # reduce 176 omitted
1437
1991
 
1438
- # reduce 125 omitted
1992
+ # reduce 177 omitted
1439
1993
 
1440
- module_eval(<<'.,.,', 'parser.y', 412)
1441
- def _reduce_126(val, _values, result)
1994
+ module_eval(<<'.,.,', 'parser.y', 543)
1995
+ def _reduce_178(val, _values, result)
1442
1996
  result = [val.first, val.last].flatten
1443
1997
  val.last.first.operator = val[1]
1444
1998
 
@@ -1446,43 +2000,47 @@ module_eval(<<'.,.,', 'parser.y', 412)
1446
2000
  end
1447
2001
  .,.,
1448
2002
 
1449
- module_eval(<<'.,.,', 'parser.y', 415)
1450
- def _reduce_127(val, _values, result)
2003
+ module_eval(<<'.,.,', 'parser.y', 546)
2004
+ def _reduce_179(val, _values, result)
1451
2005
  result = val.flatten
1452
2006
  result
1453
2007
  end
1454
2008
  .,.,
1455
2009
 
1456
- module_eval(<<'.,.,', 'parser.y', 416)
1457
- def _reduce_128(val, _values, result)
2010
+ module_eval(<<'.,.,', 'parser.y', 547)
2011
+ def _reduce_180(val, _values, result)
1458
2012
  result = val
1459
2013
  result
1460
2014
  end
1461
2015
  .,.,
1462
2016
 
1463
- # reduce 129 omitted
2017
+ # reduce 181 omitted
1464
2018
 
1465
- # reduce 130 omitted
2019
+ # reduce 182 omitted
1466
2020
 
1467
- # reduce 131 omitted
2021
+ # reduce 183 omitted
1468
2022
 
1469
- # reduce 132 omitted
2023
+ # reduce 184 omitted
1470
2024
 
1471
- # reduce 133 omitted
2025
+ # reduce 185 omitted
1472
2026
 
1473
- # reduce 134 omitted
2027
+ # reduce 186 omitted
1474
2028
 
1475
- # reduce 135 omitted
2029
+ # reduce 187 omitted
1476
2030
 
1477
- module_eval(<<'.,.,', 'parser.y', 428)
1478
- def _reduce_136(val, _values, result)
2031
+ # reduce 188 omitted
2032
+
2033
+ # reduce 189 omitted
2034
+
2035
+ module_eval(<<'.,.,', 'parser.y', 561)
2036
+ def _reduce_190(val, _values, result)
1479
2037
  result = val.first
1480
2038
  result
1481
2039
  end
1482
2040
  .,.,
1483
2041
 
1484
- module_eval(<<'.,.,', 'parser.y', 430)
1485
- def _reduce_137(val, _values, result)
2042
+ module_eval(<<'.,.,', 'parser.y', 563)
2043
+ def _reduce_191(val, _values, result)
1486
2044
  name = interpret_identifier val.first.sub(/\($/, '')
1487
2045
  if name == 'rgb'
1488
2046
  result = Terms::Rgb.new(*val[1])
@@ -1494,15 +2052,24 @@ module_eval(<<'.,.,', 'parser.y', 430)
1494
2052
  end
1495
2053
  .,.,
1496
2054
 
1497
- module_eval(<<'.,.,', 'parser.y', 439)
1498
- def _reduce_138(val, _values, result)
2055
+ module_eval(<<'.,.,', 'parser.y', 571)
2056
+ def _reduce_192(val, _values, result)
2057
+ name = interpret_identifier val.first.sub(/\($/, '')
2058
+ result = Terms::Function.new name
2059
+
2060
+ result
2061
+ end
2062
+ .,.,
2063
+
2064
+ module_eval(<<'.,.,', 'parser.y', 576)
2065
+ def _reduce_193(val, _values, result)
1499
2066
  result = val.first
1500
2067
  result
1501
2068
  end
1502
2069
  .,.,
1503
2070
 
1504
- module_eval(<<'.,.,', 'parser.y', 441)
1505
- def _reduce_139(val, _values, result)
2071
+ module_eval(<<'.,.,', 'parser.y', 578)
2072
+ def _reduce_194(val, _values, result)
1506
2073
  parts = val.first.split('(')
1507
2074
  name = interpret_identifier parts.first
1508
2075
  result = Terms::Function.new(name, [Terms::String.new(interpret_string_no_quote(parts.last))])
@@ -1511,61 +2078,111 @@ module_eval(<<'.,.,', 'parser.y', 441)
1511
2078
  end
1512
2079
  .,.,
1513
2080
 
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)
2081
+ module_eval(<<'.,.,', 'parser.y', 585)
2082
+ def _reduce_195(val, _values, result)
2083
+ result = Terms::Math.new(val.first.split('(').first, val[1])
1520
2084
 
1521
2085
  result
1522
2086
  end
1523
2087
  .,.,
1524
2088
 
1525
- module_eval(<<'.,.,', 'parser.y', 455)
1526
- def _reduce_141(val, _values, result)
2089
+ # reduce 196 omitted
2090
+
2091
+ module_eval(<<'.,.,', 'parser.y', 591)
2092
+ def _reduce_197(val, _values, result)
2093
+ val.insert(1, ' '); result = val.join('')
2094
+ result
2095
+ end
2096
+ .,.,
2097
+
2098
+ module_eval(<<'.,.,', 'parser.y', 592)
2099
+ def _reduce_198(val, _values, result)
2100
+ val.insert(1, ' '); result = val.join('')
2101
+ result
2102
+ end
2103
+ .,.,
2104
+
2105
+ # reduce 199 omitted
2106
+
2107
+ module_eval(<<'.,.,', 'parser.y', 596)
2108
+ def _reduce_200(val, _values, result)
2109
+ result = val.join('')
2110
+ result
2111
+ end
2112
+ .,.,
2113
+
2114
+ module_eval(<<'.,.,', 'parser.y', 597)
2115
+ def _reduce_201(val, _values, result)
2116
+ result = val.join('')
2117
+ result
2118
+ end
2119
+ .,.,
2120
+
2121
+ module_eval(<<'.,.,', 'parser.y', 600)
2122
+ def _reduce_202(val, _values, result)
2123
+ result = val.join('')
2124
+ result
2125
+ end
2126
+ .,.,
2127
+
2128
+ module_eval(<<'.,.,', 'parser.y', 601)
2129
+ def _reduce_203(val, _values, result)
2130
+ result = val.join('')
2131
+ result
2132
+ end
2133
+ .,.,
2134
+
2135
+ module_eval(<<'.,.,', 'parser.y', 602)
2136
+ def _reduce_204(val, _values, result)
2137
+ result = val.join('')
2138
+ result
2139
+ end
2140
+ .,.,
2141
+
2142
+ module_eval(<<'.,.,', 'parser.y', 605)
2143
+ def _reduce_205(val, _values, result)
1527
2144
  result = val.first
1528
2145
  result
1529
2146
  end
1530
2147
  .,.,
1531
2148
 
1532
- module_eval(<<'.,.,', 'parser.y', 456)
1533
- def _reduce_142(val, _values, result)
2149
+ module_eval(<<'.,.,', 'parser.y', 606)
2150
+ def _reduce_206(val, _values, result)
1534
2151
  result = Terms::Hash.new val.first.sub(/^#/, '')
1535
2152
  result
1536
2153
  end
1537
2154
  .,.,
1538
2155
 
1539
- module_eval(<<'.,.,', 'parser.y', 459)
1540
- def _reduce_143(val, _values, result)
2156
+ module_eval(<<'.,.,', 'parser.y', 609)
2157
+ def _reduce_207(val, _values, result)
1541
2158
  result = val.first
1542
2159
  result
1543
2160
  end
1544
2161
  .,.,
1545
2162
 
1546
- module_eval(<<'.,.,', 'parser.y', 460)
1547
- def _reduce_144(val, _values, result)
2163
+ module_eval(<<'.,.,', 'parser.y', 610)
2164
+ def _reduce_208(val, _values, result)
1548
2165
  result = Terms::URI.new interpret_uri val.first
1549
2166
  result
1550
2167
  end
1551
2168
  .,.,
1552
2169
 
1553
- module_eval(<<'.,.,', 'parser.y', 463)
1554
- def _reduce_145(val, _values, result)
2170
+ module_eval(<<'.,.,', 'parser.y', 613)
2171
+ def _reduce_209(val, _values, result)
1555
2172
  result = val.first
1556
2173
  result
1557
2174
  end
1558
2175
  .,.,
1559
2176
 
1560
- module_eval(<<'.,.,', 'parser.y', 464)
1561
- def _reduce_146(val, _values, result)
2177
+ module_eval(<<'.,.,', 'parser.y', 614)
2178
+ def _reduce_210(val, _values, result)
1562
2179
  result = Terms::String.new interpret_string val.first
1563
2180
  result
1564
2181
  end
1565
2182
  .,.,
1566
2183
 
1567
- module_eval(<<'.,.,', 'parser.y', 468)
1568
- def _reduce_147(val, _values, result)
2184
+ module_eval(<<'.,.,', 'parser.y', 618)
2185
+ def _reduce_211(val, _values, result)
1569
2186
  result = val[1]
1570
2187
  val[1].unary_operator = val.first
1571
2188
 
@@ -1573,24 +2190,24 @@ module_eval(<<'.,.,', 'parser.y', 468)
1573
2190
  end
1574
2191
  .,.,
1575
2192
 
1576
- module_eval(<<'.,.,', 'parser.y', 472)
1577
- def _reduce_148(val, _values, result)
2193
+ module_eval(<<'.,.,', 'parser.y', 622)
2194
+ def _reduce_212(val, _values, result)
1578
2195
  result = Terms::Number.new numeric val.first
1579
2196
 
1580
2197
  result
1581
2198
  end
1582
2199
  .,.,
1583
2200
 
1584
- module_eval(<<'.,.,', 'parser.y', 475)
1585
- def _reduce_149(val, _values, result)
2201
+ module_eval(<<'.,.,', 'parser.y', 625)
2202
+ def _reduce_213(val, _values, result)
1586
2203
  result = Terms::Number.new numeric(val.first), nil, '%'
1587
2204
 
1588
2205
  result
1589
2206
  end
1590
2207
  .,.,
1591
2208
 
1592
- module_eval(<<'.,.,', 'parser.y', 478)
1593
- def _reduce_150(val, _values, result)
2209
+ module_eval(<<'.,.,', 'parser.y', 628)
2210
+ def _reduce_214(val, _values, result)
1594
2211
  unit = val.first.gsub(/[\s\d.]/, '')
1595
2212
  result = Terms::Number.new numeric(val.first), nil, unit
1596
2213
 
@@ -1598,24 +2215,8 @@ module_eval(<<'.,.,', 'parser.y', 478)
1598
2215
  end
1599
2216
  .,.,
1600
2217
 
1601
- module_eval(<<'.,.,', 'parser.y', 482)
1602
- def _reduce_151(val, _values, result)
1603
- result = Terms::Number.new numeric(val.first), nil, 'em'
1604
-
1605
- result
1606
- end
1607
- .,.,
1608
-
1609
- module_eval(<<'.,.,', 'parser.y', 485)
1610
- def _reduce_152(val, _values, result)
1611
- result = Terms::Number.new numeric(val.first), nil, 'ex'
1612
-
1613
- result
1614
- end
1615
- .,.,
1616
-
1617
- module_eval(<<'.,.,', 'parser.y', 488)
1618
- def _reduce_153(val, _values, result)
2218
+ module_eval(<<'.,.,', 'parser.y', 632)
2219
+ def _reduce_215(val, _values, result)
1619
2220
  unit = val.first.gsub(/[\s\d.]/, '')
1620
2221
  result = Terms::Number.new numeric(val.first), nil, unit
1621
2222
 
@@ -1623,8 +2224,8 @@ module_eval(<<'.,.,', 'parser.y', 488)
1623
2224
  end
1624
2225
  .,.,
1625
2226
 
1626
- module_eval(<<'.,.,', 'parser.y', 492)
1627
- def _reduce_154(val, _values, result)
2227
+ module_eval(<<'.,.,', 'parser.y', 636)
2228
+ def _reduce_216(val, _values, result)
1628
2229
  unit = val.first.gsub(/[\s\d.]/, '')
1629
2230
  result = Terms::Number.new numeric(val.first), nil, unit
1630
2231
 
@@ -1632,8 +2233,8 @@ module_eval(<<'.,.,', 'parser.y', 492)
1632
2233
  end
1633
2234
  .,.,
1634
2235
 
1635
- module_eval(<<'.,.,', 'parser.y', 496)
1636
- def _reduce_155(val, _values, result)
2236
+ module_eval(<<'.,.,', 'parser.y', 640)
2237
+ def _reduce_217(val, _values, result)
1637
2238
  unit = val.first.gsub(/[\s\d.]/, '')
1638
2239
  result = Terms::Number.new numeric(val.first), nil, unit
1639
2240
 
@@ -1641,29 +2242,29 @@ module_eval(<<'.,.,', 'parser.y', 496)
1641
2242
  end
1642
2243
  .,.,
1643
2244
 
1644
- module_eval(<<'.,.,', 'parser.y', 501)
1645
- def _reduce_156(val, _values, result)
2245
+ module_eval(<<'.,.,', 'parser.y', 645)
2246
+ def _reduce_218(val, _values, result)
1646
2247
  result = :minus
1647
2248
  result
1648
2249
  end
1649
2250
  .,.,
1650
2251
 
1651
- module_eval(<<'.,.,', 'parser.y', 502)
1652
- def _reduce_157(val, _values, result)
2252
+ module_eval(<<'.,.,', 'parser.y', 646)
2253
+ def _reduce_219(val, _values, result)
1653
2254
  result = :plus
1654
2255
  result
1655
2256
  end
1656
2257
  .,.,
1657
2258
 
1658
- module_eval(<<'.,.,', 'parser.y', 505)
1659
- def _reduce_158(val, _values, result)
2259
+ module_eval(<<'.,.,', 'parser.y', 649)
2260
+ def _reduce_220(val, _values, result)
1660
2261
  result = val.first
1661
2262
  result
1662
2263
  end
1663
2264
  .,.,
1664
2265
 
1665
- module_eval(<<'.,.,', 'parser.y', 506)
1666
- def _reduce_159(val, _values, result)
2266
+ module_eval(<<'.,.,', 'parser.y', 650)
2267
+ def _reduce_221(val, _values, result)
1667
2268
  result = Terms::Ident.new interpret_identifier val.first
1668
2269
  result
1669
2270
  end