token

package
v0.0.0-...-f49f154 Latest Latest
Warning

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

Go to latest
Published: Feb 20, 2024 License: MIT Imports: 0 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UNKNOWN = iota + 1
	// constants
	FLOAT
	STRING
	TEMPLATE_STRING
	IDENT
	BOOL

	// symbols
	ADD
	SUB
	DIV
	MUL
	MOD
	HASHTAG // #

	// structure
	LEFT_CURLY
	RIGHT_CURLY
	COLON
	DOT
	DOUBLE_COLON
	LEFT_BRACE
	RIGHT_BRACE
	LEFT_BRACKET
	RIGHT_BRACKET

	// keywords
	LET
	FUNC
	IF
	EQUAL
	OR
	AND
	NEG
	FOR
	LT
	GT
	MATCH
	LOAD
	MERGE
	RETURN
	MODULE
	USE
	LAMBDA

	EOF
)

Variables

View Source
var CONSTANTS = []int{
	FLOAT,
	STRING,
	IDENT,
	BOOL,
	HASHTAG,
	LEFT_CURLY,
}
View Source
var EXPECTED_KEYWORDS = []int{
	ADD,
	SUB,
	DIV,
	MUL,
	MOD,
	LET,
	IF,
	EQUAL,
	OR,
	AND,
	NEG,
	MERGE,
	FUNC,
	IDENT,
	FOR,
	LT,
	GT,
	MATCH,
	LOAD,
	RETURN,
	MODULE,
	USE,
	LAMBDA,
}

operators

View Source
var KEYWORD_MAP = map[string]int{
	"return": RETURN,
	"let":    LET,
	"if":     IF,
	"or":     OR,
	"and":    AND,
	"not":    NEG,
	"fun":    FUNC,
	"for":    FOR,
	"ident":  IDENT,
	"match":  MATCH,
	"load":   LOAD,
	"use":    USE,
	"lambda": LAMBDA,
	"module": MODULE,
}
View Source
var TOKEN_NAME_MAP = map[int]string{
	UNKNOWN:         "UNKNOWN",
	FLOAT:           "float",
	STRING:          "string",
	TEMPLATE_STRING: "TEMPLATE_STRING",
	IDENT:           "ident",
	BOOL:            "bool",
	ADD:             "+",
	SUB:             "-",
	DIV:             "/",
	MUL:             "*",
	MOD:             "%",
	LEFT_CURLY:      "{",
	RIGHT_CURLY:     "}",
	COLON:           ":",
	DOUBLE_COLON:    "::",
	DOT:             ".",
	LEFT_BRACE:      "(",
	RIGHT_BRACE:     ")",
	LEFT_BRACKET:    "[",
	RIGHT_BRACKET:   "]",
	LET:             "let",
	FUNC:            "fun",
	IF:              "if",
	EQUAL:           "eq",
	OR:              "or",
	AND:             "and",
	NEG:             "not",
	FOR:             "for",
	LT:              "lt",
	GT:              "gt",
	MATCH:           "match",
	LOAD:            "load",
	MERGE:           "++",
	EOF:             "EOF",
	RETURN:          "return",
	USE:             "use",
	MODULE:          "module",
	LAMBDA:          "lambda",
	HASHTAG:         "#",
}

Functions

This section is empty.

Types

type Token

type Token struct {
	Pos     int
	Line    int
	LinePos int
	Type    int
	Raw     string
}

Jump to

Keyboard shortcuts

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