Token
Constants
ASSIGN = Token.new("ASSIGN", "=")
Operators
ASTERISK = Token.new("ASTERISK", "*")
ASTERISK_ASSIGN = Token.new("ASTERISK_ASSIGN", "*=")
BANG = Token.new("BANG", "!")
BREAK = Token.new("BREAK", "break")
COLON = Token.new("COLON", ":")
COMMA = Token.new("COMMA", ",")
CONST = Token.new("CONST", "const")
DECREMENT = Token.new("DECREMENT", "--")
DO = Token.new("DO", "do")
ELSE = Token.new("ELSE", "else")
Meta types
EQ = Token.new("EQ", "==")
Comparators
FALSE = Token.new("FALSE", "false")
FLOAT = Token.new("FLOAT", "float")
FOR = Token.new("FOR", "for")
FUNCTION = Token.new("FUNCTION", "fn")
Keywords
GT = Token.new("GT", ">")
GT_EQ = Token.new("GT_EQ", ">=")
IDENT = Token.new("IDENT", "ident")
Identifiers and literals
IF = Token.new("IF", "if")
INCREMENT = Token.new("INCREMENT", "++")
INT = Token.new("INT", "int")
KEYWORDS = {"fn" => FUNCTION, "let" => LET, "const" => CONST, "true" => TRUE, "false" => FALSE, "null" => NULL, "if" => IF, "else" => ELSE, "return" => RETURN, "do" => DO, "for" => FOR, "while" => WHILE, "break" => BREAK} of String => Token
LBRACE = Token.new("LBRACE", "{")
LBRACKET = Token.new("LBRACKET", "[")
LET = Token.new("LET", "let")
LPAREN = Token.new("LPAREN", "(")
LT = Token.new("LT", "<")
LT_EQ = Token.new("LT_EQ", "<=")
MINUS = Token.new("MINUS", "-")
MINUS_ASSIGN = Token.new("MINUS_ASSIGN", "-=")
MODULUS = Token.new("MODULUS", "%")
NOT_EQ = Token.new("NOT_EQ", "!=")
NULL = Token.new("NULL", "null")
PERIOD = Token.new("PERIOD", ".")
Delimiters
PLUS = Token.new("PLUS", "+")
PLUS_ASSIGN = Token.new("PLUS_ASSIGN", "+=")
RBRACE = Token.new("RBRACE", "}")
RBRACKET = Token.new("RBRACKET", "]")
RETURN = Token.new("RETURN", "return")
RPAREN = Token.new("RPAREN", ")")
SEMICOLON = Token.new("SEMICOLON", ";")
SLASH = Token.new("SLASH", "/")
SLASH_ASSIGN = Token.new("SLASH_ASSIGN", "/=")
STRING = Token.new("STRING", "string")
TRUE = Token.new("TRUE", "true")
WHILE = Token.new("WHILE", "while")
Class methods
lookup_ident(ident : String)
Source