lib/lexer.js
function() {
    var captures
      , tok;
    if (captures = /^(not|and|or|is a|is defined|isnt|is not|is)(?!-)\b([ \t]*)/.exec(this.str)) {
      var op = captures[1];
      this.skip(captures);
      if (this.isPartOfSelector()) {
        tok = new Token('ident', new nodes.Ident(captures[0]));
      } else {
        op = alias[op] || op;
        tok = new Token(op, op);
      }
      tok.space = captures[2];
      return tok;
    }
  }
function() {
    var captures
      , tok;
    if (captures = /^(not|and|or|is a|is defined|isnt|is not|is)(?!-)\b([ \t]*)/.exec(this.str)) {
      var op = captures[1];
      this.skip(captures);
      if (this.isPartOfSelector()) {
        tok = new Token('ident', new nodes.Ident(captures[0]));
      } else {
        op = alias[op] || op;
        tok = new Token(op, op);
      }
      tok.space = captures[2];
      return tok;
    }
  }
function ( ) { var captures , tok ; if ( captures = / ^(not|and|or|is a|is defined|isnt|is not|is)(?!-)\b([ \t]*) / . exec ( this . str ) ) { var op = captures [ 1 ] ; this . skip ( captures ) ; if ( this . isPartOfSelector ( ) ) { tok = new Token ( 'ident' , new nodes . Ident ( captures [ 0 ] ) ) ; } else { op = alias [ op ] || op ; tok = new Token ( op , op ) ; } tok . space = captures [ 2 ] ; return tok ; } }
'not'
| 'and'
| 'or'
| 'is'
| 'is not'
| 'isnt'
| 'is a'
| 'is defined'
not | and | or | is | is not | isnt | is a | is defined