comments yay

This commit is contained in:
uan
2026-02-07 15:14:42 +01:00
parent 90ab17da24
commit 7fddf9ab30
3 changed files with 24 additions and 4 deletions

13
lexer.v
View File

@@ -116,8 +116,8 @@ fn toktype_from_kw(kw string) TokenType {
fn is_delimiter(c u8, is_inside_number bool) bool {
valid_chars := match is_inside_number {
true {" +-*/,;:%<>()[]{}=\n\""}
false {". +-*/,;:%<>()[]{}=\n\""}
true {" #+-*/,;:%<>()[]{}=\n\""}
false {". #+-*/,;:%<>()[]{}=\n\""}
}
return valid_chars.contains(c.ascii_str())
}
@@ -150,8 +150,16 @@ fn lex(input string) ?[]Token {
mut tokens := []Token{}
mut is_inside_number := false
mut is_inside_string := false
mut is_inside_comment := false
for (right < input.len && left <= right) {
for is_inside_comment {
right++
if ['#', '\n'].contains(input[right].ascii_str()) {
is_inside_comment = false
}
left = right
}
for is_inside_string {
right++
if input[right].ascii_str() == '\"' {
@@ -174,6 +182,7 @@ fn lex(input string) ?[]Token {
if is_delimiter(input[right], is_inside_number) && left == right {
if !input[right].is_space() {
if input[right].ascii_str() == '\"' {is_inside_string = true; continue}
if input[right].ascii_str() == '#' {is_inside_comment = true; continue}
mut tok_str := input[right].ascii_str()
if right + 1 < input.len {
combined := input.substr(right, right + 2)