Documentation
¶
Index ¶
- Constants
- func Add(s rune) (ok bool, isComplete bool, retry bool, err error)
- type Any
- type AnyToken
- type EOFToken
- type Expression
- type Flags
- type IdentifierToken
- type Indexs
- type LeftBracketToken
- type LeftSquareBracketToken
- type Node
- type NumberToken
- type Operator
- type OperatorList
- type OperatorToken
- type Parser
- type RightBracketToken
- type RightSquareBracketToken
- type Runes
- type SpaceToken
- type StringToken
- type Token
- func (token *Token) AddBracket(s rune, bracket rune) (ok bool, isComplete bool, retry bool, err error)
- func (token *Token) GetStat() *TokenStat
- func (token *Token) Judge() (ok bool, isComplete bool, retry bool, err error)
- func (token *Token) SetStat(stat *TokenStat)
- func (token *Token) Validate(tokens []AnyToken) (retryToken AnyToken, err error)
- type TokenNode
- type TokenStat
- type Type
- type ValidateNextFn
Constants ¶
View Source
const ( Quote = '"' LeftRoundBracket = '(' RightRoundBracket = ')' LeftSquareBracket = '[' RightSquareBracket = ']' Minus = '-' Plus = '+' Underline = '_' Translate = '\\' Space = ' ' Bitor = "bitor" Dollar = '$' VarSymbol = '`' )
Quote rune
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AnyToken ¶
type AnyToken interface {
Add(s rune) (bool, bool, bool, error)
Validate(prevTokens []AnyToken) (AnyToken, error)
SetStat(stat *TokenStat)
GetStat() *TokenStat
}
AnyToken make sure is token type
type Expression ¶
Expression struct
type IdentifierToken ¶
type IdentifierToken struct {
Token
}
IdentifierToken identifiers
type LeftBracketToken ¶
type LeftBracketToken struct {
Token
}
LeftBracketToken struct
type LeftSquareBracketToken ¶
type LeftSquareBracketToken struct {
Token
}
LeftSquareBracketToken struct
type Node ¶
type Node struct {
Left *Node // The left part of the tree
Right *Node // The right part of the tree
Root *Node // The root node, if is a chain object root or a function name node
Token AnyToken // Token
Type string // The node type
Operator string // The operator of left and right node
Arguments []*Node // If is a parameter of a function
Function *Node // If is a function parameter node, the Function point to the Function node
}
Node struct
type NumberToken ¶
type NumberToken struct {
Token
Base int
Dicimals Runes
Power *NumberToken
}
NumberToken numbers
func (*NumberToken) ToNumber ¶
func (number *NumberToken) ToNumber() float64
ToNumber for number token
type OperatorList ¶
OperatorList data
type OperatorToken ¶
type OperatorToken struct {
CompareIndex int
Name string
Keyword string
Maybes []string
Exact *Operator
Token
}
OperatorToken spaces
type Parser ¶
type Parser struct {
Current AnyToken
Tokens []AnyToken
// round bracket level
RBLevel int
// nested round bracket level
RBSubLevel int
// square bracket level
SBLevel int
// nested square bracket level
SBSubLevel int
BLList map[int]int
SLList map[int]int
CurBrSqLevel [2]int
CurSqBrLevel [2]int
LeftBrackets []*LeftBracketToken
Asserts map[int]AnyToken
TokenIndex int
Context Runes
IgnoreIndex int
TokenStat *TokenStat
NextMustBe ValidateNextFn
NextValids int
}
Parser struct
type RightBracketToken ¶
type RightBracketToken struct {
Token
}
RightBracketToken struct
type RightSquareBracketToken ¶
type RightSquareBracketToken struct {
Token
}
RightSquareBracketToken struct
type Token ¶
Token struct
func (*Token) AddBracket ¶
func (token *Token) AddBracket(s rune, bracket rune) (ok bool, isComplete bool, retry bool, err error)
AddBracket for token
Click to show internal directories.
Click to hide internal directories.