C# Класс Tup.Cobar4Net.Parser.Recognizer.Mysql.Lexer.MySqlLexer

support MySql 5.5 token
Показать файл Открыть проект Примеры использования класса

Защищенные свойства (Protected)

Свойство Тип Описание
ch char
curIndex int
eofIndex int
inCStyleComment bool
inCStyleCommentIgnore bool
offsetCache int
sbuf char[]
sbufRef ThreadLocal
sizeCache int
sql char[]

Открытые методы

Метод Описание
AddCacheToke ( MySqlToken token ) : void
AppendStringContent ( StringBuilder sb ) : void

if GetStringValue returns "'abc\\'d'", then "abc\\'d" is appended

GetDecimalValue ( ) : BigDecimal
GetIntegerValue ( ) : Number

token must be MySqlToken.LiteralNumPureDigit

GetStringValue ( ) : string

make sense for those types of token:
MySqlToken.UsrVar : e.g. "@var1", "@'mary''s'";
MySqlToken.SysVar : e.g. "var2";
MySqlToken.LiteralChars , MySqlToken.LiteralNchars : e.g. "'ab\\'c'";
MySqlToken.LiteralBit : e.g. "0101"
MySqlToken.Identifier

GetStringValueUppercase ( ) : string

for MySqlToken.Identifier , MySqlToken.SysVar

MySqlLexer ( char sql ) : System
MySqlLexer ( string sql ) : System
NextToken ( ) : MySqlToken
SetCStyleCommentVersion ( int version ) : int
ToString ( ) : string
Token ( ) : MySqlToken

Защищенные методы

Метод Описание
Eof ( ) : bool
Err ( string msg ) : SqlSyntaxErrorException

always throw SqlSyntaxErrorException

HasChars ( int howMany ) : bool
PutChar ( char ch, int index ) : void

Append a character to sbuf.

ScanBitField ( bool quoteMode ) : void
ScanChar ( ) : char
ScanChar ( int skip ) : char
ScanHexaDecimal ( bool quoteMode ) : void
ScanIdentifier ( ) : void

id is NOT included in `.

ScanIdentifierWithAccent ( ) : void

id is included in `.

id is included in `. first ` is included

ScanNumber ( ) : void

if first char is ., token may be MySqlToken.PuncDot if invalid char is presented after .

ScanPlaceHolder ( ) : void

not Sql syntax

ScanString ( ) : void
ScanSystemVariable ( ) : void

first @@ is included

ScanUserVariable ( ) : void

first @ is included

SkipSeparator ( ) : void

skip whitespace and comment

UpdateStringValue ( char src, int srcOffset, int len ) : void

update stringValue and stringValueUppercase . It is possible that sbuf be changed

Приватные методы

Метод Описание
FromSQL2Chars ( string sql ) : char[]
NextTokenInternal ( ) : MySqlToken
ScanIdentifierFromNumber ( int initOffset, int initSize ) : void

NOTE: id dosn't include '.' for sake of performance issue (based on shaojin.wensj's design). However, it is not convenient for MySql compatibility. e.g. ".123f" will be regarded as ".123" and "f" in MySql, but in this MySqlLexer , it will be "." and "123f" because ".123f" may be part of "db1.123f" and "123f" is the table name.

Описание методов

AddCacheToke() публичный Метод

public AddCacheToke ( MySqlToken token ) : void
token MySqlToken must be a keyword
Результат void

AppendStringContent() публичный Метод

if GetStringValue returns "'abc\\'d'", then "abc\\'d" is appended
public AppendStringContent ( StringBuilder sb ) : void
sb StringBuilder
Результат void

Eof() защищенный Метод

protected Eof ( ) : bool
Результат bool

Err() защищенный Метод

always throw SqlSyntaxErrorException
protected Err ( string msg ) : SqlSyntaxErrorException
msg string
Результат System.SqlSyntaxErrorException

GetDecimalValue() публичный Метод

public GetDecimalValue ( ) : BigDecimal
Результат BigDecimal

GetIntegerValue() публичный Метод

token must be MySqlToken.LiteralNumPureDigit
public GetIntegerValue ( ) : Number
Результат System.Number

GetStringValue() публичный Метод

make sense for those types of token:
MySqlToken.UsrVar : e.g. "@var1", "@'mary''s'";
MySqlToken.SysVar : e.g. "var2";
MySqlToken.LiteralChars , MySqlToken.LiteralNchars : e.g. "'ab\\'c'";
MySqlToken.LiteralBit : e.g. "0101"
MySqlToken.Identifier
public GetStringValue ( ) : string
Результат string

GetStringValueUppercase() публичный Метод

for MySqlToken.Identifier , MySqlToken.SysVar
public GetStringValueUppercase ( ) : string
Результат string

HasChars() защищенный Метод

protected HasChars ( int howMany ) : bool
howMany int
Результат bool

MySqlLexer() публичный Метод

public MySqlLexer ( char sql ) : System
sql char
Результат System

MySqlLexer() публичный Метод

public MySqlLexer ( string sql ) : System
sql string
Результат System

NextToken() публичный Метод

public NextToken ( ) : MySqlToken
Результат MySqlToken

PutChar() защищенный Метод

Append a character to sbuf.
protected PutChar ( char ch, int index ) : void
ch char
index int
Результат void

ScanBitField() защищенный Метод

protected ScanBitField ( bool quoteMode ) : void
quoteMode bool /// if false: first 0b has been skipped; if /// true: first b' has been skipped ///
Результат void

ScanChar() защищенный Метод

protected ScanChar ( ) : char
Результат char

ScanChar() защищенный Метод

protected ScanChar ( int skip ) : char
skip int /// if 1, then equals to /// ///
Результат char

ScanHexaDecimal() защищенный Метод

protected ScanHexaDecimal ( bool quoteMode ) : void
quoteMode bool /// if false: first 0x has been skipped; if /// true: first x' has been skipped ///
Результат void

ScanIdentifier() защищенный Метод

id is NOT included in `.
protected ScanIdentifier ( ) : void
Результат void

ScanIdentifierWithAccent() защищенный Метод

id is included in `.
id is included in `. first ` is included
protected ScanIdentifierWithAccent ( ) : void
Результат void

ScanNumber() защищенный Метод

if first char is ., token may be MySqlToken.PuncDot if invalid char is presented after .
protected ScanNumber ( ) : void
Результат void

ScanPlaceHolder() защищенный Метод

not Sql syntax
protected ScanPlaceHolder ( ) : void
Результат void

ScanString() защищенный Метод

protected ScanString ( ) : void
Результат void

ScanSystemVariable() защищенный Метод

first @@ is included
protected ScanSystemVariable ( ) : void
Результат void

ScanUserVariable() защищенный Метод

first @ is included
protected ScanUserVariable ( ) : void
Результат void

SetCStyleCommentVersion() публичный статический Метод

public static SetCStyleCommentVersion ( int version ) : int
version int
Результат int

SkipSeparator() защищенный Метод

skip whitespace and comment
protected SkipSeparator ( ) : void
Результат void

ToString() публичный Метод

public ToString ( ) : string
Результат string

Token() публичный Метод

public Token ( ) : MySqlToken
Результат MySqlToken

UpdateStringValue() защищенный Метод

update stringValue and stringValueUppercase . It is possible that sbuf be changed
protected UpdateStringValue ( char src, int srcOffset, int len ) : void
src char
srcOffset int
len int
Результат void

Описание свойств

ch защищенное свойство

always be sql [ curIndex ]
protected char ch
Результат char

curIndex защищенное свойство

current index of sql
protected int curIndex
Результат int

eofIndex защищенное свойство

always be sql .length - 1
protected int eofIndex
Результат int

inCStyleComment защищенное свойство

protected bool inCStyleComment
Результат bool

inCStyleCommentIgnore защищенное свойство

protected bool inCStyleCommentIgnore
Результат bool

offsetCache защищенное свойство

protected int offsetCache
Результат int

sbuf защищенное свойство

protected char[] sbuf
Результат char[]

sbufRef защищенное статическое свойство

A character buffer for literals.
protected static ThreadLocal sbufRef
Результат ThreadLocal

sizeCache защищенное свойство

protected int sizeCache
Результат int

sql защищенное свойство

protected char[] sql
Результат char[]