diff --git a/Tester.class b/Tester.class new file mode 100644 index 0000000..69949dc Binary files /dev/null and b/Tester.class differ diff --git a/Tester.java b/Tester.java index 4c79d57..92c20ee 100644 --- a/Tester.java +++ b/Tester.java @@ -1,5 +1,5 @@ public class Tester { public static void main(String[] args) { - new Test(); + new Example(); } } diff --git a/src/main/java/parser/Main.java b/src/main/java/parser/Main.java index 1f98fb1..b6a3855 100644 --- a/src/main/java/parser/Main.java +++ b/src/main/java/parser/Main.java @@ -8,10 +8,23 @@ import org.antlr.v4.runtime.tree.ParseTree; import parser.generated.SimpleJavaLexer; import parser.generated.SimpleJavaParser; +import java.io.IOException; +import java.nio.file.Paths; + public class Main { public static void main(String[] args) throws Exception { - // Assuming args[0] contains the path to the input file - CharStream codeCharStream = CharStreams.fromString("class Example { }"); + CharStream codeCharStream = null; + try { + codeCharStream = CharStreams.fromPath(Paths.get("path/to/your/file.txt")); + parsefile(codeCharStream); + } catch (IOException e) { + System.err.println("Error reading the file: " + e.getMessage()); + } + } + + + static void parsefile(CharStream codeCharStream){ + // CharStream codeCharStream = CharStreams.fromString("class Example { } class Example2 { }"); SimpleJavaLexer lexer = new SimpleJavaLexer(codeCharStream); CommonTokenStream tokens = new CommonTokenStream(lexer); SimpleJavaParser parser = new SimpleJavaParser(tokens); @@ -22,8 +35,10 @@ public class Main { ProgramNode ast = (ProgramNode) builder.visit(tree); // build the AST // Optionally print or process the AST - System.out.println("Parsed " + ast.classes.size() + " classes."); - System.out.println(ast.classes.getFirst().identifier); + System.out.println("Parsed " + ast.classes.size() + " classes with identifiers/names:"); + for (ClassDeclarationNode classNode : ast.classes) { + System.out.println(classNode.identifier); + } ByteCodeGenerator byteCodeGenerator = new ByteCodeGenerator(); byteCodeGenerator.generateByteCode(ast);