summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2024-06-27 09:31:37 +0200
committerGitHub <noreply@github.com>2024-06-27 09:31:37 +0200
commit7125bb27fedaafd5a56b5122e4251b182448ddac (patch)
treeba6bff8604d3bd249ca89b38ec51182a494a91bd
parent54b2c77e6875c1abb3d73fdfd0de924e75633087 (diff)
Execute file with python file as argument (#14)
-rw-r--r--src/Main.java24
1 files changed, 9 insertions, 15 deletions
diff --git a/src/Main.java b/src/Main.java
index 3987bad..afad5b1 100644
--- a/src/Main.java
+++ b/src/Main.java
@@ -15,12 +15,15 @@ import semanticanalysis.*;
public class Main {
public static void main(String[] args) {
+ if (args.length != 1) {
+ System.err
+ .println(
+ "You must execute this program with a file parameter.\nUsage: java -cp lib/antlr-4.13.1-complete.jar:out Main <file.py>");
+ return;
+ }
- // for (File file : Objects.requireNonNull(new File("./progs/").listFiles())) {
try {
- // String fileStr = file.getPath();
- // FIXME: use the fileStr above
- String fileStr = "./progs/test.py";
+ String fileStr = args[0];
System.out.println(fileStr);
System.out.println(readFile(fileStr));
CharStream cs = CharStreams.fromFileName(fileStr);
@@ -28,20 +31,12 @@ public class Main {
CommonTokenStream tokens = new CommonTokenStream(lexer);
Python3Parser parser = new Python3Parser(tokens);
Python3Parser.RootContext tree = parser.root();
- // DEBUG
- // {
- // tokens.fill();
- // for (Token token : tokens.getTokens()) {
- // System.out.println(token.toString());
- // }
- //
- // System.out.println("Tree: " + tree);
- // }
+
JFrame frame = new JFrame("Parse Tree");
JPanel panel = new JPanel();
TreeViewer viewer = new TreeViewer(Arrays.asList(parser.getRuleNames()),
tree);
- viewer.setScale(1.5); // Zoom factor
+ viewer.setScale(1.5);
panel.add(viewer);
frame.add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
@@ -71,7 +66,6 @@ public class Main {
} catch (Exception e) {
e.printStackTrace();
}
- // }
}
private static String readFile(String filePath) throws IOException {