lexer

package
v0.0.0-...-84469d4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 17, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var SpecialChars = []byte{'.', '\\', '\n', ')', '('}

Functions

This section is empty.

Types

type Lexer

type Lexer struct {
	Source string

	Tokens []*Token
	// contains filtered or unexported fields
}

func NewLexer

func NewLexer(source string) Lexer

func (*Lexer) Advance

func (lexer *Lexer) Advance()

func (*Lexer) LexIdent

func (lexer *Lexer) LexIdent() (*Token, bool)

func (*Lexer) PeekCh

func (lexer *Lexer) PeekCh() rune

func (*Lexer) PeekToken

func (lexer *Lexer) PeekToken() *Token

func (*Lexer) Rewind

func (lexer *Lexer) Rewind()

func (*Lexer) SkipSpace

func (lexer *Lexer) SkipSpace()

type Token

type Token struct {
	Kind   TokenKind
	Lexeme *string
}

func (*Token) Dump

func (token *Token) Dump() string

type TokenKind

type TokenKind string
const (
	EndOfFile   TokenKind = "EndOfFile"
	StartOfFile TokenKind = "StartOfFile"

	Slash   TokenKind = "Slash"
	Dot     TokenKind = "Dot"
	Ident   TokenKind = "Ident"
	NewLine TokenKind = "NewLine"
	LBrace  TokenKind = "LBrace"
	RBrace  TokenKind = "RBrace"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL