summaryrefslogtreecommitdiff
path: root/src/main/java/no/eliashaugsbakk/kompilator/Main.java
diff options
context:
space:
mode:
authorElias Haugsbakk <[email protected]>2026-09-18 23:10:31 +0200
committerElias Haugsbakk <[email protected]>2026-09-19 01:59:23 +0200
commit1ef6f0e6b9083748e5b91743f15f10f09c6b8432 (patch)
tree66a0144ae1ffb8f42b915551021ef5e30f64fe2a /src/main/java/no/eliashaugsbakk/kompilator/Main.java
parentdf845a788a831c169a0725f49f96cae0a896ad64 (diff)
Implement parser creating AST
Diffstat (limited to 'src/main/java/no/eliashaugsbakk/kompilator/Main.java')
-rw-r--r--src/main/java/no/eliashaugsbakk/kompilator/Main.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/main/java/no/eliashaugsbakk/kompilator/Main.java b/src/main/java/no/eliashaugsbakk/kompilator/Main.java
index aad3753..fa7f79c 100644
--- a/src/main/java/no/eliashaugsbakk/kompilator/Main.java
+++ b/src/main/java/no/eliashaugsbakk/kompilator/Main.java
@@ -6,6 +6,11 @@ import no.eliashaugsbakk.kompilator.IO.FileReaderWriter;
import no.eliashaugsbakk.kompilator.IO.FileReaderWriterException;
import no.eliashaugsbakk.kompilator.asmGeneration.AssemblyBuilder;
import no.eliashaugsbakk.kompilator.assembleAndLink.AssemblerAndLinker;
+import no.eliashaugsbakk.kompilator.parsing.AST;
+import no.eliashaugsbakk.kompilator.parsing.Parser;
+import no.eliashaugsbakk.kompilator.parsing.ParserException;
+import no.eliashaugsbakk.kompilator.tokenization.Lexer;
+import no.eliashaugsbakk.kompilator.tokenization.Token;
public class Main {
public static final String programFileExtension = "spå";
@@ -33,6 +38,18 @@ public class Main {
System.exit(1);
}
+ List<Token> tokens = new Lexer(inputProgram.fileBody()).tokenize();
+ AST ast = null;
+ try {
+ ast = new Parser(tokens).parse();
+ } catch (ParserException e) {
+ IO.println("Error while parsing: " + e.getMessage());
+ }
+
+ // TODO:
+ // new Analyzer(ast).analyze();
+ // List<String> IR = new IRGenerator(ast).generate();
+
List<String> IR = List.of();
String assembly = new AssemblyBuilder().createAssembly(IR);