forked from JavaTX/JavaCompilerCore
add Fields Test. Felder können ohne Typ oder mit var-Keyword initialisiert werden
This commit is contained in:
parent
1061f355ff
commit
df95c244bf
@ -23,7 +23,7 @@ public class StatementGenerator {
|
||||
private JavaClassRegistry reg;
|
||||
private Map<String, RefTypeOrTPHOrWildcardOrGeneric> localVars;
|
||||
private GenericsRegistry generics;
|
||||
private String VAR_KEYWORD = "var";
|
||||
public static final String VAR_KEYWORD = "var";
|
||||
|
||||
public StatementGenerator(JavaClassRegistry reg, GenericsRegistry generics, Map<String, RefTypeOrTPHOrWildcardOrGeneric> localVars){
|
||||
this.reg = reg;
|
||||
|
@ -310,8 +310,9 @@ public class SyntaxTreeGenerator{
|
||||
modifiers+=(convert(fieldModifierContext));
|
||||
}
|
||||
RefTypeOrTPHOrWildcardOrGeneric fieldType;
|
||||
if(fieldDeclarationContext.unannType() != null){
|
||||
fieldType = TypeGenerator.convert(fieldDeclarationContext.unannType(), reg, generics);
|
||||
if(fieldDeclarationContext.unannTypeOrAuto() != null
|
||||
&& fieldDeclarationContext.unannTypeOrAuto().unannType().getText().equals(StatementGenerator.VAR_KEYWORD)){
|
||||
fieldType = TypeGenerator.convert(fieldDeclarationContext.unannTypeOrAuto().unannType(), reg, generics);
|
||||
}else{
|
||||
fieldType = TypePlaceholder.fresh(fieldDeclarationContext.getStart());
|
||||
}
|
||||
|
@ -333,7 +333,7 @@ classMemberDeclaration
|
||||
;
|
||||
|
||||
fieldDeclaration
|
||||
: fieldModifier* unannType? variableDeclaratorList ';'
|
||||
: fieldModifier* unannTypeOrAuto? variableDeclaratorList ';'
|
||||
;
|
||||
|
||||
fieldModifier
|
||||
|
@ -3526,8 +3526,8 @@ public class Java8Parser extends Parser {
|
||||
public FieldModifierContext fieldModifier(int i) {
|
||||
return getRuleContext(FieldModifierContext.class,i);
|
||||
}
|
||||
public UnannTypeContext unannType() {
|
||||
return getRuleContext(UnannTypeContext.class,0);
|
||||
public UnannTypeOrAutoContext unannTypeOrAuto() {
|
||||
return getRuleContext(UnannTypeOrAutoContext.class,0);
|
||||
}
|
||||
public FieldDeclarationContext(ParserRuleContext parent, int invokingState) {
|
||||
super(parent, invokingState);
|
||||
@ -3570,7 +3570,7 @@ public class Java8Parser extends Parser {
|
||||
case 1:
|
||||
{
|
||||
setState(878);
|
||||
unannType();
|
||||
unannTypeOrAuto();
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -18008,33 +18008,33 @@ public class Java8Parser extends Parser {
|
||||
"\u0365\3\2\2\2\u0368\u0366\3\2\2\2\u0368\u0367\3\2\2\2\u0369i\3\2\2\2"+
|
||||
"\u036a\u036c\5l\67\2\u036b\u036a\3\2\2\2\u036c\u036f\3\2\2\2\u036d\u036b"+
|
||||
"\3\2\2\2\u036d\u036e\3\2\2\2\u036e\u0371\3\2\2\2\u036f\u036d\3\2\2\2\u0370"+
|
||||
"\u0372\5v<\2\u0371\u0370\3\2\2\2\u0371\u0372\3\2\2\2\u0372\u0373\3\2\2"+
|
||||
"\2\u0373\u0374\5n8\2\u0374\u0375\7A\2\2\u0375k\3\2\2\2\u0376\u037f\5\u00e8"+
|
||||
"u\2\u0377\u037f\7%\2\2\u0378\u037f\7$\2\2\u0379\u037f\7#\2\2\u037a\u037f"+
|
||||
"\7(\2\2\u037b\u037f\7\24\2\2\u037c\u037f\7\60\2\2\u037d\u037f\7\63\2\2"+
|
||||
"\u037e\u0376\3\2\2\2\u037e\u0377\3\2\2\2\u037e\u0378\3\2\2\2\u037e\u0379"+
|
||||
"\3\2\2\2\u037e\u037a\3\2\2\2\u037e\u037b\3\2\2\2\u037e\u037c\3\2\2\2\u037e"+
|
||||
"\u037d\3\2\2\2\u037fm\3\2\2\2\u0380\u0385\5p9\2\u0381\u0382\7B\2\2\u0382"+
|
||||
"\u0384\5p9\2\u0383\u0381\3\2\2\2\u0384\u0387\3\2\2\2\u0385\u0383\3\2\2"+
|
||||
"\2\u0385\u0386\3\2\2\2\u0386o\3\2\2\2\u0387\u0385\3\2\2\2\u0388\u038b"+
|
||||
"\5r:\2\u0389\u038a\7D\2\2\u038a\u038c\5t;\2\u038b\u0389\3\2\2\2\u038b"+
|
||||
"\u038c\3\2\2\2\u038cq\3\2\2\2\u038d\u038f\7h\2\2\u038e\u0390\5\"\22\2"+
|
||||
"\u038f\u038e\3\2\2\2\u038f\u0390\3\2\2\2\u0390s\3\2\2\2\u0391\u0394\5"+
|
||||
"\u01a2\u00d2\2\u0392\u0394\5\u00fa~\2\u0393\u0391\3\2\2\2\u0393\u0392"+
|
||||
"\3\2\2\2\u0394u\3\2\2\2\u0395\u0398\5x=\2\u0396\u0398\5z>\2\u0397\u0395"+
|
||||
"\3\2\2\2\u0397\u0396\3\2\2\2\u0398w\3\2\2\2\u0399\u039c\5\b\5\2\u039a"+
|
||||
"\u039c\7\5\2\2\u039b\u0399\3\2\2\2\u039b\u039a\3\2\2\2\u039cy\3\2\2\2"+
|
||||
"\u039d\u03a1\5|?\2\u039e\u03a1\5\u008aF\2\u039f\u03a1\5\u008cG\2\u03a0"+
|
||||
"\u039d\3\2\2\2\u03a0\u039e\3\2\2\2\u03a0\u039f\3\2\2\2\u03a1{\3\2\2\2"+
|
||||
"\u03a2\u03a5\5\u0082B\2\u03a3\u03a5\5\u0088E\2\u03a4\u03a2\3\2\2\2\u03a4"+
|
||||
"\u03a3\3\2\2\2\u03a5\u03aa\3\2\2\2\u03a6\u03a9\5\u0080A\2\u03a7\u03a9"+
|
||||
"\5\u0086D\2\u03a8\u03a6\3\2\2\2\u03a8\u03a7\3\2\2\2\u03a9\u03ac\3\2\2"+
|
||||
"\2\u03aa\u03a8\3\2\2\2\u03aa\u03ab\3\2\2\2\u03ab}\3\2\2\2\u03ac\u03aa"+
|
||||
"\3\2\2\2\u03ad\u03af\7h\2\2\u03ae\u03b0\5,\27\2\u03af\u03ae\3\2\2\2\u03af"+
|
||||
"\u03b0\3\2\2\2\u03b0\u03be\3\2\2\2\u03b1\u03b2\5|?\2\u03b2\u03b6\7C\2"+
|
||||
"\2\u03b3\u03b5\5\u00e8u\2\u03b4\u03b3\3\2\2\2\u03b5\u03b8\3\2\2\2\u03b6"+
|
||||
"\u03b4\3\2\2\2\u03b6\u03b7\3\2\2\2\u03b7\u03b9\3\2\2\2\u03b8\u03b6\3\2"+
|
||||
"\2\2\u03b9\u03bb\7h\2\2\u03ba\u03bc\5,\27\2\u03bb\u03ba\3\2\2\2\u03bb"+
|
||||
"\u0372\5\u0106\u0084\2\u0371\u0370\3\2\2\2\u0371\u0372\3\2\2\2\u0372\u0373"+
|
||||
"\3\2\2\2\u0373\u0374\5n8\2\u0374\u0375\7A\2\2\u0375k\3\2\2\2\u0376\u037f"+
|
||||
"\5\u00e8u\2\u0377\u037f\7%\2\2\u0378\u037f\7$\2\2\u0379\u037f\7#\2\2\u037a"+
|
||||
"\u037f\7(\2\2\u037b\u037f\7\24\2\2\u037c\u037f\7\60\2\2\u037d\u037f\7"+
|
||||
"\63\2\2\u037e\u0376\3\2\2\2\u037e\u0377\3\2\2\2\u037e\u0378\3\2\2\2\u037e"+
|
||||
"\u0379\3\2\2\2\u037e\u037a\3\2\2\2\u037e\u037b\3\2\2\2\u037e\u037c\3\2"+
|
||||
"\2\2\u037e\u037d\3\2\2\2\u037fm\3\2\2\2\u0380\u0385\5p9\2\u0381\u0382"+
|
||||
"\7B\2\2\u0382\u0384\5p9\2\u0383\u0381\3\2\2\2\u0384\u0387\3\2\2\2\u0385"+
|
||||
"\u0383\3\2\2\2\u0385\u0386\3\2\2\2\u0386o\3\2\2\2\u0387\u0385\3\2\2\2"+
|
||||
"\u0388\u038b\5r:\2\u0389\u038a\7D\2\2\u038a\u038c\5t;\2\u038b\u0389\3"+
|
||||
"\2\2\2\u038b\u038c\3\2\2\2\u038cq\3\2\2\2\u038d\u038f\7h\2\2\u038e\u0390"+
|
||||
"\5\"\22\2\u038f\u038e\3\2\2\2\u038f\u0390\3\2\2\2\u0390s\3\2\2\2\u0391"+
|
||||
"\u0394\5\u01a2\u00d2\2\u0392\u0394\5\u00fa~\2\u0393\u0391\3\2\2\2\u0393"+
|
||||
"\u0392\3\2\2\2\u0394u\3\2\2\2\u0395\u0398\5x=\2\u0396\u0398\5z>\2\u0397"+
|
||||
"\u0395\3\2\2\2\u0397\u0396\3\2\2\2\u0398w\3\2\2\2\u0399\u039c\5\b\5\2"+
|
||||
"\u039a\u039c\7\5\2\2\u039b\u0399\3\2\2\2\u039b\u039a\3\2\2\2\u039cy\3"+
|
||||
"\2\2\2\u039d\u03a1\5|?\2\u039e\u03a1\5\u008aF\2\u039f\u03a1\5\u008cG\2"+
|
||||
"\u03a0\u039d\3\2\2\2\u03a0\u039e\3\2\2\2\u03a0\u039f\3\2\2\2\u03a1{\3"+
|
||||
"\2\2\2\u03a2\u03a5\5\u0082B\2\u03a3\u03a5\5\u0088E\2\u03a4\u03a2\3\2\2"+
|
||||
"\2\u03a4\u03a3\3\2\2\2\u03a5\u03aa\3\2\2\2\u03a6\u03a9\5\u0080A\2\u03a7"+
|
||||
"\u03a9\5\u0086D\2\u03a8\u03a6\3\2\2\2\u03a8\u03a7\3\2\2\2\u03a9\u03ac"+
|
||||
"\3\2\2\2\u03aa\u03a8\3\2\2\2\u03aa\u03ab\3\2\2\2\u03ab}\3\2\2\2\u03ac"+
|
||||
"\u03aa\3\2\2\2\u03ad\u03af\7h\2\2\u03ae\u03b0\5,\27\2\u03af\u03ae\3\2"+
|
||||
"\2\2\u03af\u03b0\3\2\2\2\u03b0\u03be\3\2\2\2\u03b1\u03b2\5|?\2\u03b2\u03b6"+
|
||||
"\7C\2\2\u03b3\u03b5\5\u00e8u\2\u03b4\u03b3\3\2\2\2\u03b5\u03b8\3\2\2\2"+
|
||||
"\u03b6\u03b4\3\2\2\2\u03b6\u03b7\3\2\2\2\u03b7\u03b9\3\2\2\2\u03b8\u03b6"+
|
||||
"\3\2\2\2\u03b9\u03bb\7h\2\2\u03ba\u03bc\5,\27\2\u03bb\u03ba\3\2\2\2\u03bb"+
|
||||
"\u03bc\3\2\2\2\u03bc\u03be\3\2\2\2\u03bd\u03ad\3\2\2\2\u03bd\u03b1\3\2"+
|
||||
"\2\2\u03be\177\3\2\2\2\u03bf\u03c3\7C\2\2\u03c0\u03c2\5\u00e8u\2\u03c1"+
|
||||
"\u03c0\3\2\2\2\u03c2\u03c5\3\2\2\2\u03c3\u03c1\3\2\2\2\u03c3\u03c4\3\2"+
|
||||
|
Binary file not shown.
11
test/javFiles/Fields.jav
Normal file
11
test/javFiles/Fields.jav
Normal file
@ -0,0 +1,11 @@
|
||||
import java.lang.String;
|
||||
|
||||
class Fields{
|
||||
String test2 = "test";
|
||||
test;
|
||||
m(){
|
||||
var test3;
|
||||
return test;
|
||||
}
|
||||
|
||||
}
|
@ -85,6 +85,10 @@ public class JavaTXCompilerTest {
|
||||
public void addLong() throws IOException, ClassNotFoundException {
|
||||
execute(new File(rootDirectory+"AddLong.jav"));
|
||||
}
|
||||
@Test
|
||||
public void fields() throws IOException, ClassNotFoundException {
|
||||
execute(new File(rootDirectory+"Fields.jav"));
|
||||
}
|
||||
|
||||
private static class TestResultSet{
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user