lib/parser.js
function (token, match, lastState) {
    var self = this;

    match = match.split('.');

    if (_reserved.indexOf(match[0]) !== -1) {
      utils.throwError('Reserved keyword "' + match[0] + '" attempted to be used as a variable', self.line, self.filename);
    }

    self.filterApplyIdx.push(self.out.length);
    if (lastState === _t.CURLYOPEN) {
      if (match.length > 1) {
        utils.throwError('Unexpected dot', self.line, self.filename);
      }
      self.out.push(match[0]);
      return;
    }

    self.out.push(self.checkMatch(match));
  }
function (token, match, lastState) {
    var self = this;

    match = match.split('.');

    if (_reserved.indexOf(match[0]) !== -1) {
      utils.throwError('Reserved keyword "' + match[0] + '" attempted to be used as a variable', self.line, self.filename);
    }

    self.filterApplyIdx.push(self.out.length);
    if (lastState === _t.CURLYOPEN) {
      if (match.length > 1) {
        utils.throwError('Unexpected dot', self.line, self.filename);
      }
      self.out.push(match[0]);
      return;
    }

    self.out.push(self.checkMatch(match));
  }
function ( token , match , lastState ) { var self = this ; match = match . split ( '.' ) ; if ( _reserved . indexOf ( match [ 0 ] ) !== - 1 ) { utils . throwError ( 'Reserved keyword "' + match [ 0 ] + '" attempted to be used as a variable' , self . line , self . filename ) ; } self . filterApplyIdx . push ( self . out . length ) ; if ( lastState === _t . CURLYOPEN ) { if ( match . length > 1 ) { utils . throwError ( 'Unexpected dot' , self . line , self . filename ) ; } self . out . push ( match [ 0 ] ) ; return ; } self . out . push ( self . checkMatch ( match ) ) ; }
Parse variable token
@param  {{match: string, type: number, line: number}} token      Lexer token object.
@param  {string} match       Shortcut for token.match
@param  {number} lastState   Lexer token type state.
@return {undefined}
@private
Parse variable token