1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package token
- type TokenType string
- const (
- ILLEGAL = "ILLEGAL"
- EOF = "EOF"
-
- IDENT = "IDENT"
- INT = "INT"
-
- ASSIGN = "="
- PLUS = "+"
- MINUS = "-"
- BANG = "!"
- ASTERISK = "*"
- SLASH = "/"
- LT = "<"
- GT = ">"
- EQ = "=="
- NOT_EQ = "!="
-
- COMMA = ","
- SEMICOLON = ";"
- LPAREN = "("
- RPAREN = ")"
- LBRACE = "{"
- RBRACE = "}"
-
- FUNCTION = "FUNCTION"
- LET = "LET"
- TRUE = "TRUE"
- FALSE = "FALSE"
- IF = "IF"
- ELSE = "ELSE"
- RETURN = "RETURN"
- )
- type Token struct {
- Type TokenType
- Literal string
- }
- var keywords = map[string]TokenType{
- "fn": FUNCTION,
- "let": LET,
- "true": TRUE,
- "false": FALSE,
- "if": IF,
- "else": ELSE,
- "return": RETURN,
- }
- func LookupIdent(ident string) TokenType {
- if tok, ok := keywords[ident]; ok {
- return tok
- }
- return IDENT
- }
|