wip: extracting tokens

This commit is contained in:
2026-04-17 15:37:36 +01:00
parent 01f59b8770
commit 1b8f598222
3 changed files with 94 additions and 18 deletions
+84
View File
@@ -0,0 +1,84 @@
package tokenizer
import (
"fmt"
"regexp"
)
type TokenType int
const (
KEYWORD TokenType = iota
SYMBOL
INT_CONST
STR_CONST
IDENTIFIER
)
var KEYWORDS = [...]string{
"class",
"constructor",
"function",
"method",
"field",
"static",
"var",
"int",
"char",
"boolean",
"void",
"true",
"false",
"null",
"this",
"let",
"do",
"if",
"else",
"while",
"return",
}
var SYMBOLS = [...]string{
"{",
"}",
"(",
")",
"[",
"]",
".",
",",
";",
"+",
"-",
"*",
"/",
"&",
"|",
"<",
">",
"=",
"~",
}
type Token struct {
Value string
Type TokenType
}
func ExtractTokens(tokens *[]Token, source []byte) error {
i := 0
for i < len(source) {
t := string(source[i])
if match, _ := regexp.MatchString("^[[:space:]]$", t); match {
i++
} else {
fmt.Println(t)
i++
}
}
return nil
}