Documentation ¶
Index ¶
Constants ¶
View Source
const EOFRUNE = -1
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Lexeme ¶
type Lexeme struct { Kind TokenType // The type of this lexeme. Position input.BytePosition // The starting position of this token in the input string. Value string // The textual value of this token. Error string // The error associated with the lexeme, if any. }
Lexeme represents a token returned from scanning the contents of a file.
type Lexer ¶
Lexer holds the state of the scanner.
type PeekableLexer ¶
type PeekableLexer struct {
// contains filtered or unexported fields
}
PeekableLexer wraps a lexer and provides the ability to peek forward without losing state.
func NewPeekableLexer ¶
func NewPeekableLexer(lex *Lexer) *PeekableLexer
NewPeekableLexer returns a new PeekableLexer for the given lexer.
func (*PeekableLexer) Close ¶ added in v1.1.0
func (l *PeekableLexer) Close()
Close stops the lexer from running.
func (*PeekableLexer) NextToken ¶
func (l *PeekableLexer) NextToken() Lexeme
NextToken returns the next token found in the lexer.
type TokenType ¶
type TokenType int
TokenType identifies the type of lexer lexemes.
const ( TokenTypeError TokenType = iota // error occurred; value is text of error // Synthetic semicolon TokenTypeSyntheticSemicolon TokenTypeEOF TokenTypeWhitespace TokenTypeSinglelineComment TokenTypeMultilineComment TokenTypeNewline TokenTypeKeyword // interface TokenTypeIdentifier // helloworld TokenTypeNumber // 123 TokenTypeLeftBrace // { TokenTypeRightBrace // } TokenTypeLeftParen // ( TokenTypeRightParen // ) TokenTypePipe // | TokenTypePlus // + TokenTypeMinus // - TokenTypeAnd // & TokenTypeDiv // / TokenTypeEquals // = TokenTypeColon // : TokenTypeSemicolon // ; TokenTypeRightArrow // -> TokenTypeHash // # TokenTypeEllipsis // ... TokenTypeStar // * // Additional tokens for CEL: https://github.com/google/cel-spec/blob/master/doc/langdef.md#syntax TokenTypeQuestionMark // ? TokenTypeConditionalOr // || TokenTypeConditionalAnd // && TokenTypeExclamationPoint // ! TokenTypeLeftBracket // [ TokenTypeRightBracket // ] TokenTypePeriod // . TokenTypeComma // , TokenTypePercent // % TokenTypeLessThan // < TokenTypeGreaterThan // > TokenTypeLessThanOrEqual // <= TokenTypeGreaterThanOrEqual // >= TokenTypeEqualEqual // == TokenTypeNotEqual // != TokenTypeString // "...", '...', """...""", ”'...”' )
Click to show internal directories.
Click to hide internal directories.