/\"((\\\")|(\\\\)|(\\\/)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])|[^\"])*\"/ { lval.s = yylex.Text()[1:len(yylex.Text())-1] logDebugTokens("PHRASE - %s", lval.s); return PHRASE } /\+/ { logDebugTokens("PLUS"); return PLUS } /-/ { logDebugTokens("MINUS"); return MINUS } /:/ { logDebugTokens("COLON"); return COLON } /^/ { logDebugTokens("BOOST"); return BOOST } /\(/ { logDebugTokens("LPAREN"); return LPAREN } /\)/ { logDebugTokens("RPAREN"); return RPAREN } /-?([0-9]|[1-9][0-9]*)(\.[0-9][0-9]*)?/ { lval.f,_ = strconv.ParseFloat(yylex.Text(), 64); logDebugTokens("NUMBER - %f", lval.f); return NUMBER } /[ \t\n]+/ { logDebugTokens("WHITESPACE (count=%d)", len(yylex.Text())) /* eat up whitespace */ } /[^\t\n\f\r :^\+\-]+/ { lval.s = yylex.Text() logDebugTokens("STRING - %s", lval.s); return STRING } // package bleve import("log") import("strconv") func logDebugTokens(format string, v ...interface{}) { if debugLexer { log.Printf(format, v...) } }