diff --git a/sqlTranslate/.idea/workspace.xml b/sqlTranslate/.idea/workspace.xml index c3f62bc4..34de1c72 100644 --- a/sqlTranslate/.idea/workspace.xml +++ b/sqlTranslate/.idea/workspace.xml @@ -6,7 +6,6 @@ - - { + "keyToString": { + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "SHARE_PROJECT_CONFIGURATION_FILES": "true", + "last_opened_file_path": "F:/oracle2opengauss/examples/sqlTranslate", + "project.structure.last.edited": "模块", + "project.structure.proportion": "0.0", + "project.structure.side.proportion": "0.0", + "settings.editor.selected.configurable": "build.tools" } -}]]> +} @@ -215,4 +221,11 @@ + + + + + + + \ No newline at end of file diff --git a/sqlTranslate/src/main/java/Parser/AST/ASTNode.java b/sqlTranslate/src/main/java/Parser/AST/ASTNode.java index 4f22066b..a68223ee 100644 --- a/sqlTranslate/src/main/java/Parser/AST/ASTNode.java +++ b/sqlTranslate/src/main/java/Parser/AST/ASTNode.java @@ -115,4 +115,10 @@ public abstract class ASTNode { } return str; } + + public String getASTString() { + String str = ""; + // TODO: implement + return str; + } } diff --git a/sqlTranslate/src/main/java/Parser/OracleParser.java b/sqlTranslate/src/main/java/Parser/OracleParser.java index caff544f..8c3c54cb 100644 --- a/sqlTranslate/src/main/java/Parser/OracleParser.java +++ b/sqlTranslate/src/main/java/Parser/OracleParser.java @@ -36,10 +36,12 @@ public class OracleParser { List tokens = new ArrayList<>(); tokens.add(lexer.getTokens().get(0)); ASTNode root = new CreateTabNode(tokens); - ASTNode currentNode = root; + ASTNode currentNode = null; for (int i = 1; i < lexer.getTokens().size(); i++) { +// System.out.println("Parsing the token: " + lexer.getTokens().get(i).getValue()); if (i == 1 && lexer.getTokens().get(i).getValue().equalsIgnoreCase("TABLE")) { - tokens.clear(); + tokens = new ArrayList<>(); + tokens.add(lexer.getTokens().get(i)); try { tokens.add(lexer.getTokens().get(i + 1)); @@ -53,14 +55,14 @@ public class OracleParser { currentNode = child; } else if (i == 1 && !lexer.getTokens().get(i).getValue().equalsIgnoreCase("TABLE")){ - tokens.clear(); + tokens = new ArrayList<>(); tokens.add(lexer.getTokens().get(i)); for (int j = i + 1; j < lexer.getTokens().size(); j++) { if (lexer.getTokens().get(j).getValue().equalsIgnoreCase("TABLE")) { ASTNode child = new TableTypeNode(tokens); root.addChild(child); currentNode = child; - tokens.clear(); + tokens = new ArrayList<>(); tokens.add(lexer.getTokens().get(j)); try { tokens.add(lexer.getTokens().get(j + 1)); @@ -80,7 +82,7 @@ public class OracleParser { } else if (lexer.getTokens().get(i).hasType(Token.TokenType.IDENTIFIER)) { // Token.TokenType.IDENTIFIER ... , -> column node - tokens.clear(); + tokens = new ArrayList<>(); ColumnNode child = new ColumnNode(); child.setName(lexer.getTokens().get(i)); tokens.add(lexer.getTokens().get(i)); @@ -136,7 +138,7 @@ public class OracleParser { else if (lexer.getTokens().get(i).hasType(Token.TokenType.KEYWORD) && lexer.getTokens().get(i).getValue().equalsIgnoreCase("CONSTRAINT")) { // Table constraint - tokens.clear(); + tokens = new ArrayList<>(); tokens.add(lexer.getTokens().get(i)); for (int j = i + 1; j < lexer.getTokens().size(); j++) { tokens.add(lexer.getTokens().get(j)); @@ -185,7 +187,7 @@ public class OracleParser { } else { - throw new ParseFailedException("Parse failed!"); +// throw new ParseFailedException("Parse failed!"); } } return root;