csspool 4.0.0.pre → 4.0.0

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