way better prints yay
This commit is contained in:
8
lexer.v
8
lexer.v
@@ -110,7 +110,11 @@ fn toktype_from_kw(kw string) TokenType {
|
||||
}
|
||||
|
||||
fn is_delimiter(c u8, is_inside_number bool) bool {
|
||||
return " +-*/.,;:%<>()[]{}=\n".contains(c.ascii_str()) && (c.ascii_str() != '.' || !is_inside_number)
|
||||
valid_chars := match is_inside_number {
|
||||
true {" +-*/,;:%<>()[]{}=\n"}
|
||||
false {". +-*/,;:%<>()[]{}=\n"}
|
||||
}
|
||||
return valid_chars.contains(c.ascii_str())
|
||||
}
|
||||
|
||||
fn is_real(str string) bool {
|
||||
@@ -142,11 +146,11 @@ fn lex(input string) ?[]Token {
|
||||
mut is_inside_number := false
|
||||
|
||||
for (right < input.len && left <= right) {
|
||||
is_inside_number = input[left].ascii_str().is_int()
|
||||
if input[right] == `\n` {
|
||||
line++
|
||||
}
|
||||
if !is_delimiter(input[right], is_inside_number) {
|
||||
is_inside_number = input[left].str().is_int()
|
||||
right++
|
||||
}
|
||||
if right >= input.len {
|
||||
|
||||
Reference in New Issue
Block a user