token

package
v0.1.8 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2025 License: GPL-3.0 Imports: 0 Imported by: 0

Documentation

Overview

token/token.go

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Token

type Token struct {
	Type     TokenType
	Literal  string
	Filename string
	Line     int
	Column   int
}

func NewToken added in v0.1.6

func NewToken(tokenType TokenType, literal string, filename string, line int, column int) Token

func SimpleToken added in v0.1.6

func SimpleToken(tokenType TokenType, ch byte) Token

For compatibility with existing code that creates tokens simply

type TokenType

type TokenType string
const (
	ILLEGAL TokenType = "ILLEGAL"
	EOF     TokenType = "EOF"
	NEWLINE TokenType = "NEWLINE"
	INDENT  TokenType = "INDENT"
	DEDENT  TokenType = "DEDENT"

	// Identifiers and Literals
	IDENT     TokenType = "IDENT"
	INT       TokenType = "INT"
	FLOAT     TokenType = "FLOAT"
	STRING    TokenType = "STRING"
	DOCSTRING TokenType = "DOCSTRING"

	// Operators
	ASSIGN          TokenType = "="
	PLUS            TokenType = "+"
	MINUS           TokenType = "-"
	ASTERISK        TokenType = "*"
	SLASH           TokenType = "/"
	INTDIV          TokenType = "//"
	MOD             TokenType = "%"
	EXPONENT        TokenType = "**"
	INCREMENT       TokenType = "+="
	DECREMENT       TokenType = "-="
	MULTASSGN       TokenType = "*="
	DIVASSGN        TokenType = "/="
	PLUS_INCREMENT  TokenType = "++"
	MINUS_DECREMENT TokenType = "--"
	EQ              TokenType = "=="
	NOT_EQ          TokenType = "!="
	LT              TokenType = "<"
	GT              TokenType = ">"
	LE              TokenType = "<="
	GE              TokenType = ">="
	BANG            TokenType = "!"
	AMPERSAND       TokenType = "&"
	HASH            TokenType = "#"
	AT              TokenType = "@"

	// Delimiters
	COMMA     TokenType = ","
	SEMICOLON TokenType = ";"
	COLON     TokenType = ":"
	PIPE      TokenType = "|"
	DOT       TokenType = "."
	LSHIFT    TokenType = "<<"
	RSHIFT    TokenType = ">>"
	XOR       TokenType = "^"
	TILDE     TokenType = "~"

	LPAREN     TokenType = "("
	RPAREN     TokenType = ")"
	LBRACE     TokenType = "{"
	RBRACE     TokenType = "}"
	LBRACK     TokenType = "["
	RBRACK     TokenType = "]"
	UNDERSCORE TokenType = "_"
	ARROW      TokenType = "->"
	UNPACK     TokenType = "<-"

	// Keywords
	VAR         TokenType = "VAR"
	INIT        TokenType = "INIT"
	SELF        TokenType = "SELF"
	SPELL       TokenType = "SPELL"
	GRIMOIRE    TokenType = "GRIM"
	TRUE        TokenType = "TRUE"
	FALSE       TokenType = "FALSE"
	IF          TokenType = "IF"
	OTHERWISE   TokenType = "OTHERWISE"
	ELSE        TokenType = "ELSE"
	FOR         TokenType = "FOR"
	IN          TokenType = "IN"
	WHILE       TokenType = "WHILE"
	STOP        TokenType = "STOP"
	SKIP        TokenType = "SKIP"
	IGNORE      TokenType = "IGNORE"
	RETURN      TokenType = "RETURN"
	IMPORT      TokenType = "IMPORT"
	MATCH       TokenType = "MATCH"
	CASE        TokenType = "CASE"
	ATTEMPT     TokenType = "ATTEMPT"
	RESOLVE     TokenType = "RESOLVE"
	ENSNARE     TokenType = "ENSNARE"
	RAISE       TokenType = "RAISE"
	AS          TokenType = "AS"
	ARCANE      TokenType = "ARCANE"
	ARCANESPELL TokenType = "ARCANESPELL"
	SUPER       TokenType = "SUPER"
	FSTRING     TokenType = "FSTRING"
	INTERP      TokenType = "INTERP"
	CHECK       TokenType = "CHECK"
	NONE        TokenType = "NONE"
	AND         TokenType = "AND"
	OR          TokenType = "OR"
	NOT         TokenType = "NOT"
	NOT_IN      TokenType = "NOT_IN"
	MAIN        TokenType = "MAIN"
	GLOBAL      TokenType = "GLOBAL"
	AUTOCLOSE   TokenType = "AUTOCLOSE"
	DIVERGE     TokenType = "DIVERGE"
	CONVERGE    TokenType = "CONVERGE"
)

func LookupIdent

func LookupIdent(ident string) TokenType

func LookupIndent

func LookupIndent(indent string) TokenType

LookupIndent determines the TokenType based on the indentation string.

Jump to

Keyboard shortcuts

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