oga 1.1.0-java → 1.2.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -48,7 +48,9 @@
48
48
 
49
49
  newline = '\r\n' | '\n' | '\r';
50
50
  whitespace = [ \t];
51
- ident_char = [a-zA-Z0-9\-_];
51
+
52
+ unicode = any - ascii;
53
+ ident_char = unicode | [a-zA-Z0-9\-_\.];
52
54
  identifier = ident_char+;
53
55
 
54
56
  whitespace_or_newline = whitespace | newline;
data/lib/liboga.jar CHANGED
Binary file
@@ -47,111 +47,118 @@ class Parser < LL::Driver
47
47
  :T_EVEN, # 23
48
48
  :T_DOT, # 24
49
49
  :T_HASH, # 25
50
+ :T_COMMA, # 26
50
51
  ].freeze
51
52
 
52
53
  CONFIG.rules = [
53
54
  [3, 0, 0, 1], # 0
54
55
  [3, 1, 2, 0], # 1
55
- [3, 2, 4, 29, 6, 0, 0, 3], # 2
56
- [3, 3, 0, 3, 1, 6], # 3
57
- [3, 4, 8, 30, 0, 4], # 4
58
- [3, 5, 8, 31, 0, 5], # 5
59
- [3, 6, 0, 10], # 6
60
- [3, 7, 0, 7], # 7
61
- [3, 8, 0, 6, 1, 16], # 8
62
- [3, 9, 0, 6, 1, 17], # 9
63
- [3, 10, 0, 6, 1, 18], # 10
64
- [3, 11, 0, 7], # 11
65
- [3, 12, 0, 5], # 12
66
- [3, 13, 0, 8], # 13
67
- [3, 14, 8, 32, 1, 1], # 14
68
- [3, 15, 1, 1, 1, 2], # 15
69
- [3, 16, 4, 33, 6, 0, 0, 11], # 16
70
- [3, 17, 0, 17], # 17
71
- [3, 18, 0, 18], # 18
56
+ [3, 2, 4, 31, 6, 0, 0, 3], # 2
57
+ [3, 3, 0, 3, 1, 26], # 3
58
+ [3, 4, 4, 32, 6, 0, 0, 5], # 4
59
+ [3, 5, 0, 5, 1, 6], # 5
60
+ [3, 6, 8, 33, 0, 6], # 6
61
+ [3, 7, 8, 34, 0, 7], # 7
62
+ [3, 8, 0, 12], # 8
63
+ [3, 9, 0, 9], # 9
64
+ [3, 10, 0, 8, 1, 16], # 10
65
+ [3, 11, 0, 8, 1, 17], # 11
66
+ [3, 12, 0, 8, 1, 18], # 12
67
+ [3, 13, 0, 9], # 13
68
+ [3, 14, 0, 7], # 14
69
+ [3, 15, 0, 10], # 15
70
+ [3, 16, 8, 35, 1, 1], # 16
71
+ [3, 17, 1, 1, 1, 2], # 17
72
+ [3, 18, 4, 36, 6, 0, 0, 13], # 18
72
73
  [3, 19, 0, 19], # 19
73
- [3, 20, 0, 12], # 20
74
- [3, 21, 1, 4, 0, 13, 1, 3], # 21
75
- [3, 22, 0, 15], # 22
76
- [3, 23, 0, 8], # 23
77
- [3, 24, 8, 34, 0, 14], # 24
78
- [3, 25, 1, 10], # 25
79
- [3, 26, 1, 11], # 26
80
- [3, 27, 1, 12], # 27
81
- [3, 28, 1, 13], # 28
82
- [3, 29, 1, 14], # 29
83
- [3, 30, 1, 15], # 30
84
- [3, 31, 1, 1, 1, 24], # 31
85
- [3, 32, 1, 1, 1, 25], # 32
86
- [3, 33, 8, 35, 0, 20], # 33
87
- [3, 34, 1, 1, 1, 5], # 34
88
- [3, 35, 1, 8, 0, 22, 1, 7], # 35
89
- [3, 36, 0, 27], # 36
90
- [3, 37, 0, 28], # 37
91
- [3, 38, 0, 25], # 38
92
- [3, 39, 0, 3], # 39
93
- [3, 40, 1, 21], # 40
94
- [3, 41, 1, 20], # 41
95
- [3, 42, 8, 36, 0, 26], # 42
96
- [3, 43, 8, 37, 0, 26, 1, 9], # 43
97
- [3, 44, 8, 39, 8, 38, 0, 24], # 44
98
- [3, 45, 1, 19], # 45
99
- [3, 46, 1, 22], # 46
100
- [3, 47, 1, 23], # 47
101
- [3, 48, 0, 2], # 48
102
- [3, 49, 0, 10], # 49
103
- [3, 50, 0, 10], # 50
104
- [3, 51, 0, 9], # 51
105
- [3, 52, 0, 11], # 52
106
- [3, 53, 0, 23, 0, 16], # 53
107
- [3, 54, 0, 21], # 54
108
- [3, 55, 0, 24], # 55
109
- [3, 56, 0, 24], # 56
110
- [3, 57, 0, 26], # 57
111
- [3, 58, 0, 24], # 58
74
+ [3, 20, 0, 20], # 20
75
+ [3, 21, 0, 21], # 21
76
+ [3, 22, 0, 14], # 22
77
+ [3, 23, 1, 4, 0, 15, 1, 3], # 23
78
+ [3, 24, 0, 17], # 24
79
+ [3, 25, 0, 10], # 25
80
+ [3, 26, 8, 37, 0, 16], # 26
81
+ [3, 27, 1, 10], # 27
82
+ [3, 28, 1, 11], # 28
83
+ [3, 29, 1, 12], # 29
84
+ [3, 30, 1, 13], # 30
85
+ [3, 31, 1, 14], # 31
86
+ [3, 32, 1, 15], # 32
87
+ [3, 33, 1, 1, 1, 24], # 33
88
+ [3, 34, 1, 1, 1, 25], # 34
89
+ [3, 35, 8, 38, 0, 22], # 35
90
+ [3, 36, 1, 1, 1, 5], # 36
91
+ [3, 37, 1, 8, 0, 24, 1, 7], # 37
92
+ [3, 38, 0, 29], # 38
93
+ [3, 39, 0, 30], # 39
94
+ [3, 40, 0, 27], # 40
95
+ [3, 41, 0, 5], # 41
96
+ [3, 42, 1, 21], # 42
97
+ [3, 43, 1, 20], # 43
98
+ [3, 44, 8, 39, 0, 28], # 44
99
+ [3, 45, 8, 40, 0, 28, 1, 9], # 45
100
+ [3, 46, 8, 42, 8, 41, 0, 26], # 46
101
+ [3, 47, 1, 19], # 47
102
+ [3, 48, 1, 22], # 48
103
+ [3, 49, 1, 23], # 49
104
+ [3, 50, 0, 2], # 50
105
+ [3, 51, 0, 4], # 51
106
+ [3, 52, 0, 12], # 52
107
+ [3, 53, 0, 12], # 53
108
+ [3, 54, 0, 11], # 54
109
+ [3, 55, 0, 13], # 55
110
+ [3, 56, 0, 25, 0, 18], # 56
111
+ [3, 57, 0, 23], # 57
112
+ [3, 58, 0, 26], # 58
113
+ [3, 59, 0, 26], # 59
114
+ [3, 60, 0, 28], # 60
115
+ [3, 61, 0, 26], # 61
112
116
  ].freeze
113
117
 
114
118
  CONFIG.table = [
115
- [1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0], # 0
116
- [-1, 2, -1, 2, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, 2, 2, -1, -1, -1, -1, -1, 2, 2], # 1
117
- [-1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 2
118
- [-1, 4, -1, 6, -1, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, 5, 5, -1, -1, -1, -1, -1, 6, 6], # 3
119
- [-1, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 4
120
- [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1], # 5
121
- [-1, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, 12, 12, -1, -1, -1, -1, -1, -1, -1], # 6
122
- [-1, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 7
123
- [-1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 8
124
- [-1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 9
125
- [-1, -1, -1, 16, -1, 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, 16], # 10
126
- [-1, -1, -1, 20, -1, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, 18], # 11
127
- [-1, -1, -1, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 12
128
- [-1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 13
129
- [-1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 14
130
- [-1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 15
131
- [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 26, 27, 28, 29, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 16
132
- [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1], # 17
133
- [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32], # 18
134
- [-1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 19
135
- [-1, -1, -1, -1, -1, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 20
136
- [-1, -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 21
137
- [-1, 39, -1, 39, -1, 39, -1, -1, -1, 38, -1, -1, -1, -1, -1, -1, 39, 39, 39, 38, 38, -1, 36, 37, 39, 39], # 22
138
- [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1], # 23
139
- [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1], # 24
140
- [-1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, 44, -1, -1, -1, -1, -1], # 25
141
- [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1], # 26
142
- [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, -1, -1, -1], # 27
143
- [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1], # 28
144
- [-1, -1, -1, -1, -1, -1, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 29
145
- [-1, -1, -1, 49, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 49, 49], # 30
146
- [-1, -1, -1, 50, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, 50], # 31
147
- [-1, -1, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 32
148
- [-1, -1, -1, 52, -1, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52], # 33
149
- [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, 53, 53, 53, 53, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 34
150
- [-1, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 35
151
- [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, -1], # 36
152
- [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 56, -1, -1, -1, -1, -1], # 37
153
- [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1], # 38
154
- [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, -1], # 39
119
+ [1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1], # 0
120
+ [-1, 2, -1, 2, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, 2, 2, -1, -1, -1, -1, -1, 2, 2, -1], # 1
121
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3], # 2
122
+ [-1, 4, -1, 4, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 4, 4, -1, -1, -1, -1, -1, 4, 4, -1], # 3
123
+ [-1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 4
124
+ [-1, 6, -1, 8, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7, 7, 7, -1, -1, -1, -1, -1, 8, 8, -1], # 5
125
+ [-1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 6
126
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1], # 7
127
+ [-1, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, 14, 14, -1, -1, -1, -1, -1, -1, -1, -1], # 8
128
+ [-1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 9
129
+ [-1, 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 10
130
+ [-1, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 11
131
+ [-1, -1, -1, 18, -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 18, -1], # 12
132
+ [-1, -1, -1, 22, -1, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1], # 13
133
+ [-1, -1, -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 14
134
+ [-1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 15
135
+ [-1, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 16
136
+ [-1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 17
137
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 18
138
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1], # 19
139
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, -1], # 20
140
+ [-1, -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 21
141
+ [-1, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 22
142
+ [-1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 23
143
+ [-1, 41, -1, 41, -1, 41, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, 41, 41, 41, 40, 40, -1, 38, 39, 41, 41, -1], # 24
144
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1], # 25
145
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1], # 26
146
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, 46, -1, -1, -1, -1, -1, -1], # 27
147
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1], # 28
148
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, -1, -1, -1, -1], # 29
149
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 49, -1, -1, -1], # 30
150
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50], # 31
151
+ [-1, -1, -1, -1, -1, -1, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 32
152
+ [-1, -1, -1, 52, -1, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, -1], # 33
153
+ [-1, -1, -1, 53, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, 53, -1], # 34
154
+ [-1, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 35
155
+ [-1, -1, -1, 55, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 55, -1], # 36
156
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 56, 56, 56, 56, 56, 56, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 37
157
+ [-1, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], # 38
158
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, -1, -1], # 39
159
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1], # 40
160
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1], # 41
161
+ [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1], # 42
155
162
  ].freeze
156
163
 
157
164
  CONFIG.actions = [
@@ -161,59 +168,62 @@ class Parser < LL::Driver
161
168
  [:_rule_3, 2], # 3
162
169
  [:_rule_4, 2], # 4
163
170
  [:_rule_5, 2], # 5
164
- [:_rule_6, 1], # 6
165
- [:_rule_7, 1], # 7
166
- [:_rule_8, 2], # 8
167
- [:_rule_9, 2], # 9
171
+ [:_rule_6, 2], # 6
172
+ [:_rule_7, 2], # 7
173
+ [:_rule_8, 1], # 8
174
+ [:_rule_9, 1], # 9
168
175
  [:_rule_10, 2], # 10
169
- [:_rule_11, 1], # 11
170
- [:_rule_12, 1], # 12
176
+ [:_rule_11, 2], # 11
177
+ [:_rule_12, 2], # 12
171
178
  [:_rule_13, 1], # 13
172
- [:_rule_14, 2], # 14
173
- [:_rule_15, 2], # 15
179
+ [:_rule_14, 1], # 14
180
+ [:_rule_15, 1], # 15
174
181
  [:_rule_16, 2], # 16
175
- [:_rule_17, 1], # 17
176
- [:_rule_18, 1], # 18
182
+ [:_rule_17, 2], # 17
183
+ [:_rule_18, 2], # 18
177
184
  [:_rule_19, 1], # 19
178
185
  [:_rule_20, 1], # 20
179
- [:_rule_21, 3], # 21
186
+ [:_rule_21, 1], # 21
180
187
  [:_rule_22, 1], # 22
181
- [:_rule_23, 1], # 23
182
- [:_rule_24, 2], # 24
188
+ [:_rule_23, 3], # 23
189
+ [:_rule_24, 1], # 24
183
190
  [:_rule_25, 1], # 25
184
- [:_rule_26, 1], # 26
191
+ [:_rule_26, 2], # 26
185
192
  [:_rule_27, 1], # 27
186
193
  [:_rule_28, 1], # 28
187
194
  [:_rule_29, 1], # 29
188
195
  [:_rule_30, 1], # 30
189
- [:_rule_31, 2], # 31
190
- [:_rule_32, 2], # 32
196
+ [:_rule_31, 1], # 31
197
+ [:_rule_32, 1], # 32
191
198
  [:_rule_33, 2], # 33
192
199
  [:_rule_34, 2], # 34
193
- [:_rule_35, 3], # 35
194
- [:_rule_36, 1], # 36
195
- [:_rule_37, 1], # 37
200
+ [:_rule_35, 2], # 35
201
+ [:_rule_36, 2], # 36
202
+ [:_rule_37, 3], # 37
196
203
  [:_rule_38, 1], # 38
197
204
  [:_rule_39, 1], # 39
198
205
  [:_rule_40, 1], # 40
199
206
  [:_rule_41, 1], # 41
200
- [:_rule_42, 2], # 42
201
- [:_rule_43, 3], # 43
202
- [:_rule_44, 3], # 44
203
- [:_rule_45, 1], # 45
204
- [:_rule_46, 1], # 46
207
+ [:_rule_42, 1], # 42
208
+ [:_rule_43, 1], # 43
209
+ [:_rule_44, 2], # 44
210
+ [:_rule_45, 3], # 45
211
+ [:_rule_46, 3], # 46
205
212
  [:_rule_47, 1], # 47
206
213
  [:_rule_48, 1], # 48
207
214
  [:_rule_49, 1], # 49
208
215
  [:_rule_50, 1], # 50
209
216
  [:_rule_51, 1], # 51
210
217
  [:_rule_52, 1], # 52
211
- [:_rule_53, 2], # 53
218
+ [:_rule_53, 1], # 53
212
219
  [:_rule_54, 1], # 54
213
220
  [:_rule_55, 1], # 55
214
- [:_rule_56, 1], # 56
221
+ [:_rule_56, 2], # 56
215
222
  [:_rule_57, 1], # 57
216
223
  [:_rule_58, 1], # 58
224
+ [:_rule_59, 1], # 59
225
+ [:_rule_60, 1], # 60
226
+ [:_rule_61, 1], # 61
217
227
  ].freeze
218
228
 
219
229
  ##
@@ -360,6 +370,16 @@ class Parser < LL::Driver
360
370
  generate_nth_child('following-sibling', arg, current_element)
361
371
  end
362
372
 
373
+ ##
374
+ # Generates the AST for the `nth` pseudo class.
375
+ #
376
+ # @param [AST::Node] arg
377
+ # @return [AST::Node]
378
+ #
379
+ def on_pseudo_class_nth(arg)
380
+ s(:eq, s(:call, 'position'), arg)
381
+ end
382
+
363
383
  ##
364
384
  # Generates the AST for the `:first-child` selector.
365
385
  #
@@ -621,6 +641,22 @@ class Parser < LL::Driver
621
641
 
622
642
  def _rule_2(val)
623
643
 
644
+ path = val[0]
645
+
646
+ val[1].each do |chunk|
647
+ path = s(:pipe, path, chunk)
648
+ end
649
+
650
+ path
651
+
652
+ end
653
+
654
+ def _rule_3(val)
655
+ val[1]
656
+ end
657
+
658
+ def _rule_4(val)
659
+
624
660
  # Single selector
625
661
  if val[1].empty?
626
662
  ret = val[0]
@@ -650,45 +686,45 @@ class Parser < LL::Driver
650
686
 
651
687
  end
652
688
 
653
- def _rule_3(val)
689
+ def _rule_5(val)
654
690
  val[1]
655
691
  end
656
692
 
657
- def _rule_4(val)
693
+ def _rule_6(val)
658
694
 
659
695
  val[1] ? s(:predicate, val[0], val[1]) : val[0]
660
696
 
661
697
  end
662
698
 
663
- def _rule_5(val)
699
+ def _rule_7(val)
664
700
 
665
701
  val[1] ? s(:predicate, val[0], val[1]) : val[0]
666
702
 
667
703
  end
668
704
 
669
- def _rule_6(val)
705
+ def _rule_8(val)
670
706
 
671
707
  s(:predicate, s(:axis, 'descendant', on_test(nil, '*')), val[0])
672
708
 
673
709
  end
674
710
 
675
- def _rule_7(val)
711
+ def _rule_9(val)
676
712
  s(:axis, 'descendant', val[0])
677
713
  end
678
714
 
679
- def _rule_8(val)
715
+ def _rule_10(val)
680
716
 
681
717
  s(:axis, 'child', val[1])
682
718
 
683
719
  end
684
720
 
685
- def _rule_9(val)
721
+ def _rule_11(val)
686
722
 
687
723
  s(:axis, 'following-sibling', val[1])
688
724
 
689
725
  end
690
726
 
691
- def _rule_10(val)
727
+ def _rule_12(val)
692
728
 
693
729
  [
694
730
  s(
@@ -701,27 +737,27 @@ class Parser < LL::Driver
701
737
 
702
738
  end
703
739
 
704
- def _rule_11(val)
740
+ def _rule_13(val)
705
741
  val[0]
706
742
  end
707
743
 
708
- def _rule_12(val)
744
+ def _rule_14(val)
709
745
  val[0]
710
746
  end
711
747
 
712
- def _rule_13(val)
748
+ def _rule_15(val)
713
749
  on_test(*val[0])
714
750
  end
715
751
 
716
- def _rule_14(val)
752
+ def _rule_16(val)
717
753
  val[1] ? [val[0], val[1]] : [nil, val[0]]
718
754
  end
719
755
 
720
- def _rule_15(val)
756
+ def _rule_17(val)
721
757
  val[1]
722
758
  end
723
759
 
724
- def _rule_16(val)
760
+ def _rule_18(val)
725
761
 
726
762
  ret = val[0]
727
763
 
@@ -733,35 +769,35 @@ class Parser < LL::Driver
733
769
 
734
770
  end
735
771
 
736
- def _rule_17(val)
772
+ def _rule_19(val)
737
773
  val[0]
738
774
  end
739
775
 
740
- def _rule_18(val)
776
+ def _rule_20(val)
741
777
  val[0]
742
778
  end
743
779
 
744
- def _rule_19(val)
780
+ def _rule_21(val)
745
781
  val[0]
746
782
  end
747
783
 
748
- def _rule_20(val)
784
+ def _rule_22(val)
749
785
  val[0]
750
786
  end
751
787
 
752
- def _rule_21(val)
788
+ def _rule_23(val)
753
789
  val[1]
754
790
  end
755
791
 
756
- def _rule_22(val)
792
+ def _rule_24(val)
757
793
  val[0]
758
794
  end
759
795
 
760
- def _rule_23(val)
796
+ def _rule_25(val)
761
797
  s(:axis, 'attribute', on_test(*val[0]))
762
798
  end
763
799
 
764
- def _rule_24(val)
800
+ def _rule_26(val)
765
801
 
766
802
  op_type = val[1] ? val[1][0] : nil
767
803
 
@@ -796,31 +832,31 @@ class Parser < LL::Driver
796
832
 
797
833
  end
798
834
 
799
- def _rule_25(val)
835
+ def _rule_27(val)
800
836
  :eq
801
837
  end
802
838
 
803
- def _rule_26(val)
839
+ def _rule_28(val)
804
840
  :space_in
805
841
  end
806
842
 
807
- def _rule_27(val)
843
+ def _rule_29(val)
808
844
  :starts_with
809
845
  end
810
846
 
811
- def _rule_28(val)
847
+ def _rule_30(val)
812
848
  :ends_with
813
849
  end
814
850
 
815
- def _rule_29(val)
851
+ def _rule_31(val)
816
852
  :in
817
853
  end
818
854
 
819
- def _rule_30(val)
855
+ def _rule_32(val)
820
856
  :hyphen_in
821
857
  end
822
858
 
823
- def _rule_31(val)
859
+ def _rule_33(val)
824
860
 
825
861
  axis = s(:axis, 'attribute', s(:test, nil, 'class'))
826
862
 
@@ -833,7 +869,7 @@ class Parser < LL::Driver
833
869
 
834
870
  end
835
871
 
836
- def _rule_32(val)
872
+ def _rule_34(val)
837
873
 
838
874
  s(
839
875
  :eq,
@@ -843,55 +879,55 @@ class Parser < LL::Driver
843
879
 
844
880
  end
845
881
 
846
- def _rule_33(val)
882
+ def _rule_35(val)
847
883
  on_pseudo_class(val[0], val[1])
848
884
  end
849
885
 
850
- def _rule_34(val)
886
+ def _rule_36(val)
851
887
  val[1]
852
888
  end
853
889
 
854
- def _rule_35(val)
890
+ def _rule_37(val)
855
891
  val[1]
856
892
  end
857
893
 
858
- def _rule_36(val)
894
+ def _rule_38(val)
859
895
  val[0]
860
896
  end
861
897
 
862
- def _rule_37(val)
898
+ def _rule_39(val)
863
899
  val[0]
864
900
  end
865
901
 
866
- def _rule_38(val)
902
+ def _rule_40(val)
867
903
  val[0]
868
904
  end
869
905
 
870
- def _rule_39(val)
906
+ def _rule_41(val)
871
907
  val[0]
872
908
  end
873
909
 
874
- def _rule_40(val)
910
+ def _rule_42(val)
875
911
  s(:string, val[0])
876
912
  end
877
913
 
878
- def _rule_41(val)
914
+ def _rule_43(val)
879
915
  s(:int, val[0].to_i)
880
916
  end
881
917
 
882
- def _rule_42(val)
918
+ def _rule_44(val)
883
919
 
884
920
  val[1] ? s(:nth, s(:int, 1), val[1]) : s(:nth, s(:int, 1))
885
921
 
886
922
  end
887
923
 
888
- def _rule_43(val)
924
+ def _rule_45(val)
889
925
 
890
926
  val[2] ? s(:nth, s(:int, -1), val[2]) : s(:nth, s(:int, 1))
891
927
 
892
928
  end
893
929
 
894
- def _rule_44(val)
930
+ def _rule_46(val)
895
931
 
896
932
  # 2n+1
897
933
  if val[1] and val[2]
@@ -916,24 +952,16 @@ class Parser < LL::Driver
916
952
 
917
953
  end
918
954
 
919
- def _rule_45(val)
920
- :nth
921
- end
922
-
923
- def _rule_46(val)
924
- s(:nth, s(:int, 2), s(:int, 1))
925
- end
926
-
927
955
  def _rule_47(val)
928
- s(:nth, s(:int, 2))
956
+ :nth
929
957
  end
930
958
 
931
959
  def _rule_48(val)
932
- val[0]
960
+ s(:nth, s(:int, 2), s(:int, 1))
933
961
  end
934
962
 
935
963
  def _rule_49(val)
936
- val[0]
964
+ s(:nth, s(:int, 2))
937
965
  end
938
966
 
939
967
  def _rule_50(val)
@@ -949,7 +977,7 @@ class Parser < LL::Driver
949
977
  end
950
978
 
951
979
  def _rule_53(val)
952
- val
980
+ val[0]
953
981
  end
954
982
 
955
983
  def _rule_54(val)
@@ -961,7 +989,7 @@ class Parser < LL::Driver
961
989
  end
962
990
 
963
991
  def _rule_56(val)
964
- val[0]
992
+ val
965
993
  end
966
994
 
967
995
  def _rule_57(val)
@@ -971,6 +999,18 @@ class Parser < LL::Driver
971
999
  def _rule_58(val)
972
1000
  val[0]
973
1001
  end
1002
+
1003
+ def _rule_59(val)
1004
+ val[0]
1005
+ end
1006
+
1007
+ def _rule_60(val)
1008
+ val[0]
1009
+ end
1010
+
1011
+ def _rule_61(val)
1012
+ val[0]
1013
+ end
974
1014
  end
975
1015
  end
976
1016
  end