refractor

This commit is contained in:
XudongXie 2024-09-12 20:25:05 +08:00
parent 3c0cbcdad8
commit 3db285b4cf
6 changed files with 28 additions and 29 deletions

View File

@ -5,12 +5,11 @@ import Parser.AST.ASTNode;
import Parser.AST.CreateTable.ColumnNode;
import Parser.AST.CreateTable.CreateTabNode;
import Exception.GenerateFailedException;
import Parser.AST.DropTable.DropTableNode;
import Parser.AST.DropTable.DropTableOptionNode;
import Parser.AST.Drop.DropNode;
import Parser.AST.Drop.DropOptionNode;
import Parser.AST.Insert.InsertNode;
import Parser.AST.Join.JoinConditionNode;
import Parser.AST.Join.JoinSourceTabNode;
import Parser.AST.Join.JoinTypeNode;
import Parser.AST.Select.SelectNode;
import java.util.ArrayList;
@ -33,7 +32,7 @@ public class OpenGaussGenerator {
else if (node instanceof InsertNode) {
return GenInsertSQL(node);
}
else if (node instanceof DropTableNode) {
else if (node instanceof DropNode) {
return GenDropTableSQL(node);
}
else if (node instanceof SelectNode) {
@ -90,7 +89,7 @@ public class OpenGaussGenerator {
private void visitDrop(ASTNode node) {
try {
if (node instanceof DropTableOptionNode) {
if (node instanceof DropOptionNode) {
List<Token> tokens = new ArrayList<>();
tokens.add(new Token(Token.TokenType.KEYWORD, "CASCADE"));
tokens.add(new Token(Token.TokenType.KEYWORD, "CONSTRAINTS"));

View File

@ -1,15 +1,15 @@
package Parser.AST.DropTable;
package Parser.AST.Drop;
import Lexer.Token;
import Parser.AST.ASTNode;
import java.util.List;
public class DropTableEndNode extends ASTNode {
public DropTableEndNode(ASTNode node) {
public class DropEndNode extends ASTNode {
public DropEndNode(ASTNode node) {
super(node);
}
public DropTableEndNode(List<Token> tokens) {
public DropEndNode(List<Token> tokens) {
super(tokens);
}

View File

@ -1,15 +1,15 @@
package Parser.AST.DropTable;
package Parser.AST.Drop;
import Lexer.Token;
import Parser.AST.ASTNode;
import java.util.List;
public class DropTableNode extends ASTNode {
public DropTableNode(ASTNode node) {
public class DropNode extends ASTNode {
public DropNode(ASTNode node) {
super(node);
}
public DropTableNode(List<Token> tokens) {
public DropNode(List<Token> tokens) {
super(tokens);
}

View File

@ -1,15 +1,15 @@
package Parser.AST.DropTable;
package Parser.AST.Drop;
import Lexer.Token;
import Parser.AST.ASTNode;
import java.util.List;
public class DropTableNameNode extends ASTNode {
public DropTableNameNode(ASTNode node) {
public class DropObjNameNode extends ASTNode {
public DropObjNameNode(ASTNode node) {
super(node);
}
public DropTableNameNode(List<Token> tokens) {
public DropObjNameNode(List<Token> tokens) {
super(tokens);
}

View File

@ -1,16 +1,16 @@
package Parser.AST.DropTable;
package Parser.AST.Drop;
import Lexer.Token;
import Parser.AST.ASTNode;
import java.util.List;
public class DropTableOptionNode extends ASTNode {
public DropTableOptionNode(ASTNode node) {
public class DropOptionNode extends ASTNode {
public DropOptionNode(ASTNode node) {
super(node);
}
public DropTableOptionNode(List<Token> tokens) {
public DropOptionNode(List<Token> tokens) {
super(tokens);
}

View File

@ -9,10 +9,10 @@ import Parser.AST.CaseWhen.CaseElseNode;
import Parser.AST.CaseWhen.CaseEndNode;
import Parser.AST.CaseWhen.CaseThenNode;
import Parser.AST.CreateTable.*;
import Parser.AST.DropTable.DropTableEndNode;
import Parser.AST.DropTable.DropTableNameNode;
import Parser.AST.DropTable.DropTableNode;
import Parser.AST.DropTable.DropTableOptionNode;
import Parser.AST.Drop.DropEndNode;
import Parser.AST.Drop.DropObjNameNode;
import Parser.AST.Drop.DropNode;
import Parser.AST.Drop.DropOptionNode;
import Parser.AST.Insert.InsertDataNode;
import Parser.AST.Insert.InsertEndNode;
import Parser.AST.Insert.InsertNode;
@ -322,14 +322,14 @@ public class OracleParser {
catch (ParseFailedException e) {
e.printStackTrace();
}
ASTNode root = new DropTableNode(tokens);
ASTNode root = new DropNode(tokens);
ASTNode currentNode = root;
for (int i = 2; i < parseTokens.size(); i++) {
if (parseTokens.get(i).hasType(Token.TokenType.IDENTIFIER)) {
tokens = new ArrayList<>();
tokens.add(parseTokens.get(i));
ASTNode childNode = new DropTableNameNode(tokens);
ASTNode childNode = new DropObjNameNode(tokens);
currentNode.addChild(childNode);
currentNode = childNode;
}
@ -340,14 +340,14 @@ public class OracleParser {
tokens.add(parseTokens.get(i + 1));
i++;
}
ASTNode childNode = new DropTableOptionNode(tokens);
ASTNode childNode = new DropOptionNode(tokens);
currentNode.addChild(childNode);
currentNode = childNode;
}
else if (parseTokens.get(i).hasType(Token.TokenType.SYMBOL) && parseTokens.get(i).getValue().equals(";")) {
tokens = new ArrayList<>();
tokens.add(parseTokens.get(i));
ASTNode childNode = new DropTableEndNode(tokens);
ASTNode childNode = new DropEndNode(tokens);
currentNode.addChild(childNode);
currentNode = childNode;
}