using Compiler; const string contents = """ struct person { age: i32 name: string } func main(: i32 { let x: i32 = 23 x = 24 if true { x = 49 } else { x = 3 } let i: i32 = 0 x = 1 + 2 * 34 while i < 10 { i = i + 1 x = i } let me: person = struct person { age = 21 name = "Oliver" } do_something(me.name) return x } func do_something(text: string): void { } """; var tokens = Tokenizer.Tokenize("test.nub", contents, out var tokenizerDiagnostics); foreach (var diagnostic in tokenizerDiagnostics) { Console.WriteLine(diagnostic.Message); } if (tokenizerDiagnostics.Any(x => x.Severity == DiagnosticSeverity.Error)) { return 1; } var nodes = Parser.Parse("test.nub", tokens, out var parserDiagnostics); foreach (var diagnostic in parserDiagnostics) { Console.WriteLine(diagnostic.Message); } if (parserDiagnostics.Any(x => x.Severity == DiagnosticSeverity.Error)) { return 1; } var output = Generator.Emit(nodes); File.WriteAllText("C:/Users/oliste/repos/nub-lang/compiler/Compiler/out.c", output); return 0;