Skip to content

Commit 4a15264

Browse files
committed
Cleanup and standardize grammars
Also fixes licenses for lexer and grammar files, as long as setting the licenser Gradle plugin up to check for them.
1 parent 8f01ddc commit 4a15264

File tree

27 files changed

+939
-934
lines changed

27 files changed

+939
-934
lines changed

build.gradle.kts

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
* MIT License
99
*/
1010

11+
import net.minecrell.gradle.licenser.header.HeaderFormat
12+
import net.minecrell.gradle.licenser.header.HeaderFormatRegistry
13+
import net.minecrell.gradle.licenser.header.HeaderStyle
1114
import org.gradle.internal.jvm.Jvm
1215
import org.jetbrains.intellij.tasks.PublishTask
1316
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
@@ -171,13 +174,34 @@ idea {
171174
// License header formatting
172175
license {
173176
header = file("copyright.txt")
174-
include("**/*.java", "**/*.kt", "**/*.kts", "**/*.groovy", "**/*.gradle", "**/*.xml", "**/*.properties", "**/*.html")
175-
exclude("com/demonwav/mcdev/platform/mcp/at/gen/**", "com/demonwav/mcdev/nbt/lang/gen/**", "com/demonwav/mcdev/i18n/lang/gen/**")
177+
style["flex"] = HeaderStyle.BLOCK_COMMENT.format
178+
style["bnf"] = HeaderStyle.BLOCK_COMMENT.format
179+
180+
include(
181+
"**/*.java",
182+
"**/*.kt",
183+
"**/*.kts",
184+
"**/*.groovy",
185+
"**/*.gradle",
186+
"**/*.xml",
187+
"**/*.properties",
188+
"**/*.html",
189+
"**/*.flex",
190+
"**/*.bnf"
191+
)
192+
exclude(
193+
"com/demonwav/mcdev/platform/mcp/at/gen/**",
194+
"com/demonwav/mcdev/nbt/lang/gen/**",
195+
"com/demonwav/mcdev/i18n/lang/gen/**"
196+
)
176197

177198
tasks {
178199
"gradle" {
179200
files = project.files("build.gradle.kts", "settings.gradle.kts", "gradle.properties")
180201
}
202+
"grammars" {
203+
files = project.fileTree("src/main/grammars")
204+
}
181205
}
182206
}
183207

@@ -243,7 +267,15 @@ val generateI18nTemplateLexer = generateLexer("generateI18nTemplateLexer", "I18n
243267
val generate = task("generate") {
244268
group = "minecraft"
245269
description = "Generates sources needed to compile the plugin."
246-
dependsOn(generateAtLexer, generateAtPsiAndParser, generateNbttLexer, generateNbttPsiAndParser, generateI18nLexer, generateI18nPsiAndParser, generateI18nTemplateLexer)
270+
dependsOn(
271+
generateAtLexer,
272+
generateAtPsiAndParser,
273+
generateNbttLexer,
274+
generateNbttPsiAndParser,
275+
generateI18nLexer,
276+
generateI18nPsiAndParser,
277+
generateI18nTemplateLexer
278+
)
247279
outputs.dir("gen")
248280
}
249281

src/main/grammars/AtLexer.flex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* https://minecraftdev.org
55
*
6-
* Copyright (c) 2017 minecraft-dev
6+
* Copyright (c) 2018 minecraft-dev
77
*
88
* MIT License
99
*/

src/main/grammars/AtParser.bnf

Lines changed: 61 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@
33
*
44
* https://minecraftdev.org
55
*
6-
* Copyright (c) 2017 minecraft-dev
6+
* Copyright (c) 2018 minecraft-dev
77
*
88
* MIT License
9-
*
109
*/
1110

1211
{
@@ -23,73 +22,79 @@
2322
elementTypeClass="com.demonwav.mcdev.platform.mcp.at.psi.AtElementType"
2423
tokenTypeClass="com.demonwav.mcdev.platform.mcp.at.psi.AtTokenType"
2524

26-
tokens = [
27-
primitive="regexp:[ZBCSIFDJV]"
28-
class_value="regexp:\[*([ZBCSIFDJ]|L[^;]+;)"
29-
open_paren="("
30-
close_paren=")"
31-
asterisk_element="regexp:*(\(*\))?"
32-
keyword_element="regexp:(public|private|protected|default)([-+]f)?"
33-
name_element="regexp:[a-zA-Z0-9_]+|<init>"
34-
class_name_element="regexp:[a-zA-Z_$0-9\.]*[a-zA-Z_$0-9]"
35-
comment="regexp:#.*"
36-
crlf="regexp:\n|\r|\r\n"
37-
]
38-
39-
//
40-
// Mixins
41-
//
42-
43-
mixin ("function") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtFunctionImplMixin"
44-
implements ("function") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtFunctionMixin"
45-
46-
mixin ("entry") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtEntryImplMixin"
47-
implements ("entry") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtEntryMixin"
48-
49-
mixin ("argument") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtArgumentImplMixin"
50-
implements ("argument") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtArgumentMixin"
51-
52-
mixin ("class_name") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtClassNameImplMixin"
53-
implements ("class_name") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtClassNameMixin"
54-
55-
mixin ("field_name") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtFieldNameImplMixin"
56-
implements ("field_name") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtFieldNameMixin"
57-
58-
mixin ("func_name") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtFuncNameImplMixin"
59-
implements ("func_name") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtFuncNameMixin"
60-
61-
mixin ("keyword") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtKeywordImplMixin"
62-
implements ("keyword") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtKeywordMixin"
63-
64-
mixin ("return_value") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtReturnValueImplMixin"
65-
implements ("return_value") = "com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtReturnValueMixin"
66-
67-
implements ("asterisk") = "com.demonwav.mcdev.platform.mcp.at.psi.AtElement"
68-
6925
consumeTokenMethod="consumeTokenFast"
7026
}
7127

7228
at_file ::= line*
7329

74-
private line ::= !<<eof>> entry? comment? end_line
30+
private line ::= !<<eof>> entry? COMMENT? end_line
7531
private end_line ::= crlf | <<eof>>
32+
7633
entry ::= keyword class_name line_value? {
77-
methods=[setEntry setKeyword setClassName setFieldName setFunction setAsterisk]
34+
mixin="com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtEntryImplMixin"
35+
implements="com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtEntryMixin"
7836
pin = 1
7937
recoverWhile = line_recover
8038
}
81-
private line_recover ::= !(end_line | comment)
39+
40+
private line_recover ::= !(end_line | COMMENT)
8241
private line_value ::= function | field_name | asterisk
8342

84-
asterisk ::= asterisk_element
43+
asterisk ::= ASTERISK_ELEMENT {
44+
implements="com.demonwav.mcdev.platform.mcp.at.psi.AtElement"
45+
}
46+
47+
keyword ::= KEYWORD_ELEMENT {
48+
mixin="com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtKeywordImplMixin"
49+
implements="com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtKeywordMixin"
50+
methods=[
51+
keywordElement="KEYWORD_ELEMENT"
52+
]
53+
}
54+
55+
class_name ::= CLASS_NAME_ELEMENT {
56+
mixin="com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtClassNameImplMixin"
57+
implements="com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtClassNameMixin"
58+
methods=[
59+
classNameElement="CLASS_NAME_ELEMENT"
60+
]
61+
}
62+
63+
field_name ::= NAME_ELEMENT {
64+
mixin= "com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtFieldNameImplMixin"
65+
implements="com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtFieldNameMixin"
66+
methods=[
67+
nameElement="NAME_ELEMENT"
68+
]
69+
}
8570

86-
keyword ::= keyword_element {methods=[getKeywordValue setKeyword]}
87-
class_name ::= class_name_element {methods=[getClassNameValue getClassNameText setClassName]}
88-
field_name ::= name_element {methods=[getFieldNameText setFieldName]}
71+
function ::= func_name OPEN_PAREN argument* CLOSE_PAREN return_value {
72+
mixin= "com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtFunctionImplMixin"
73+
implements= "com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtFunctionMixin"
74+
}
8975

90-
function ::= func_name open_paren argument* close_paren return_value {methods=[setFunction setArgumentList setReturnValue]}
91-
func_name ::= name_element {methods=[getFuncNameText setFuncName]}
76+
func_name ::= NAME_ELEMENT {
77+
mixin="com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtFuncNameImplMixin"
78+
implements="com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtFuncNameMixin"
79+
methods=[
80+
nameElement="NAME_ELEMENT"
81+
]
82+
}
9283

93-
argument ::= primitive | class_value {methods=[getArgumentClass getArgumentText setArgument]}
84+
argument ::= PRIMITIVE | CLASS_VALUE {
85+
mixin="com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtArgumentImplMixin"
86+
implements="com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtArgumentMixin"
87+
methods=[
88+
primitive="PRIMITIVE"
89+
classValue="CLASS_VALUE"
90+
]
91+
}
9492

95-
return_value ::= primitive | class_value {methods=[getReturnValueClass getReturnValueText setReturnValue]}
93+
return_value ::= PRIMITIVE | CLASS_VALUE {
94+
mixin="com.demonwav.mcdev.platform.mcp.at.psi.mixins.impl.AtReturnValueImplMixin"
95+
implements="com.demonwav.mcdev.platform.mcp.at.psi.mixins.AtReturnValueMixin"
96+
methods=[
97+
primitive="PRIMITIVE"
98+
classValue="CLASS_VALUE"
99+
]
100+
}

src/main/grammars/I18nLexer.flex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* https://minecraftdev.org
55
*
6-
* Copyright (c) 2017 minecraft-dev
6+
* Copyright (c) 2018 minecraft-dev
77
*
88
* MIT License
99
*/

src/main/grammars/I18nParser.bnf

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* https://minecraftdev.org
55
*
6-
* Copyright (c) 2017 minecraft-dev
6+
* Copyright (c) 2018 minecraft-dev
77
*
88
* MIT License
99
*/
@@ -22,10 +22,6 @@
2222
elementTypeClass="com.demonwav.mcdev.i18n.lang.psi.I18nElementType"
2323
tokenTypeClass="com.demonwav.mcdev.i18n.lang.psi.I18nTokenType"
2424

25-
tokens = [
26-
EQUALS="="
27-
]
28-
2925
consumeTokenMethod="consumeTokenFast"
3026
}
3127

@@ -34,7 +30,6 @@ i18n_file ::= line*
3430
private line ::= entry | COMMENT | DUMMY | LINE_ENDING
3531

3632
entry ::= KEY EQUALS VALUE? {
37-
methods=[]
3833
mixin="com.demonwav.mcdev.i18n.lang.psi.mixins.I18nEntryImplMixin"
3934
implements="com.demonwav.mcdev.i18n.lang.psi.mixins.I18nEntryMixin"
4035
}

src/main/grammars/I18nTemplateLexer.flex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* https://minecraftdev.org
55
*
6-
* Copyright (c) 2017 minecraft-dev
6+
* Copyright (c) 2018 minecraft-dev
77
*
88
* MIT License
99
*/

src/main/grammars/NbttLexer.flex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* https://minecraftdev.org
55
*
6-
* Copyright (c) 2017 minecraft-dev
6+
* Copyright (c) 2018 minecraft-dev
77
*
88
* MIT License
99
*/
@@ -65,7 +65,6 @@ ARRAY_INT_LITEARL = [+-]?\d+[iI]
6565

6666
LONG_ARRAY_LITERAL = [+-]?\d+[lL]?
6767

68-
6968
%%
7069

7170
<YYINITIAL> {

0 commit comments

Comments
 (0)