@@ -137,29 +137,35 @@ export default class LessParser extends Parser {
137
137
}
138
138
139
139
/* eslint-disable max-statements, complexity */
140
- word ( ) {
140
+ other ( ) {
141
141
let end = false ;
142
142
let colon = false ;
143
143
let bracket = null ;
144
- let brackets = 0 ;
144
+ const brackets = [ ] ;
145
145
const start = this . pos ;
146
+
147
+ // we need pass "()" as spaces
148
+ // However we can override method Parser.loop, but it seems less maintainable
149
+ if ( this . tokens [ start ] [ 0 ] === 'brackets' ) {
150
+ this . spaces += this . tokens [ start ] [ 1 ] ;
151
+ return ;
152
+ }
146
153
const isMixin = isMixinToken ( this . tokens [ start ] ) ;
147
154
const isExtendRule = Boolean ( findExtendRule ( this . tokens , start ) ) ;
148
155
const params = [ ] ;
149
156
150
157
this . pos += 1 ;
151
-
152
158
while ( this . pos < this . tokens . length ) {
153
159
const token = this . tokens [ this . pos ] ;
154
160
const type = token [ 0 ] ;
155
161
156
- if ( type === '(' ) {
162
+ if ( type === '(' || type === '[' ) {
157
163
if ( ! bracket ) {
158
164
bracket = token ;
159
165
}
160
166
161
- brackets += 1 ;
162
- } else if ( brackets === 0 ) {
167
+ brackets . push ( type === '(' ? ')' : ']' ) ;
168
+ } else if ( brackets . length === 0 ) {
163
169
if ( type === ';' ) {
164
170
const foundEndOfRule = this . processEndOfRule ( {
165
171
start,
@@ -184,14 +190,14 @@ export default class LessParser extends Parser {
184
190
} else if ( type === ':' ) {
185
191
colon = true ;
186
192
}
187
- } else if ( type === ')' ) {
188
- brackets -= 1 ;
189
- if ( brackets === 0 ) {
193
+ } else if ( type === brackets [ brackets . length - 1 ] ) {
194
+ brackets . pop ( ) ;
195
+ if ( brackets . length === 0 ) {
190
196
bracket = null ;
191
197
}
192
198
}
193
199
194
- if ( brackets || type === 'brackets' || params [ 0 ] ) {
200
+ if ( brackets . length > 0 || type === 'brackets' || params [ 0 ] ) {
195
201
params . push ( token ) ;
196
202
}
197
203
@@ -203,7 +209,7 @@ export default class LessParser extends Parser {
203
209
end = true ;
204
210
}
205
211
206
- if ( brackets > 0 ) {
212
+ if ( brackets . length > 0 ) {
207
213
this . unclosedBracket ( bracket ) ;
208
214
}
209
215
0 commit comments