@@ -172,6 +172,7 @@ var CQLBoolean = function () {
172
172
this . left = null ;
173
173
this . right = null ;
174
174
this . _pos = null ;
175
+ this . _range = null ;
175
176
}
176
177
177
178
CQLBoolean . prototype = {
@@ -209,6 +210,7 @@ CQLBoolean.prototype = {
209
210
s += ',' + nl + indent ( n , c ) + ' "s1": ' + this . left . toFQ ( n + 1 , c , nl ) ;
210
211
s += ',' + nl + indent ( n , c ) + ' "s2": ' + this . right . toFQ ( n + 1 , c , nl ) ;
211
212
if ( this . _pos !== null ) s += ',' + nl + indent ( n , c ) + ' "@pos": ' + this . _pos ;
213
+ if ( this . _range !== null ) s += ',' + nl + indent ( n , c ) + ' "@range": ' + JSON . stringify ( this . _range ) ;
212
214
var fill = n && c ? ' ' : '' ;
213
215
s += nl + indent ( n - 1 , c ) + fill + '}' ;
214
216
return s ;
@@ -272,6 +274,8 @@ CQLParser.prototype = {
272
274
for ( var key in fq ) {
273
275
if ( key == 'op' || key == 's1' || key == 's2' )
274
276
continue ;
277
+ if ( key . endsWith ( "@pos" ) || key . endsWith ( "@range" ) )
278
+ continue ;
275
279
var mod = new CQLModifier ( ) ;
276
280
mod . name = key ;
277
281
mod . relation = '=' ;
@@ -333,6 +337,7 @@ CQLParser.prototype = {
333
337
b . op = this . lval ;
334
338
this . _move ( ) ;
335
339
b . modifiers = this . _parseModifiers ( ) ;
340
+ b . _range = [ b . _pos , Math . max ( b . _pos + b . op . length - 1 , Math . max . apply ( null , b . modifiers . map ( x => ( "_range" in x ) ? x . _range [ 1 ] : 0 ) ) ) ] ;
336
341
b . left = left ;
337
342
b . right = this . _parseSearchClause ( field , relation , modifiers ) ;
338
343
left = b ;
@@ -362,6 +367,7 @@ CQLParser.prototype = {
362
367
var m = new CQLModifier ( ) ;
363
368
m . _pos = _mpos ;
364
369
m . _range = [ _mstart , _mend ] ;
370
+ this . _exprStart = null ;
365
371
m . name = name ;
366
372
m . relation = rel ;
367
373
m . value = this . val ;
@@ -371,6 +377,7 @@ CQLParser.prototype = {
371
377
var m = new CQLModifier ( ) ;
372
378
m . _pos = _mpos ;
373
379
m . _range = [ _mstart , _mend ] ;
380
+ this . _exprStart = null ;
374
381
m . name = name ;
375
382
m . relation = "" ;
376
383
m . value = "" ;
0 commit comments