add parser function

This commit is contained in:
XudongXie 2024-08-20 23:00:46 +08:00
parent 9791f9a1dc
commit 0bcc3c21b7
3 changed files with 38 additions and 3 deletions

View File

@ -4,7 +4,11 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="d8d12963-4777-48e3-9669-309cf5e41d60" name="更改" comment="revise" />
<list default="true" id="d8d12963-4777-48e3-9669-309cf5e41d60" name="更改" comment="revise">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/Parser/AST/CreateTable/TableNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Parser/AST/CreateTable/TableNode.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" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@ -140,7 +144,28 @@
<option name="project" value="LOCAL" />
<updated>1724164698153</updated>
</task>
<option name="localTasksCounter" value="7" />
<task id="LOCAL-00007" summary="revise">
<created>1724165008682</created>
<option name="number" value="00007" />
<option name="presentableId" value="LOCAL-00007" />
<option name="project" value="LOCAL" />
<updated>1724165008682</updated>
</task>
<task id="LOCAL-00008" summary="revise">
<created>1724165028837</created>
<option name="number" value="00008" />
<option name="presentableId" value="LOCAL-00008" />
<option name="project" value="LOCAL" />
<updated>1724165028837</updated>
</task>
<task id="LOCAL-00009" summary="revise">
<created>1724165047441</created>
<option name="number" value="00009" />
<option name="presentableId" value="LOCAL-00009" />
<option name="project" value="LOCAL" />
<updated>1724165047441</updated>
</task>
<option name="localTasksCounter" value="10" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">

View File

@ -17,7 +17,7 @@ public class TableNode extends ASTNode{
public void visit(ASTNode node, StringBuilder queryString)
{
queryString.append(toString() + " ");
queryString.append(toString() + " ( ");
for (ASTNode child : getChildren())
{
child.visit(child, queryString);

View File

@ -76,6 +76,16 @@ public class OracleParser {
currentNode.addChild(child);
currentNode = child;
}
else if (lexer.getTokens().get(i).hasType(Token.TokenType.IDENTIFIER)) {
tokens.clear();
tokens.add(lexer.getTokens().get(i));
for (int j = i + 1; j < lexer.getTokens().size(); j++) {
// TODO: Token.TokenType.IDENTIFIER ... , -> column node
}
}
else {
throw new ParseFailedException("Parse failed!");
}
}
return root;
}