|
|
|
@ -3,6 +3,7 @@ package token |
|
|
|
import ( |
|
|
|
"bufio" |
|
|
|
"io" |
|
|
|
"strings" |
|
|
|
) |
|
|
|
|
|
|
|
var eof = rune(0) |
|
|
|
@ -19,6 +20,11 @@ func isWhitespace(ch rune) bool { |
|
|
|
return (ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r') |
|
|
|
} |
|
|
|
|
|
|
|
func isBoolean(str string) bool { |
|
|
|
lower := strings.ToLower(str) |
|
|
|
return lower == "true" || lower == "false" |
|
|
|
} |
|
|
|
|
|
|
|
type Tokenizer struct { |
|
|
|
cur_line int |
|
|
|
cur_col int |
|
|
|
@ -71,6 +77,10 @@ func (this *Tokenizer) parseIdentifier() { |
|
|
|
} |
|
|
|
this.cur_tok.Literal += string(this.cur_ch) |
|
|
|
} |
|
|
|
|
|
|
|
if isBoolean(this.cur_tok.Literal) { |
|
|
|
this.cur_tok.ID = BOOLEAN |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func (this *Tokenizer) parseNumber() { |
|
|
|
|