From 289494c27dbca156e2c79689ae6771ab1fe26988 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Tue, 4 Jun 2024 16:16:34 +0200 Subject: [PATCH] wip --- progs/test2.py | 4 ---- src/Main.java | 21 ++++++++++++++++++--- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/progs/test2.py b/progs/test2.py index e39ca98..7d4290a 100644 --- a/progs/test2.py +++ b/progs/test2.py @@ -1,5 +1 @@ x = 1 -if x == 1: - print("a") -else: - print("b") diff --git a/src/Main.java b/src/Main.java index e8802db..21122f0 100644 --- a/src/Main.java +++ b/src/Main.java @@ -29,19 +29,34 @@ public static void main(String[] args) { CharStream cs = CharStreams.fromFileName(fileStr); Python3Lexer lexer = new Python3Lexer(cs); - CommonTokenStream tokenStream = new CommonTokenStream(lexer); - Python3Parser parser = new Python3Parser(tokenStream); + 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); + } + + if (tree == null) { + System.err.println("The tree is null."); + return; + } + if (parser.getNumberOfSyntaxErrors() > 0) { System.err.println("Error on program parsing."); return; } Python3VisitorImpl visitor = new Python3VisitorImpl(); + SymbolTable ST = new SymbolTable(); Node ast = visitor.visit(tree); - SymbolTable ST = new SymbolTable(); ArrayList errors = ast.checkSemantics(ST, 0); if (errors.size() > 0) { System.out.println("You had: " + errors.size() + " errors:");