lunr.QueryLexer.lexText = function()

in static/api/python/3.1.x/lunr.js [3136:3190]


    lunr.QueryLexer.lexText = function (lexer) {
      while (true) {
        var char = lexer.next()
    
        if (char == lunr.QueryLexer.EOS) {
          return lunr.QueryLexer.lexEOS
        }
    
        // Escape character is '\'
        if (char.charCodeAt(0) == 92) {
          lexer.escapeCharacter()
          continue
        }
    
        if (char == ":") {
          return lunr.QueryLexer.lexField
        }
    
        if (char == "~") {
          lexer.backup()
          if (lexer.width() > 0) {
            lexer.emit(lunr.QueryLexer.TERM)
          }
          return lunr.QueryLexer.lexEditDistance
        }
    
        if (char == "^") {
          lexer.backup()
          if (lexer.width() > 0) {
            lexer.emit(lunr.QueryLexer.TERM)
          }
          return lunr.QueryLexer.lexBoost
        }
    
        // "+" indicates term presence is required
        // checking for length to ensure that only
        // leading "+" are considered
        if (char == "+" && lexer.width() === 1) {
          lexer.emit(lunr.QueryLexer.PRESENCE)
          return lunr.QueryLexer.lexText
        }
    
        // "-" indicates term presence is prohibited
        // checking for length to ensure that only
        // leading "-" are considered
        if (char == "-" && lexer.width() === 1) {
          lexer.emit(lunr.QueryLexer.PRESENCE)
          return lunr.QueryLexer.lexText
        }
    
        if (char.match(lunr.QueryLexer.termSeparator)) {
          return lunr.QueryLexer.lexTerm
        }
      }
    }