Versions in this module Expand all Collapse all v0 v0.0.6 Jan 28, 2022 v0.0.5 Jan 28, 2022 v0.0.4 Jan 25, 2022 v0.0.3 Jan 24, 2022 Changes in this version + var FilterQLDialect *Dialect = &Dialect + var FilterSelectStatement = []*Clause + var FilterStatement = []*Clause + var IDENTITY_CHARS = "_.-/" + var IDENTITY_LAX_CHARS = "_./- " + var IDENTITY_SQL_CHARS = "@_.-" + var IdentityQuoting = []byte + var IdentityQuotingWSingleQuote = []byte + var LexDataTypeDefinition = LexDataType(TokenTypeDef) + var LexIdentifier = LexIdentifierOfType(TokenIdentity) + var LexTableIdentifier = LexIdentifierOfType(TokenTable) + var SUPPORT_DURATION = true + var SqlAlter = []*Clause + var SqlCommit = []*Clause + var SqlCreate = []*Clause + var SqlDelete = []*Clause + var SqlDescribe = []*Clause + var SqlDescribeAlt = []*Clause + var SqlDialect *Dialect = &Dialect + var SqlDrop = []*Clause + var SqlExplain = []*Clause + var SqlInsert = []*Clause + var SqlPrepare = []*Clause + var SqlReplace = []*Clause + var SqlRollback = []*Clause + var SqlSelect = []*Clause + var SqlSet = []*Clause + var SqlShow = []*Clause + var SqlUpdate = []*Clause + var SqlUpsert = []*Clause + var SqlUse = []*Clause + var TokenNameMap = map[TokenType]*TokenInfo + var TokenToOp = make(map[string]TokenType) + var Trace bool + func IdentityRunesOnly(identity string) bool + func IsBreak(r rune) bool + func IsIdentifierRune(r rune) bool + func IsValidIdentity(identity string) bool + func LoadTokenInfo() + type Clause struct + Clauses []*Clause + KeywordMatcher KeywordMatcher + Lexer StateFn + Name string + Optional bool + Repeat bool + Token TokenType + func (c *Clause) MatchesKeyword(peekWord string, l *Lexer) bool + func (c *Clause) String() string + type Dialect struct + IdentityQuoting []byte + Name string + Statements []*Clause + var ExpressionDialect *Dialect = &Dialect{ ... } + var JsonDialect *Dialect = &Dialect{ ... } + var LogicalExpressionDialect *Dialect = &Dialect{ ... } + func (m *Dialect) Init() + type KeywordMatcher func(c *Clause, peekWord string, l *Lexer) bool + type Lexer struct + func NewExpressionLexer(input string) *Lexer + func NewFilterQLLexer(input string) *Lexer + func NewJsonLexer(input string) *Lexer + func NewLexer(input string, dialect *Dialect) *Lexer + func NewSqlLexer(input string) *Lexer + func (l *Lexer) ConsumeWord(word string) + func (l *Lexer) Emit(t TokenType) + func (l *Lexer) ErrMsg(t Token, msg string) error + func (l *Lexer) IsComment() bool + func (l *Lexer) IsEnd() bool + func (l *Lexer) Next() (r rune) + func (l *Lexer) NextToken() Token + func (l *Lexer) Peek() rune + func (l *Lexer) PeekWord() string + func (l *Lexer) PeekX(x int) string + func (l *Lexer) Push(name string, state StateFn) + func (l *Lexer) RawInput() string + func (l *Lexer) Remainder() (string, bool) + func (l *Lexer) ReverseTrim() + func (l *Lexer) SkipWhiteSpaces() + func (l *Lexer) SkipWhiteSpacesNewLine() bool + type NamedStateFn struct + Name string + StateFn StateFn + type StateFn func(*Lexer) StateFn + func LexColumnNames(l *Lexer) StateFn + func LexColumns(l *Lexer) StateFn + func LexComment(l *Lexer) StateFn + func LexConditionalClause(l *Lexer) StateFn + func LexCreate(l *Lexer) StateFn + func LexDataType(forToken TokenType) StateFn + func LexDdlAlterColumn(l *Lexer) StateFn + func LexDdlTable(l *Lexer) StateFn + func LexDdlTableColumn(l *Lexer) StateFn + func LexDdlTableStorage(l *Lexer) StateFn + func LexDialectForStatement(l *Lexer) StateFn + func LexDrop(l *Lexer) StateFn + func LexDuration(l *Lexer) StateFn + func LexEmpty(l *Lexer) StateFn + func LexEndOfStatement(l *Lexer) StateFn + func LexEndOfSubStatement(l *Lexer) StateFn + func LexEngineKeyValue(l *Lexer) StateFn + func LexExpression(l *Lexer) StateFn + func LexExpressionOrIdentity(l *Lexer) StateFn + func LexExpressionParens(l *Lexer) StateFn + func LexFilterClause(l *Lexer) StateFn + func LexIdentifierOfType(forToken TokenType) StateFn + func LexIdentityOrValue(l *Lexer) StateFn + func LexInlineComment(l *Lexer) StateFn + func LexInlineCommentNoTag(l *Lexer) StateFn + func LexInto(l *Lexer) StateFn + func LexJoinEntry(l *Lexer) StateFn + func LexJson(l *Lexer) StateFn + func LexJsonArray(l *Lexer) StateFn + func LexJsonIdentity(l *Lexer) StateFn + func LexJsonObject(l *Lexer) StateFn + func LexJsonOrKeyValue(l *Lexer) StateFn + func LexJsonValue(l *Lexer) StateFn + func LexLimit(l *Lexer) StateFn + func LexListOfArgs(l *Lexer) StateFn + func LexLogical(l *Lexer) StateFn + func LexMatchClosure(tok TokenType, nextFn StateFn) StateFn + func LexMultilineComment(l *Lexer) StateFn + func LexNumber(l *Lexer) StateFn + func LexNumberOrDuration(l *Lexer) StateFn + func LexOrderByColumn(l *Lexer) StateFn + func LexParenLeft(l *Lexer) StateFn + func LexParenRight(l *Lexer) StateFn + func LexPreparedStatement(l *Lexer) StateFn + func LexRegex(l *Lexer) StateFn + func LexSelectClause(l *Lexer) StateFn + func LexSelectList(l *Lexer) StateFn + func LexShowClause(l *Lexer) StateFn + func LexStatement(l *Lexer) StateFn + func LexSubQuery(l *Lexer) StateFn + func LexTableColumns(l *Lexer) StateFn + func LexTableReferenceFirst(l *Lexer) StateFn + func LexTableReferences(l *Lexer) StateFn + func LexUpsertClause(l *Lexer) StateFn + func LexUrnaryNot(l *Lexer) StateFn + func LexValue(l *Lexer) StateFn + func LexValueColumns(l *Lexer) StateFn + type Token struct + Column int + Line int + Pos int + Quote byte + T TokenType + V string + func TokenFromOp(op string) Token + func (t Token) Err(l *Lexer) error + func (t Token) ErrMsg(l *Lexer, msg string) error + func (t Token) String() string + type TokenInfo struct + Description string + HasSpaces bool + Kw string + T TokenType + type TokenType uint16 + const TokenAdd + const TokenAfter + const TokenAlias + const TokenAll + const TokenAlter + const TokenAnd + const TokenAs + const TokenAsc + const TokenBetween + const TokenBool + const TokenBy + const TokenChange + const TokenCharacterSet + const TokenColon + const TokenComma + const TokenComment + const TokenCommentEnd + const TokenCommentHash + const TokenCommentML + const TokenCommentSingleLine + const TokenCommentSlashes + const TokenCommentStart + const TokenCommit + const TokenConstraint + const TokenContains + const TokenContinuousView + const TokenCreate + const TokenCross + const TokenDatabase + const TokenDefault + const TokenDelete + const TokenDesc + const TokenDescribe + const TokenDistinct + const TokenDivide + const TokenDrop + const TokenDuration + const TokenEOF + const TokenEOS + const TokenEngine + const TokenEofOrEos + const TokenEqual + const TokenEqualEqual + const TokenError + const TokenExists + const TokenExplain + const TokenFalse + const TokenFilter + const TokenFirst + const TokenFloat + const TokenForeign + const TokenFrom + const TokenFull + const TokenGE + const TokenGT + const TokenGlobal + const TokenGroupBy + const TokenHaving + const TokenIN + const TokenIdentity + const TokenIf + const TokenInclude + const TokenInner + const TokenInsert + const TokenInteger + const TokenIntersects + const TokenInto + const TokenIs + const TokenJoin + const TokenJson + const TokenKey + const TokenLE + const TokenLT + const TokenLeft + const TokenLeftBrace + const TokenLeftBracket + const TokenLeftParenthesis + const TokenLike + const TokenLimit + const TokenList + const TokenLogicAnd + const TokenLogicOr + const TokenMap + const TokenMinus + const TokenModulus + const TokenMultiply + const TokenNE + const TokenNegate + const TokenNewLine + const TokenNil + const TokenNull + const TokenOffset + const TokenOn + const TokenOr + const TokenOrderBy + const TokenOuter + const TokenPlus + const TokenPlusEquals + const TokenPlusPlus + const TokenPrepare + const TokenPrimary + const TokenRaw + const TokenReferences + const TokenRegex + const TokenReplace + const TokenRight + const TokenRightBrace + const TokenRightBracket + const TokenRightParenthesis + const TokenRollback + const TokenSchema + const TokenSelect + const TokenSession + const TokenSet + const TokenShow + const TokenSource + const TokenStar + const TokenString + const TokenSubscribe + const TokenTable + const TokenTables + const TokenTemp + const TokenTime + const TokenTrue + const TokenTypeBigInt + const TokenTypeBool + const TokenTypeChar + const TokenTypeDef + const TokenTypeFloat + const TokenTypeInteger + const TokenTypeJson + const TokenTypeString + const TokenTypeText + const TokenTypeTime + const TokenTypeVarChar + const TokenUdfExpr + const TokenUnique + const TokenUpdate + const TokenUpsert + const TokenUse + const TokenValue + const TokenValueEscaped + const TokenValueType + const TokenValues + const TokenView + const TokenWhere + const TokenWith + func (typ TokenType) MatchString() string + func (typ TokenType) MultiWord() bool + func (typ TokenType) String() string