speedcat/main.odin
2024-02-08 01:04:11 +02:00

44 lines
710 B
Odin

package main
import "core:fmt"
import "core:os"
main :: proc() {
handle: os.Handle
if len(os.args) >= 2 {
errno: os.Errno
handle, errno = os.open(os.args[1])
if errno != 0 {
fmt.printf("Error opening file\n", errno)
return
}
} else {
handle = os.stdin
}
defer os.close(handle)
data, err := os.read_entire_file_from_handle(handle)
if !err {
fmt.printf("Error reading file\n", err)
return
}
u8_arr : [dynamic]u8
for ch in data {
append(&u8_arr, u8(ch))
}
lexer := lexer_create(&u8_arr)
parser := parser_create(lexer)
ast := parser_parse(&parser)
if len(g_message_list) > 0 {
for msg in g_message_list {
fmt.printf("%s\n", msg)
}
return
}
node_print(ast)
}