lexer

package
v0.0.0-...-cca31bf Latest Latest
Warning

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

Go to latest
Published: Sep 19, 2024 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ReservedWords = map[string]TokenKind{
	"let":      LetToken,
	"const":    ConstToken,
	"use":      UseToken,
	"export":   ExportToken,
	"ref":      RefToken,
	"from":     FromToken,
	"if":       IfToken,
	"else":     ElseToken,
	"for":      ForToken,
	"in":       InToken,
	"while":    WhileToken,
	"break":    BreakToken,
	"continue": ContinueToken,
	"return":   ReturnToken,
	"is":       IsToken,
	"not":      NotToken,
	"and":      AndToken,
	"or":       OrToken,
}

Functions

This section is empty.

Types

type Token

type Token struct {
	Value  string
	Kind   TokenKind
	Line   int
	Column int
}

func Tokenize

func Tokenize(input string) []Token

type TokenKind

type TokenKind int
const (
	EOFToken TokenKind = iota
	NumberToken
	StringToken
	IdentifierToken
	NewlineToken           // \n
	OpenParenthesisToken   // (
	CloseParenthesisToken  // )
	OpenCurlyBraceToken    // {
	OpenBracketToken       // [
	CloseCurlyBraceToken   // }
	CloseBracketToken      // ]
	ColonToken             // :
	CommaToken             // ,
	DotToken               // .
	AssignmentToken        // =
	IsToken                // is
	IsAltToken             // ==
	NotToken               // not
	NotAltToken            // !
	NotEqualsToken         // is not
	NotEqualsAltToken      // !=
	LessThanToken          // <
	LessThanEqualsToken    // <=
	GreaterThanToken       // >
	GreaterThanEqualsToken // >=
	OrToken                // or
	OrAltToken             // ||
	AndToken               // and
	AndAltToken            // &&
	PlusEqualsToken        // +=
	MinusEqualsToken       // -=
	MultiplyEqualsToken    // *=
	DivideEqualsToken      // /=
	ModuloEqualsToken      // %=
	PlusToken              // +
	MinusToken             // -
	MultiplyToken          // *
	DivideToken            // /
	ModuloToken            // %
	QuestionMarkToken      // ?
	ColonColonToken        // ::
	ReferenceToken         // &
	LetToken               // let
	ConstToken             // const
	UseToken               // use
	ExportToken            // export
	RefToken               // ref
	FromToken              // from
	IfToken                // if
	ElseToken              // else
	ForToken               // for
	InToken                // in
	WhileToken             // while
	BreakToken             // break
	ContinueToken          // continue
	ReturnToken            // return
)

Jump to

Keyboard shortcuts

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