From b8ccfae5f782aa09343b885225dca2b1d36052aa Mon Sep 17 00:00:00 2001 From: Elias Haugsbakk Date: Sun, 20 Sep 2026 23:14:32 +0200 Subject: add verbose flag --- .../eliashaugsbakk/kompilator/IRGeneration/IRGenerator.java | 7 ++++++- src/main/java/no/eliashaugsbakk/kompilator/Main.java | 11 ++++++++--- .../java/no/eliashaugsbakk/kompilator/tokenization/Lexer.java | 7 ++++++- 3 files changed, 20 insertions(+), 5 deletions(-) (limited to 'src/main/java/no') diff --git a/src/main/java/no/eliashaugsbakk/kompilator/IRGeneration/IRGenerator.java b/src/main/java/no/eliashaugsbakk/kompilator/IRGeneration/IRGenerator.java index cf50a74..8ade66e 100644 --- a/src/main/java/no/eliashaugsbakk/kompilator/IRGeneration/IRGenerator.java +++ b/src/main/java/no/eliashaugsbakk/kompilator/IRGeneration/IRGenerator.java @@ -6,6 +6,7 @@ import no.eliashaugsbakk.kompilator.IRGeneration.Instructions.Alloc; import no.eliashaugsbakk.kompilator.IRGeneration.Instructions.Assign; import no.eliashaugsbakk.kompilator.IRGeneration.Instructions.Call; import no.eliashaugsbakk.kompilator.IRGeneration.Instructions.Instruction; +import no.eliashaugsbakk.kompilator.Main; import no.eliashaugsbakk.kompilator.parsing.AST; import no.eliashaugsbakk.kompilator.parsing.node.Program; import no.eliashaugsbakk.kompilator.parsing.node.expression.Expression; @@ -33,7 +34,11 @@ public class IRGenerator { for (Statement stmt : program.statements) { generateStatement(stmt); } - ir.forEach(IO::println); + if (Main.VERBOSE) { + IO.println("======= IRGenerator ======="); + ir.forEach(IO::println); + IO.println("\n\n\n\n"); + } return ir; } diff --git a/src/main/java/no/eliashaugsbakk/kompilator/Main.java b/src/main/java/no/eliashaugsbakk/kompilator/Main.java index 8d6a5cf..bdd1b1e 100644 --- a/src/main/java/no/eliashaugsbakk/kompilator/Main.java +++ b/src/main/java/no/eliashaugsbakk/kompilator/Main.java @@ -1,5 +1,6 @@ package no.eliashaugsbakk.kompilator; +import java.util.Arrays; import java.util.List; import no.eliashaugsbakk.kompilator.IO.File; import no.eliashaugsbakk.kompilator.IO.FileReaderWriter; @@ -17,15 +18,19 @@ import no.eliashaugsbakk.kompilator.tokenization.Lexer; import no.eliashaugsbakk.kompilator.tokenization.Token; public class Main { - public static final String programFileExtension = "spå"; + public static boolean VERBOSE = false; + static final String programFileExtension = "spå"; static void main(String[] args) { - if (args.length != 1) { - IO.println("err: Only accepts one argument: The filename of the input program"); + if (args.length == 0) { + IO.println("err: File path must be specified."); System.exit(1); } + VERBOSE = Arrays.asList(args).contains("--verbose") + || Arrays.asList(args).contains("-v"); + String inputFileName = args[0]; if (!inputFileName.endsWith("." + programFileExtension)) { diff --git a/src/main/java/no/eliashaugsbakk/kompilator/tokenization/Lexer.java b/src/main/java/no/eliashaugsbakk/kompilator/tokenization/Lexer.java index fb3e09e..1389c6b 100644 --- a/src/main/java/no/eliashaugsbakk/kompilator/tokenization/Lexer.java +++ b/src/main/java/no/eliashaugsbakk/kompilator/tokenization/Lexer.java @@ -20,6 +20,7 @@ import static no.eliashaugsbakk.kompilator.tokenization.TokenType.TYPE; import java.util.ArrayList; import java.util.List; +import no.eliashaugsbakk.kompilator.Main; public class Lexer { private char current; @@ -66,7 +67,11 @@ public class Lexer { } tokens.add(new Token(EOF, "End of File", line, column)); - //tokens.forEach(token -> IO.println(token.type().toString() + ": " + token.value())); + if (Main.VERBOSE) { + IO.println("======= Lexer ======="); + tokens.forEach(token -> IO.println(token.type().toString() + ": " + token.value())); + IO.println("\n\n\n\n"); + } return tokens; } -- cgit v1.2.3