123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package token
- // Type is a specific type of int which describes the symbols.
- type Type int
- // Token describes the letter(s) or symbol, is a result of the lexer.
- type Token struct {
- Type Type
- Literal string
- Start int // including the first char
- End int // including the last char
- }
- // /about/{fullname:alphabetical}
- // /profile/{anySpecialName:string}
- // {id:uint64 range(1,5) else 404}
- // /admin/{id:int eq(1) else 402}
- // /file/{filepath:file else 405}
- const (
- EOF = iota // 0
- ILLEGAL
- // Identifiers + literals
- LBRACE // {
- RBRACE // }
- // PARAM_IDENTIFIER // id
- COLON // :
- LPAREN // (
- RPAREN // )
- // PARAM_FUNC_ARG // 1
- COMMA
- IDENT // string or keyword
- // Keywords
- // keywords_start
- ELSE // else
- // keywords_end
- INT // 42
- )
- var keywords = map[string]Type{
- "else": ELSE,
- }
- // LookupIdent receives a series of chars
- // and tries to resolves the token type.
- func LookupIdent(ident string) Type {
- if tok, ok := keywords[ident]; ok {
- return tok
- }
- return IDENT
- }
|