add select

This commit is contained in:
XudongXie 2024-09-10 11:02:30 +08:00
parent 0eea1eef1b
commit ddb4978a32
9 changed files with 231 additions and 16 deletions

View File

@ -5,17 +5,15 @@
</component>
<component name="ChangeListManager">
<list default="true" id="d8d12963-4777-48e3-9669-309cf5e41d60" name="更改" comment="add todolist">
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/DropTable/DropTableEndNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/DropTable/DropTableNameNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/DropTable/DropTableNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/DropTable/DropTableOptionNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Select/SelectEndNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Select/SelectNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Select/SelectObjNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Select/SelectOptionNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Select/SelectTableNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Select/SelectUnionNode.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Select/SelectWhereClauseNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Document/Todolist" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Document/Todolist" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Generator/OpenGaussGenerator.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Generator/OpenGaussGenerator.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Lexer/OracleLexer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Lexer/OracleLexer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Main.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Main.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/ASTNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/ASTNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/OracleParser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Parser/OracleParser.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -274,7 +272,14 @@
<option name="project" value="LOCAL" />
<updated>1725890826442</updated>
</task>
<option name="localTasksCounter" value="24" />
<task id="LOCAL-00024" summary="add todolist">
<created>1725896687932</created>
<option name="number" value="00024" />
<option name="presentableId" value="LOCAL-00024" />
<option name="project" value="LOCAL" />
<updated>1725896687932</updated>
</task>
<option name="localTasksCounter" value="25" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">

View File

@ -1,9 +1,9 @@
Operation
 select.. from.. where
 join
 group by
 order by
 union
 select.. from.. where 1
 join 1
 group by 1
 order by 1
 union 1
 insert into 1
 update... set
 delete
@ -20,7 +20,7 @@ Operation
 create table 1
 drop table 1
Object
 table
 table 1
 view
 function
 procedure

View File

@ -0,0 +1,28 @@
package Parser.AST.Select;
import Lexer.Token;
import Parser.AST.ASTNode;
import java.util.List;
public class SelectEndNode extends ASTNode {
public SelectEndNode(List<Token> tokens)
{
super(tokens);
}
public SelectEndNode(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,29 @@
package Parser.AST.Select;
import Parser.AST.ASTNode;
import Lexer.Token;
import java.util.List;
public class SelectNode extends ASTNode {
public SelectNode(List<Token> tokens)
{
super(tokens);
}
public SelectNode(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,42 @@
package Parser.AST.Select;
import Lexer.Token;
import Parser.AST.ASTNode;
import java.util.List;
public class SelectObjNode extends ASTNode {
public SelectObjNode(List<Token> tokens)
{
super(tokens);
}
public SelectObjNode(ASTNode node)
{
super(node);
}
@Override
public String toString()
{
List<Token> tokens = getTokens();
String str = "";
for (int i = 0; i < tokens.size(); i++) {
if (i < tokens.size() - 1)
str += tokens.get(i).getValue() + ", ";
else
str += tokens.get(i).getValue();
}
return str;
}
@Override
public void visit(ASTNode node, StringBuilder queryString)
{
queryString.append(toString() + " FROM ");
for (ASTNode child : getChildren())
{
child.visit(child, queryString);
}
}
}

View File

@ -0,0 +1,28 @@
package Parser.AST.Select;
import Lexer.Token;
import Parser.AST.ASTNode;
import java.util.List;
public class SelectOptionNode extends ASTNode {
public SelectOptionNode(List<Token> tokens)
{
super(tokens);
}
public SelectOptionNode(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,27 @@
package Parser.AST.Select;
import Lexer.Token;
import Parser.AST.ASTNode;
import java.util.List;
public class SelectTableNode extends ASTNode {
public SelectTableNode(List<Token> tokens)
{
super(tokens);
}
public SelectTableNode(ASTNode node)
{
super(node);
}
public void visit(ASTNode node, StringBuilder queryString)
{
queryString.append(toString() + " ");
for (ASTNode child : getChildren())
{
child.visit(child, queryString);
}
}
}

View File

@ -0,0 +1,28 @@
package Parser.AST.Select;
import Lexer.Token;
import Parser.AST.ASTNode;
import java.util.List;
public class SelectUnionNode extends ASTNode {
public SelectUnionNode(List<Token> tokens)
{
super(tokens);
}
public SelectUnionNode(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,28 @@
package Parser.AST.Select;
import Lexer.Token;
import Parser.AST.ASTNode;
import java.util.List;
public class SelectWhereClauseNode extends ASTNode {
public SelectWhereClauseNode(List<Token> tokens)
{
super(tokens);
}
public SelectWhereClauseNode(ASTNode node)
{
super(node);
}
@Override
public void visit(ASTNode node, StringBuilder queryString)
{
queryString.append(toString() + " ");
for (ASTNode child : getChildren())
{
child.visit(child, queryString);
}
}
}