| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package token
- /**
- * @Author: simon
- * @Author: ynwdlxm@163.com
- * @Date: 2022/10/2 上午10:44
- * @Desc:
- */
- const (
- ILLEGAL = "ILLEGAL"
- EOF = "EOF"
- // Identifiers + literals
- IDENT = "IDENT" // add, foobar, x, y ...
- INT = "INT" // 123456
- STRING = "STRING"
- // Operators
- ASSIGN = "="
- PLUS = "+"
- MINUS = "-"
- BANG = "!"
- ASTERISK = "*"
- SLASH = "/"
- LT = "<"
- GT = ">"
- EQ = "=="
- NOT_EQ = "!="
- // Delimiters
- COMMA = ","
- SEMICOLON = ";"
- LPAREN = "("
- RPAREN = ")"
- LBRACE = "{"
- RBRACE = "}"
- LBRACKET = "["
- RBRACKET = "]"
- // Keywords
- FUNCTION = "FUNCTION"
- LET = "LET"
- TRUE = "TRUE"
- FALSE = "FALSE"
- IF = "IF"
- ELSE = "ELSE"
- RETURN = "RETURN"
- )
- var keyword = map[string]TypeToken{
- "fn": FUNCTION,
- "let": LET,
- "true": TRUE,
- "false": FALSE,
- "if": IF,
- "else": ELSE,
- "return": RETURN,
- }
- func LookupIdent(ident string) TypeToken {
- if tok, ok := keyword[ident]; ok {
- return tok
- }
- return IDENT
- }
- type TypeToken string
- type Token struct {
- Type TypeToken
- Literal string
- }
|