forked from opengaussexamples/examples
add ast classes of procedure
This commit is contained in:
parent
81458e5ef7
commit
f0a909f288
|
|
@ -4,10 +4,17 @@
|
|||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="d8d12963-4777-48e3-9669-309cf5e41d60" name="更改" comment="add exception">
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/Document/Procedure in Oracle" afterDir="false" />
|
||||
<list default="true" id="d8d12963-4777-48e3-9669-309cf5e41d60" name="更改" comment="add document of Procedure">
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Procedure/ProcedureBeginNode.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Procedure/ProcedureColumnNode.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Procedure/ProcedureEndNode.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Procedure/ProcedureNode.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Procedure/ProcedureObjNode.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Procedure/ProcedurePLStatementNode.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/Procedure/ProcedureRetDefNode.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/Document/Procedure in Oracle" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Document/Procedure in Oracle" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/CreateTable/ColumnNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/CreateTable/ColumnNode.java" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
|
@ -105,13 +112,6 @@
|
|||
<option name="presentableId" value="Default" />
|
||||
<updated>1723106789329</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00030" summary="add pattern of functions in select">
|
||||
<created>1725981063195</created>
|
||||
<option name="number" value="00030" />
|
||||
<option name="presentableId" value="LOCAL-00030" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1725981063195</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00031" summary="add some comments">
|
||||
<created>1725981511612</created>
|
||||
<option name="number" value="00031" />
|
||||
|
|
@ -448,7 +448,14 @@
|
|||
<option name="project" value="LOCAL" />
|
||||
<updated>1726474768114</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="79" />
|
||||
<task id="LOCAL-00079" summary="add document of Procedure">
|
||||
<created>1726491998608</created>
|
||||
<option name="number" value="00079" />
|
||||
<option name="presentableId" value="LOCAL-00079" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1726491998609</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="80" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
|
|
@ -463,7 +470,6 @@
|
|||
</option>
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<MESSAGE value="add update convert rules" />
|
||||
<MESSAGE value="add Delete ast class" />
|
||||
<MESSAGE value="add Delete" />
|
||||
<MESSAGE value="add alter table grammar document" />
|
||||
|
|
@ -488,7 +494,8 @@
|
|||
<MESSAGE value="add exception classes" />
|
||||
<MESSAGE value="revise" />
|
||||
<MESSAGE value="add exception" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="add exception" />
|
||||
<MESSAGE value="add document of Procedure" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="add document of Procedure" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<watches-manager>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ BEGIN
|
|||
-- PL/SQL statements
|
||||
[EXCEPTION]
|
||||
-- Exception handling
|
||||
END [procedure_name];
|
||||
END [procedure_name]; -- [procedure_name] should be removed in OpenGauss
|
||||
|
||||
Example: CREATE OR REPLACE PROCEDURE update_salary(
|
||||
employee_id IN NUMBER,
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ public class ColumnNode extends ASTNode implements ColumnType {
|
|||
super(tokens);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString)
|
||||
{
|
||||
if (node.hasChild() && !(node.getChildren().get(0) instanceof CRTEndNode) )
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
package Parser.AST.Procedure;
|
||||
|
||||
import Lexer.Token;
|
||||
import Parser.AST.ASTNode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ProcedureBeginNode extends ASTNode {
|
||||
public ProcedureBeginNode() {
|
||||
super();
|
||||
setTokens(new ArrayList<>());
|
||||
}
|
||||
|
||||
public ProcedureBeginNode(ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
public ProcedureBeginNode(List<Token> tokens) {
|
||||
super(tokens);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString) {
|
||||
queryString.append(toString() + " ");
|
||||
for (ASTNode child : getChildren())
|
||||
{
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
package Parser.AST.Procedure;
|
||||
|
||||
import Interface.ColumnType;
|
||||
import Lexer.Token;
|
||||
import Parser.AST.ASTNode;
|
||||
import Parser.AST.CreateTable.CRTEndNode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ProcedureColumnNode extends ASTNode implements ColumnType {
|
||||
private Token name;
|
||||
private Token type;
|
||||
private List<Token> constraint;
|
||||
private List<Token> InOut;
|
||||
public ProcedureColumnNode() {
|
||||
super();
|
||||
setTokens(new ArrayList<>());
|
||||
}
|
||||
|
||||
public ProcedureColumnNode(ASTNode node)
|
||||
{
|
||||
super(node);
|
||||
}
|
||||
|
||||
public ProcedureColumnNode(List<Token> tokens)
|
||||
{
|
||||
super(tokens);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString)
|
||||
{
|
||||
if (node.hasChild() && !(node.getChildren().get(0) instanceof ProcedureColumnNode) )
|
||||
queryString.append(toString() + ", ");
|
||||
else if (node.hasChild() && (node.getChildren().get(0) instanceof ProcedureColumnNode))
|
||||
queryString.append(toString() + " ");
|
||||
for (ASTNode child : getChildren())
|
||||
{
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
|
||||
public Token getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(Token name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Token getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setType(Token type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public List<Token> getConstraint() {
|
||||
return constraint;
|
||||
}
|
||||
|
||||
public void setConstraint(List<Token> constraint) {
|
||||
this.constraint = constraint;
|
||||
}
|
||||
|
||||
public List<Token> getInOut() {
|
||||
return InOut;
|
||||
}
|
||||
|
||||
public void setInOut(List<Token> InOut) {
|
||||
this.InOut = InOut;
|
||||
}
|
||||
|
||||
public void addInOut(Token InOut) {
|
||||
this.InOut.add(InOut);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ResetTokensbyNameTypeConstraint() {
|
||||
List <Token> tokens = new ArrayList<>();
|
||||
tokens.add(name);
|
||||
for (Token token : InOut) {
|
||||
tokens.add(token);
|
||||
}
|
||||
tokens.add(type);
|
||||
for (Token token : constraint) {
|
||||
tokens.add(token);
|
||||
}
|
||||
setTokens(tokens);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package Parser.AST.Procedure;
|
||||
|
||||
import Lexer.Token;
|
||||
import Parser.AST.ASTNode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ProcedureEndNode extends ASTNode {
|
||||
public ProcedureEndNode() {
|
||||
super();
|
||||
setTokens(new ArrayList<>());
|
||||
}
|
||||
|
||||
public ProcedureEndNode(ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
public ProcedureEndNode(List<Token> tokens) {
|
||||
super(tokens);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString) {
|
||||
queryString.append(toString());
|
||||
for (ASTNode child : getChildren())
|
||||
{
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package Parser.AST.Procedure;
|
||||
|
||||
import Lexer.Token;
|
||||
import Parser.AST.ASTNode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ProcedureNode extends ASTNode {
|
||||
public ProcedureNode() {
|
||||
super();
|
||||
setTokens(new ArrayList<>());
|
||||
}
|
||||
|
||||
public ProcedureNode(ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
public ProcedureNode(List<Token> tokens) {
|
||||
super(tokens);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString) {
|
||||
queryString.append(toString() + " ");
|
||||
for (ASTNode child : getChildren())
|
||||
{
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
package Parser.AST.Procedure;
|
||||
|
||||
import Lexer.Token;
|
||||
import Parser.AST.ASTNode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ProcedureObjNode extends ASTNode {
|
||||
public ProcedureObjNode() {
|
||||
super();
|
||||
setTokens(new ArrayList<>());
|
||||
}
|
||||
|
||||
public ProcedureObjNode(ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
public ProcedureObjNode(List<Token> tokens) {
|
||||
super(tokens);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString) {
|
||||
queryString.append(toString() + " (");
|
||||
for (ASTNode child : getChildren())
|
||||
{
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package Parser.AST.Procedure;
|
||||
|
||||
import Lexer.Token;
|
||||
import Parser.AST.ASTNode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ProcedurePLStatementNode extends ASTNode {
|
||||
public ProcedurePLStatementNode() {
|
||||
super();
|
||||
}
|
||||
public ProcedurePLStatementNode(ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
public ProcedurePLStatementNode(List<Token> tokens) {
|
||||
super(tokens);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString) {
|
||||
queryString.append(toString() + " ");
|
||||
for (ASTNode child : node.getChildren()) {
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
package Parser.AST.Procedure;
|
||||
|
||||
import Lexer.Token;
|
||||
import Parser.AST.ASTNode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ProcedureRetDefNode extends ASTNode {
|
||||
public ProcedureRetDefNode() {
|
||||
super();
|
||||
}
|
||||
|
||||
public ProcedureRetDefNode(ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
public ProcedureRetDefNode(List<Token> tokens) {
|
||||
super(tokens);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(ASTNode node, StringBuilder queryString) {
|
||||
queryString.append(") " + toString() + " ");
|
||||
for (ASTNode child : getChildren())
|
||||
{
|
||||
child.visit(child, queryString);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue