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) type_check(ast, nil) if len(g_message_list) > 0 { for msg in g_message_list { fmt.printf("%s\n", msg) } return } node_print(ast) }