Skip to content

Commit fbf5092

Browse files
committed
数据模板的定义和赋值,数据模板的成员
将默认的访问修饰符更改为public
1 parent ab8d472 commit fbf5092

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+1184
-999
lines changed

.mclib

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"id":"default",
55
"functions":[
66
{
7-
"id":"hello",
7+
"id":"main",
88
"normalParams":[
99

1010
],
@@ -16,7 +16,41 @@
1616
}
1717
],
1818
"classes":[
19-
19+
{
20+
"id":"Test",
21+
"parents":[
22+
23+
],
24+
"field":{
25+
"vars":[
26+
{
27+
"id":"qwq",
28+
"type":"nbt"
29+
}
30+
],
31+
"functions":[
32+
{
33+
"id":"test",
34+
"normalParams":[
35+
36+
],
37+
"returnType":"void",
38+
"isAbstract":false,
39+
"tags":[
40+
41+
]
42+
}
43+
]
44+
},
45+
"staticField":{
46+
"vars":[
47+
48+
],
49+
"functions":[
50+
51+
]
52+
}
53+
}
2054
],
2155
"template":[
2256

src/main/antlr/mcfppLexer.g4

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ INLINE:'inline';
100100

101101
CLASS:'class';
102102
INTERFACE:'interface';
103-
TEMPLATE:'template';
103+
DATA:'data';
104104
FUNCTION:'func';
105105

106106
GLOBAL:'global';

src/main/antlr/mcfppParser.g4

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ classFieldDeclaration
132132

133133
//数据模板
134134
templateDeclaration
135-
: FINAL? type TEMPLATE classWithoutNamespace (EXTENDS className)? templateBody
135+
: FINAL? DATA classWithoutNamespace (COLON className)? templateBody
136136
;
137137

138138
templateBody
@@ -144,27 +144,22 @@ templateMemberDeclaration
144144
;
145145

146146
staticTemplateMemberDeclaration
147-
: accessModifier? STATIC? templateMember
147+
: accessModifier? STATIC templateMember
148148
;
149149

150150
templateMember
151151
: templateFunctionDeclaration
152-
| templateFieldDeclaration ';'
152+
| templateFieldDeclaration
153153
;
154154

155155
templateFunctionDeclaration
156156
: FUNCTION Identifier functionParams (ARROW functionReturnType)? '{' functionBody '}'
157157
;
158158

159159
templateFieldDeclaration
160-
: (templateFieldDeclarationExpression ',')* templateFieldDeclarationExpression ';'
160+
: CONST? type Identifier ('=' expression)? ';'
161161
;
162162

163-
templateFieldDeclarationExpression
164-
: CONST? Identifier '=' expression
165-
;
166-
167-
168163
//接口声明
169164
interfaceDeclaration
170165
: classAnnotation? INTERFACE classWithoutNamespace (ARROW className (',' className)*)? interfaceBody
@@ -230,10 +225,6 @@ fieldDeclarationExpression
230225

231226
fieldModifier : CONST|DYNAMIC|IMPORT;
232227

233-
javaMethodParams
234-
: '(' type (',' type)* ')'
235-
;
236-
237228
functionParams
238229
: readOnlyParams? normalParams
239230
;
@@ -262,10 +253,6 @@ expression
262253
| conditionalOrExpression
263254
;
264255

265-
//expression
266-
// : conditionalOrExpression
267-
// ;
268-
269256
//能作为语句的表达式
270257
statementExpression
271258
: (basicExpression '=' )? expression
@@ -378,15 +365,9 @@ functionBody
378365
: statement*
379366
;
380367

381-
//functionCall
382-
// : namespaceID arguments
383-
// | varWithSelector arguments
384-
// ;
385-
386368
statement
387369
: fieldDeclaration ';'
388370
| statementExpression ';'
389-
// | functionCall ';'
390371
| ifStatement
391372
| forStatement
392373
| whileStatement
@@ -403,8 +384,6 @@ orgCommand
403384
: OrgCommand
404385
;
405386

406-
407-
408387
controlStatement
409388
: BREAK
410389
| CONTINUE
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package top.mcfpp.mni;
2+
3+
public class CommandFunctionData {
4+
}

src/main/java/top/mcfpp/mni/MCAnyData.java

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import kotlin.jvm.functions.Function4;
44
import org.jetbrains.annotations.NotNull;
5+
import top.mcfpp.annotations.MNIRegister;
56
import top.mcfpp.lang.CanSelectMember;
67
import top.mcfpp.lang.JavaVar;
78
import top.mcfpp.lang.Var;
@@ -12,27 +13,10 @@
1213
import java.util.HashMap;
1314
import java.util.UUID;
1415

15-
public class MCAnyData extends MNIMethodContainer {
16-
17-
static HashMap<String, Function4<Var<?>[], Var<?>[], CanSelectMember, ValueWrapper<Var<?>>, java.lang.Void>> methods;
18-
19-
static {
20-
methods = new HashMap<>();
21-
methods.put("toString", (vars, vars2, canSelectMember, varValueWrapper) -> {
22-
//不会有参数
23-
Function.Companion.addCommand("tellraw @a " + canSelectMember);
24-
return null;
25-
});
26-
methods.put("getJavaVar", (r, n, caller, re) -> {
27-
//不会有参数
28-
re.setValue(new JavaVar(caller, UUID.randomUUID().toString()));
29-
return null;
30-
});
31-
}
32-
33-
@NotNull
34-
@Override
35-
public Function4<Var<?>[], Var<?>[], CanSelectMember, ValueWrapper<Var<?>>, java.lang.Void> getMNIMethod(@NotNull String name) {
36-
return methods.get(name);
16+
public class MCAnyData {
17+
@MNIRegister(normalParams = {"any a"}, returnType = "JavaVar")
18+
public static void getJavaVar(@NotNull Var<?> value, ValueWrapper<Var<?>> returnValue){
19+
var re = new JavaVar(value, UUID.randomUUID().toString());
20+
returnValue.setValue(re);
3721
}
3822
}

src/main/java/top/mcfpp/mni/MCIntData.java

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,7 @@
1313

1414
import java.util.HashMap;
1515

16-
public class MCIntData extends MNIMethodContainer {
17-
static HashMap<String, Function4<Var<?>[], Var<?>[], CanSelectMember, ValueWrapper<Var<?>>, java.lang.Void>> methods;
18-
19-
static {
20-
methods = new HashMap<>();
21-
methods.put("test", (vars, vars2, canSelectMember, varValueWrapper) -> {
22-
//不会有参数
23-
Function.Companion.addCommand("say " + canSelectMember);
24-
return null;
25-
});
26-
27-
methods.put("qwq", (vars, vars2, canSelectMember, varValueWrapper) -> {
28-
return null;
29-
});
30-
}
16+
public class MCIntData {
3117

3218
@MNIRegister(caller = "int")
3319
public void test(MCInt caller) {
@@ -40,10 +26,4 @@ public void qwq(MCInt i, MCInt caller, ValueWrapper<JavaVar> re){
4026
Function.Companion.addCommand("say i=" + i);
4127
Function.Companion.addCommand("say this=" + caller);
4228
}
43-
44-
@NotNull
45-
@Override
46-
public Function4<Var<?>[], Var<?>[], CanSelectMember, ValueWrapper<Var<?>>, java.lang.Void> getMNIMethod(@NotNull String name) {
47-
return methods.get(name);
48-
}
4929
}

0 commit comments

Comments
 (0)