Documentation ¶
Index ¶
Constants ¶
View Source
const EOFRUNE = -1
Variables ¶
This section is empty.
Functions ¶
This section is empty.
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.
func (*PeekableLexer) PeekToken ¶
func (l *PeekableLexer) PeekToken(count int) Lexeme
PeekToken performs lookahead of the given count on the token stream.
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 // * )
Click to show internal directories.
Click to hide internal directories.