Skip to content

Commit 82db584

Browse files
committed
Change an element type definition
1 parent 3bdbed3 commit 82db584

File tree

8 files changed

+89
-58
lines changed

8 files changed

+89
-58
lines changed

src/main/java/org/domaframework/doma/intellij/Sql.bnf

Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,17 @@
3333
EL_POPULATE = "%populate"
3434
EL_PARSER_LEVEL_COMMENT = "%!"
3535
EL_END = "%end"
36-
EL_HASH = "#"
37-
EL_CARET = "^"
38-
EL_SEPARATOR = ":"
39-
EL_NULL = "null"
40-
EL_BOOLEAN = "regexp:(true|false)"
41-
EL_DOT = "."
42-
EL_PLUS = "+"
43-
EL_MINUS = "-"
44-
EL_ASTERISK = "*"
45-
EL_SLASH = "/"
46-
EL_PERCENT = "%"
36+
HASH = "#"
37+
CARET = "^"
38+
SEPARATOR = ":"
39+
NULL = "null"
40+
BOOLEAN = "regexp:(true|false)"
41+
DOT = "."
42+
PLUS = "+"
43+
MINUS = "-"
44+
ASTERISK = "*"
45+
SLASH = "/"
46+
PERCENT = "%"
4747
EL_EQ = "=="
4848
EL_NE = "!="
4949
EL_LT = "<"
@@ -53,10 +53,10 @@
5353
EL_NOT = "!"
5454
EL_AND = "&&"
5555
EL_OR = "||"
56-
EL_COMMA = ","
57-
EL_LEFT_PAREN = "("
58-
EL_RIGHT_PAREN = ")"
59-
EL_AT_SIGN = "@"
56+
COMMA = ","
57+
LEFT_PAREN = "("
58+
RIGHT_PAREN = ")"
59+
AT_SIGN = "@"
6060
EL_NEW = "new"
6161
EL_NUMBER = "regexp:\d+(L|(\.\d+)?[FDB])?"
6262
EL_STRING = "regexp:\"([^\"\\]|\\\"|\\)*\""
@@ -74,7 +74,23 @@
7474
sql_file ::= content *
7575

7676
private content ::= !<<eof>> item {pin=1 recoverWhile=content_recover}
77-
private item ::= (comment | literal | word | OTHER)
77+
private item ::= (comment | literal | word |
78+
OTHER |
79+
DOT |
80+
COMMA |
81+
ASTERISK |
82+
LEFT_PAREN |
83+
RIGHT_PAREN |
84+
PLUS |
85+
MINUS |
86+
SLASH |
87+
PERCENT |
88+
LE |
89+
GE |
90+
LT |
91+
GT |
92+
NULL |
93+
BOOLEAN )
7894
private comment ::= (block_comment | LINE_COMMENT)
7995
private literal ::= (STRING | NUMBER)
8096
private word ::= (KEYWORD | WORD)
@@ -149,6 +165,6 @@ el_parameters ::= "(" (el_expr ("," el_expr)*)? ")" {pin=1}
149165

150166
// primary
151167
el_primary_expr ::= el_literal_expr | el_id_expr | el_paren_expr
152-
private el_literal_expr ::= EL_NULL | EL_BOOLEAN | (EL_PLUS | EL_MINUS)? EL_NUMBER | EL_STRING | EL_CHAR
168+
private el_literal_expr ::= EL_NULL | BOOLEAN | (EL_PLUS | EL_MINUS)? EL_NUMBER | EL_STRING | EL_CHAR
153169
private el_id_expr ::= EL_IDENTIFIER
154170
private el_paren_expr ::= "(" el_expr ")" {pin=1}

src/main/java/org/domaframework/doma/intellij/Sql.flex

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -114,36 +114,51 @@ El_NonWordPart = [=<>\-,/*();\R \n\t\f]
114114
{String} { return SqlTypes.STRING; }
115115
{Number} { return SqlTypes.NUMBER; }
116116
{Word} { return isKeyword(yytext()) ? SqlTypes.KEYWORD : SqlTypes.WORD; }
117+
"." { return SqlTypes.DOT; }
118+
"," { return SqlTypes.COMMA; }
119+
"+" { return SqlTypes.PLUS;}
120+
"-" { return SqlTypes.MINUS;}
121+
"*" { return SqlTypes.ASTERISK;}
122+
"/" { return SqlTypes.SLASH;}
123+
"%" { return SqlTypes.PERCENT;}
124+
"(" { return SqlTypes.LEFT_PAREN; }
125+
")" { return SqlTypes.RIGHT_PAREN; }
126+
"<" { return SqlTypes.LT;}
127+
"<=" { return SqlTypes.LE;}
128+
">" { return SqlTypes.GT;}
129+
">=" { return SqlTypes.GE;}
130+
"true" { return SqlTypes.BOOLEAN;}
131+
"false" { return SqlTypes.BOOLEAN;}
117132
({LineTerminator}|{WhiteSpace})+ { return TokenType.WHITE_SPACE; }
118133
[^] { return SqlTypes.OTHER; }
119134
}
120135

121136
<EXPRESSION> {
122137
{BlockCommentEnd} { yybegin(YYINITIAL); return SqlTypes.BLOCK_COMMENT_END; }
123-
":" { return SqlTypes.EL_SEPARATOR; }
124-
"." { return SqlTypes.EL_DOT; }
125-
"," { return SqlTypes.EL_COMMA; }
126-
"(" { return SqlTypes.EL_LEFT_PAREN; }
127-
")" { return SqlTypes.EL_RIGHT_PAREN; }
128-
"@" { return SqlTypes.EL_AT_SIGN; }
129-
"+" { return SqlTypes.EL_PLUS;}
130-
"-" { return SqlTypes.EL_MINUS;}
131-
"*" { return SqlTypes.EL_ASTERISK;}
132-
"/" { return SqlTypes.EL_SLASH;}
133-
"%" { return SqlTypes.EL_PERCENT;}
138+
":" { return SqlTypes.SEPARATOR; }
139+
"." { return SqlTypes.DOT; }
140+
"," { return SqlTypes.COMMA; }
141+
"(" { return SqlTypes.LEFT_PAREN; }
142+
")" { return SqlTypes.RIGHT_PAREN; }
143+
"@" { return SqlTypes.AT_SIGN; }
144+
"+" { return SqlTypes.PLUS;}
145+
"-" { return SqlTypes.MINUS;}
146+
"*" { return SqlTypes.ASTERISK;}
147+
"/" { return SqlTypes.SLASH;}
148+
"%" { return SqlTypes.PERCENT;}
134149
"==" { return SqlTypes.EL_EQ;}
135150
"!=" { return SqlTypes.EL_NE;}
136-
"<" { return SqlTypes.EL_LT;}
137-
"<=" { return SqlTypes.EL_LE;}
138-
">" { return SqlTypes.EL_GT;}
139-
">=" { return SqlTypes.EL_GE;}
151+
"<" { return SqlTypes.LT;}
152+
"<=" { return SqlTypes.LE;}
153+
">" { return SqlTypes.GT;}
154+
">=" { return SqlTypes.GE;}
140155
"!" { return SqlTypes.EL_NOT;}
141156
"&&" { return SqlTypes.EL_AND;}
142157
"||" { return SqlTypes.EL_OR;}
143158
"new" { return SqlTypes.EL_NEW;}
144159
"null" { return SqlTypes.EL_NULL;}
145-
"true" { return SqlTypes.EL_BOOLEAN;}
146-
"false" { return SqlTypes.EL_BOOLEAN;}
160+
"true" { return SqlTypes.BOOLEAN;}
161+
"false" { return SqlTypes.BOOLEAN;}
147162
{El_Number} { return SqlTypes.EL_NUMBER; }
148163
{El_String} { return SqlTypes.EL_STRING; }
149164
{El_Char} { return SqlTypes.EL_CHAR; }
@@ -162,8 +177,8 @@ El_NonWordPart = [=<>\-,/*();\R \n\t\f]
162177
"%populate"/{El_NonWordPart} { yybegin(EXPRESSION); return SqlTypes.EL_POPULATE; }
163178
"%end"/{El_NonWordPart} { yybegin(EXPRESSION); return SqlTypes.EL_END; }
164179
"%!" { yybegin(PARSER_LEVEL_COMMENT); return SqlTypes.EL_PARSER_LEVEL_COMMENT; }
165-
"#" { yybegin(EXPRESSION); return SqlTypes.EL_HASH; }
166-
"^" { yybegin(EXPRESSION); return SqlTypes.EL_CARET; }
180+
"#" { yybegin(EXPRESSION); return SqlTypes.HASH; }
181+
"^" { yybegin(EXPRESSION); return SqlTypes.CARET; }
167182
({LineTerminator}|{WhiteSpace})+ { return TokenType.WHITE_SPACE; }
168183
[^] { return TokenType.BAD_CHARACTER; }
169184
}

src/main/java/org/domaframework/doma/intellij/highlighter/SqlSyntaxHighlighter.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -156,19 +156,19 @@ public class SqlSyntaxHighlighter extends SyntaxHighlighterBase {
156156
map.put(SqlTypes.EL_PARSER_LEVEL_COMMENT, EL_PARSER_LEVEL_COMMENT);
157157
map.put(SqlTypes.EL_FOR, EL_FOR);
158158
map.put(SqlTypes.EL_END, EL_END);
159-
map.put(SqlTypes.EL_HASH, EL_HASH);
160-
map.put(SqlTypes.EL_CARET, EL_CARET);
159+
map.put(SqlTypes.HASH, EL_HASH);
160+
map.put(SqlTypes.CARET, EL_CARET);
161161

162-
map.put(SqlTypes.EL_DOT, EL_DOT);
163-
map.put(SqlTypes.EL_COMMA, EL_COMMA);
164-
map.put(SqlTypes.EL_AT_SIGN, EL_AT_SIGN);
165-
map.put(SqlTypes.EL_LEFT_PAREN, EL_LEFT_PAREN);
166-
map.put(SqlTypes.EL_RIGHT_PAREN, EL_RIGHT_PAREN);
162+
map.put(SqlTypes.DOT, EL_DOT);
163+
map.put(SqlTypes.COMMA, EL_COMMA);
164+
map.put(SqlTypes.AT_SIGN, EL_AT_SIGN);
165+
map.put(SqlTypes.LEFT_PAREN, EL_LEFT_PAREN);
166+
map.put(SqlTypes.RIGHT_PAREN, EL_RIGHT_PAREN);
167167

168168
map.put(SqlTypes.EL_PLUS, EL_PLUS);
169169
map.put(SqlTypes.EL_MINUS, EL_MINUS);
170-
map.put(SqlTypes.EL_ASTERISK, EL_ASTERISK);
171-
map.put(SqlTypes.EL_SLASH, EL_SLASH);
170+
map.put(SqlTypes.ASTERISK, EL_ASTERISK);
171+
map.put(SqlTypes.SLASH, EL_SLASH);
172172
map.put(SqlTypes.EL_PERCENT, EL_PERCENT);
173173

174174
map.put(SqlTypes.EL_EQ, EL_EQ);
@@ -180,12 +180,12 @@ public class SqlSyntaxHighlighter extends SyntaxHighlighterBase {
180180
map.put(SqlTypes.EL_NOT, EL_NOT);
181181
map.put(SqlTypes.EL_AND, EL_AND);
182182
map.put(SqlTypes.EL_OR, EL_OR);
183-
map.put(SqlTypes.EL_SEPARATOR, EL_SEPARATOR);
183+
map.put(SqlTypes.SEPARATOR, EL_SEPARATOR);
184184

185185
map.put(SqlTypes.EL_NEW, EL_NEW);
186186

187187
map.put(SqlTypes.EL_NULL, EL_NULL);
188-
map.put(SqlTypes.EL_BOOLEAN, EL_BOOLEAN);
188+
map.put(SqlTypes.BOOLEAN, EL_BOOLEAN);
189189
map.put(SqlTypes.EL_STRING, EL_STRING);
190190
map.put(SqlTypes.EL_CHAR, EL_CHAR);
191191
map.put(SqlTypes.EL_NUMBER, EL_NUMBER);

src/main/kotlin/org/domaframework/doma/intellij/common/sql/directive/BindDirectiveUtil.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ object BindDirectiveUtil {
4242
p.text == "%" ||
4343
p.prevSibling?.text == "%" ||
4444
p is SqlElStaticFieldAccessExpr ||
45-
p.elementType == SqlTypes.EL_AT_SIGN
45+
p.elementType == SqlTypes.AT_SIGN
4646
) ||
4747
p.elementType == SqlTypes.BLOCK_COMMENT_START ||
4848
!p.isNotWhiteSpace()
@@ -51,7 +51,7 @@ object BindDirectiveUtil {
5151
!it.isNotWhiteSpace() -> DirectiveType.NOT_DIRECTIVE
5252
it.text == "%" || it.prevSibling?.text == "%" -> DirectiveType.PERCENT
5353
it is SqlElStaticFieldAccessExpr -> DirectiveType.STATIC
54-
it.elementType == SqlTypes.EL_AT_SIGN -> DirectiveType.BUILT_IN
54+
it.elementType == SqlTypes.AT_SIGN -> DirectiveType.BUILT_IN
5555
else -> DirectiveType.NOT_DIRECTIVE
5656
}
5757
}

src/main/kotlin/org/domaframework/doma/intellij/common/sql/directive/StaticDirectiveHandler.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ class StaticDirectiveHandler(
8080
CompletionSuggest(fields ?: emptyList(), methods ?: emptyList())
8181
}
8282
}
83-
} else if (element.prevSibling?.elementType == SqlTypes.EL_AT_SIGN) {
83+
} else if (element.prevSibling?.elementType == SqlTypes.AT_SIGN) {
8484
// Built-in function completion
8585
handleResult =
8686
builtInDirectiveHandler(element, result) { bind ->

src/main/kotlin/org/domaframework/doma/intellij/contributor/sql/provider/SqlParameterCompletionProvider.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ class SqlParameterCompletionProvider : CompletionProvider<CompletionParameters>(
108108
val prevElm =
109109
pos.prevLeafs.firstOrNull {
110110
it.isNotWhiteSpace() &&
111-
it.elementType != SqlTypes.EL_DOT &&
111+
it.elementType != SqlTypes.DOT &&
112112
it !is PsiErrorElement
113113
}
114114
if (!pos.isNotWhiteSpace() && !isRightFactor(prevElm)) return
@@ -143,8 +143,8 @@ class SqlParameterCompletionProvider : CompletionProvider<CompletionParameters>(
143143
prevElm is SqlElAndExpr ||
144144
prevElm?.elementType == SqlTypes.EL_PLUS ||
145145
prevElm?.elementType == SqlTypes.EL_MINUS ||
146-
prevElm?.elementType == SqlTypes.EL_ASTERISK ||
147-
prevElm?.elementType == SqlTypes.EL_SLASH ||
146+
prevElm?.elementType == SqlTypes.ASTERISK ||
147+
prevElm?.elementType == SqlTypes.SLASH ||
148148
prevElm?.elementType == SqlTypes.EL_PERCENT ||
149149
prevElm?.isNotWhiteSpace() == true
150150
)

src/main/kotlin/org/domaframework/doma/intellij/extension/psi/PsiElementExtension.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ fun PsiElement.findSelfBlocks(): List<PsiElement> {
3131
var elms = emptyList<PsiElement>()
3232
for (it in this.prevLeafs) {
3333
elms = elms.plus(it)
34-
if (!it.isNotWhiteSpace() || it.elementType == SqlTypes.EL_AT_SIGN) break
34+
if (!it.isNotWhiteSpace() || it.elementType == SqlTypes.AT_SIGN) break
3535
}
3636

3737
elms

src/main/kotlin/org/domaframework/doma/intellij/inspection/sql/inspector/SqlBindVariableValidInspector.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,9 +142,9 @@ class SqlBindVariableValidInspector : LocalInspectionTool() {
142142
PsiTreeUtil
143143
.getChildrenOfTypeAsList(element, PsiElement::class.java)
144144
.filter {
145-
it.elementType != SqlTypes.EL_DOT &&
146-
it.elementType != SqlTypes.EL_LEFT_PAREN &&
147-
it.elementType != SqlTypes.EL_RIGHT_PAREN &&
145+
it.elementType != SqlTypes.DOT &&
146+
it.elementType != SqlTypes.LEFT_PAREN &&
147+
it.elementType != SqlTypes.RIGHT_PAREN &&
148148
it.elementType != SqlTypes.EL_PARAMETERS
149149
}.toTypedArray()
150150
val topElm = blockElement.firstOrNull() as SqlElPrimaryExpr
@@ -259,7 +259,7 @@ class SqlBindVariableValidInspector : LocalInspectionTool() {
259259
targetElement.firstChild?.elementType == SqlTypes.EL_CHAR ||
260260
targetElement.firstChild?.elementType == SqlTypes.EL_NUMBER ||
261261
targetElement.firstChild?.elementType == SqlTypes.EL_NULL ||
262-
targetElement.firstChild?.elementType == SqlTypes.EL_BOOLEAN ||
262+
targetElement.firstChild?.elementType == SqlTypes.BOOLEAN ||
263263
targetElement.firstChild is SqlElNewExpr ||
264264
targetElement.text.startsWith("@")
265265
)

0 commit comments

Comments
 (0)