add join class

This commit is contained in:
XudongXie 2024-09-12 11:35:56 +08:00
parent bd1cec8fbd
commit 34023bc8e8
5 changed files with 120 additions and 4 deletions

View File

@ -4,8 +4,12 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="d8d12963-4777-48e3-9669-309cf5e41d60" name="更改" comment="revise">
<change beforePath="$PROJECT_DIR$/src/main/java/Lexer/OracleLexer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Lexer/OracleLexer.java" afterDir="false" />
<list default="true" id="d8d12963-4777-48e3-9669-309cf5e41d60" name="更改" comment="add join pattern">
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Join/JoinColumnNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Join/JoinSourceTabNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Join/JoinTargetTabNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Join/JoinTypeNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -355,7 +359,14 @@
<option name="project" value="LOCAL" />
<updated>1726066806993</updated>
</task>
<option name="localTasksCounter" value="37" />
<task id="LOCAL-00037" summary="add join pattern">
<created>1726068883795</created>
<option name="number" value="00037" />
<option name="presentableId" value="LOCAL-00037" />
<option name="project" value="LOCAL" />
<updated>1726068883795</updated>
</task>
<option name="localTasksCounter" value="38" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
@ -387,7 +398,8 @@
<MESSAGE value="add some comments" />
<MESSAGE value="add parseSelect" />
<MESSAGE value="revise" />
<option name="LAST_COMMIT_MESSAGE" value="revise" />
<MESSAGE value="add join pattern" />
<option name="LAST_COMMIT_MESSAGE" value="add join pattern" />
</component>
<component name="XDebuggerManager">
<watches-manager>

View File

@ -0,0 +1,34 @@
package Parser.AST.Join;
import Lexer.Token;
import Parser.AST.ASTNode;
import java.util.List;
public class JoinColumnNode extends ASTNode {
private String keyword;
public JoinColumnNode(List<Token> tokens)
{
super(tokens);
this.keyword = "";
}
public JoinColumnNode(ASTNode node)
{
super(node);
this.keyword = "";
}
public void setKeyword(String keyword) {
this.keyword = keyword + " ";
}
@Override
public void visit(ASTNode node, StringBuilder queryString)
{
queryString.append(this.keyword + toString() + " ");
for (ASTNode child : getChildren())
{
child.visit(child, queryString);
}
}
}

View File

@ -0,0 +1,23 @@
package Parser.AST.Join;
import Lexer.Token;
import Parser.AST.ASTNode;
import java.util.List;
public class JoinSourceTabNode extends ASTNode {
public JoinSourceTabNode(List<Token> tokens) {
super(tokens);
}
public JoinSourceTabNode(ASTNode node) {
super(node);
}
@Override
public void visit(ASTNode node, StringBuilder queryString) {
queryString.append(toString() + " ");
for (ASTNode child : getChildren()) {
child.visit(child, queryString);
}
}
}

View File

@ -0,0 +1,23 @@
package Parser.AST.Join;
import Lexer.Token;
import Parser.AST.ASTNode;
import java.util.List;
public class JoinTargetTabNode extends ASTNode {
public JoinTargetTabNode(List<Token> tokens) {
super(tokens);
}
public JoinTargetTabNode(ASTNode node) {
super(node);
}
@Override
public void visit(ASTNode node, StringBuilder queryString) {
queryString.append(toString() + " ");
for (ASTNode child : getChildren()) {
child.visit(child, queryString);
}
}
}

View File

@ -0,0 +1,24 @@
package Parser.AST.Join;
import Lexer.Token;
import Parser.AST.ASTNode;
import java.util.List;
public class JoinTypeNode extends ASTNode {
public JoinTypeNode(List<Token> tokens) {
super(tokens);
}
public JoinTypeNode(ASTNode node) {
super(node);
}
@Override
public void visit(ASTNode node, StringBuilder queryString) {
queryString.append(toString() + " ");
for (ASTNode child : getChildren())
{
child.visit(child, queryString);
}
}
}