forked from opengaussexamples/examples
add pattern of functions in select
This commit is contained in:
parent
b4c48ae085
commit
1155fd3b42
|
|
@ -4,10 +4,9 @@
|
|||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="d8d12963-4777-48e3-9669-309cf5e41d60" name="更改" comment="add case when">
|
||||
<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/Main.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Main.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" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main/java/Lexer/OracleLexer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Lexer/OracleLexer.java" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
|
@ -294,7 +293,21 @@
|
|||
<option name="project" value="LOCAL" />
|
||||
<updated>1725956415475</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="28" />
|
||||
<task id="LOCAL-00028" summary="revise">
|
||||
<created>1725958136981</created>
|
||||
<option name="number" value="00028" />
|
||||
<option name="presentableId" value="LOCAL-00028" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1725958136981</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00029" summary="revise">
|
||||
<created>1725978582486</created>
|
||||
<option name="number" value="00029" />
|
||||
<option name="presentableId" value="LOCAL-00029" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1725978582486</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="30" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
|
|
@ -314,7 +327,6 @@
|
|||
<MESSAGE value="AST node" />
|
||||
<MESSAGE value="add AST node" />
|
||||
<MESSAGE value="add functions" />
|
||||
<MESSAGE value="revise" />
|
||||
<MESSAGE value="add parser function" />
|
||||
<MESSAGE value="add function" />
|
||||
<MESSAGE value="coding" />
|
||||
|
|
@ -323,7 +335,8 @@
|
|||
<MESSAGE value="add todolist" />
|
||||
<MESSAGE value="add select" />
|
||||
<MESSAGE value="add case when" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="add case when" />
|
||||
<MESSAGE value="revise" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="revise" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<watches-manager>
|
||||
|
|
|
|||
|
|
@ -29,9 +29,24 @@ public class OracleLexer {
|
|||
"(NCHAR\\(.*?\\))|" + // NCHAR() function
|
||||
"(NVARCHAR2\\(.*?\\))|" + // NVARCHAR2() function
|
||||
"(RAW\\(.*?\\))|" + // RAW() function
|
||||
|
||||
"(COUNT\\(.*?\\))|" + // COUNT() function
|
||||
"(SUM\\(.*?\\))|" + // SUM() function
|
||||
"(AVG\\(.*?\\))|" + // AVG() function
|
||||
"(MAX\\(.*?\\))|" + // MAX() function
|
||||
"(MIN\\(.*?\\))|" + // MIN() function
|
||||
|
||||
"(NOT NULL)|" +
|
||||
"(PRIMARY KEY)|" +
|
||||
"(FOREIGN KEY)|" +
|
||||
"(DOUBLE PRECISION)|" +
|
||||
"(TIMESTAMP WITH TIME ZONE)|" +
|
||||
"(TIMESTAMP WITH LOCAL TIME ZONE)|" +
|
||||
"(LONG RAW)|" +
|
||||
"(INTERVAL YEAR TO MONTH)|" +
|
||||
"(INTERVAL DAY TO SECOND)|" +
|
||||
"(REF CURSOR)|" +
|
||||
|
||||
|
||||
"(\\b[A-Za-z_][A-Za-z0-9_]*\\b)|" + // Keywords and identifiers
|
||||
"(\\d+\\.?\\d*)|" + // Numbers (integer or decimal)
|
||||
|
|
@ -107,9 +122,23 @@ public class OracleLexer {
|
|||
}else if (tokenValue.matches("(?i)RAW\\(.*?\\)")) {
|
||||
// RAW() function, CASE_INSENSITIVE
|
||||
return new Token(Token.TokenType.KEYWORD, tokenValue);
|
||||
}else if (tokenValue.matches("(?i)COUNT\\(.*?\\)")) {
|
||||
// RAW() function, CASE_INSENSITIVE
|
||||
return new Token(Token.TokenType.KEYWORD, tokenValue);
|
||||
}else if (tokenValue.matches("(?i)SUM\\(.*?\\)")) {
|
||||
// RAW() function, CASE_INSENSITIVE
|
||||
return new Token(Token.TokenType.KEYWORD, tokenValue);
|
||||
}else if (tokenValue.matches("(?i)AVG\\(.*?\\)")) {
|
||||
// RAW() function, CASE_INSENSITIVE
|
||||
return new Token(Token.TokenType.KEYWORD, tokenValue);
|
||||
}else if (tokenValue.matches("(?i)MAX\\(.*?\\)")) {
|
||||
// RAW() function, CASE_INSENSITIVE
|
||||
return new Token(Token.TokenType.KEYWORD, tokenValue);
|
||||
}else if (tokenValue.matches("(?i)MIN\\(.*?\\)")) {
|
||||
// RAW() function, CASE_INSENSITIVE
|
||||
return new Token(Token.TokenType.KEYWORD, tokenValue);
|
||||
}
|
||||
|
||||
|
||||
else if (isKeyword(tokenValue)) {
|
||||
return new Token(Token.TokenType.KEYWORD, tokenValue);
|
||||
} else if (tokenValue.matches("[a-zA-Z_][a-zA-Z0-9_]*")) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue