diff --git a/sqlTranslate/.idea/workspace.xml b/sqlTranslate/.idea/workspace.xml
index 49395dcc..f14b0abc 100644
--- a/sqlTranslate/.idea/workspace.xml
+++ b/sqlTranslate/.idea/workspace.xml
@@ -6,9 +6,8 @@
+
-
-
@@ -204,7 +203,14 @@
1724425628008
-
+
+ 1724472081080
+
+
+
+ 1724472081080
+
+
diff --git a/sqlTranslate/src/main/java/Main.java b/sqlTranslate/src/main/java/Main.java
index fc8e3791..c7211486 100644
--- a/sqlTranslate/src/main/java/Main.java
+++ b/sqlTranslate/src/main/java/Main.java
@@ -18,5 +18,6 @@ public class Main {
OracleParser parser = new OracleParser(lexer);
ASTNode root = parser.parse();
System.out.println(root.toQueryString());
+ System.out.println(root.getASTString());
}
}
diff --git a/sqlTranslate/src/main/java/Parser/AST/ASTNode.java b/sqlTranslate/src/main/java/Parser/AST/ASTNode.java
index ed5bfdc9..5cc95157 100644
--- a/sqlTranslate/src/main/java/Parser/AST/ASTNode.java
+++ b/sqlTranslate/src/main/java/Parser/AST/ASTNode.java
@@ -121,8 +121,25 @@ public abstract class ASTNode {
}
public String getASTString() {
- String str = "";
- // TODO: implement
- return str;
+ StringBuilder ASTString = new StringBuilder();
+ VisitAST(this, ASTString, 0);
+ return ASTString.toString();
+ }
+
+ private void VisitAST(ASTNode node, StringBuilder ASTString, int depth) {
+ addASTStructure(depth, ASTString);
+ ASTString.append(node.getClass() + ":" + node.toString() + "\n");
+ for (ASTNode child : node.getChildren()) {
+ if (child.getClass() == node.getClass())
+ VisitAST(child, ASTString, depth);
+ else
+ VisitAST(child, ASTString, depth + 1);
+ }
+ }
+
+ private void addASTStructure(int depth, StringBuilder ASTString) {
+ for (int i = 1; i <= depth; i++) {
+ ASTString.append("--");
+ }
}
}