forked from JavaTX/JavaCompilerCore
Started test driven bug fixing for SyntaxTreeGenerator
This commit is contained in:
parent
bf15ff693e
commit
f08744479a
@ -475,7 +475,7 @@ blockStatement
|
|||||||
;
|
;
|
||||||
|
|
||||||
localVariableDeclaration
|
localVariableDeclaration
|
||||||
: variableModifier* (VAR identifier '=' expression | typeType? variableDeclarators)
|
: variableModifier* (VAR identifier '=' expression | typeType variableDeclarators)
|
||||||
;
|
;
|
||||||
|
|
||||||
identifier
|
identifier
|
||||||
|
@ -381,8 +381,12 @@ public class StatementGenerator {
|
|||||||
type = TypeGenerator.convert(declaration.typeType(), reg, generics);
|
type = TypeGenerator.convert(declaration.typeType(), reg, generics);
|
||||||
}
|
}
|
||||||
if (Objects.isNull(declaration.variableDeclarators())) {
|
if (Objects.isNull(declaration.variableDeclarators())) {
|
||||||
Token offset = declaration.identifier().getStart();
|
IdentifierContext identifier = declaration.identifier();
|
||||||
ret.add(new Assign(new AssignToLocal(new LocalVar(declaration.identifier().getText(), type, offset)), convert(declaration.expression()), offset));
|
Token offset = identifier.getStart();
|
||||||
|
String name = identifier.getText();
|
||||||
|
ret.add(new LocalVarDecl(name, type, offset));
|
||||||
|
this.localVars.put(name, type);
|
||||||
|
ret.add(new Assign(new AssignToLocal(new LocalVar(name, type, offset)), convert(declaration.expression()), offset));
|
||||||
} else {
|
} else {
|
||||||
ret.addAll(generateLocalVariableAssignments(declaration.variableDeclarators().variableDeclarator(), type));
|
ret.addAll(generateLocalVariableAssignments(declaration.variableDeclarators().variableDeclarator(), type));
|
||||||
}
|
}
|
||||||
@ -545,9 +549,9 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ArgumentList argumentList = convertArguments(expr.expressionList());
|
ArgumentList argumentList = convertArguments(expr.expressionList());
|
||||||
ArrayList<RefTypeOrTPHOrWildcardOrGeneric> argTypes = argumentList.getArguments().stream().map(x -> (RefTypeOrTPHOrWildcardOrGeneric) TypePlaceholder.fresh(offset)).collect(Collectors.toCollection(ArrayList::new));
|
ArrayList<RefTypeOrTPHOrWildcardOrGeneric> signature = argumentList.getArguments().stream().map(x -> (RefTypeOrTPHOrWildcardOrGeneric) TypePlaceholder.fresh(offset)).collect(Collectors.toCollection(ArrayList::new));
|
||||||
|
signature.add(TypePlaceholder.fresh(offset)); // return type
|
||||||
MethodCall ret = new MethodCall(TypePlaceholder.fresh(offset), getReceiver(receiver), name, argumentList, TypePlaceholder.fresh(offset), argTypes, offset);
|
MethodCall ret = new MethodCall(TypePlaceholder.fresh(offset), getReceiver(receiver), name, argumentList, TypePlaceholder.fresh(offset), signature, offset);
|
||||||
ret.setStatement();
|
ret.setStatement();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -561,9 +565,9 @@ public class StatementGenerator {
|
|||||||
name = expr.SUPER().getText();
|
name = expr.SUPER().getText();
|
||||||
}
|
}
|
||||||
ArgumentList argumentList = convertArguments(expr.expressionList());
|
ArgumentList argumentList = convertArguments(expr.expressionList());
|
||||||
ArrayList<RefTypeOrTPHOrWildcardOrGeneric> argTypes = argumentList.getArguments().stream().map(x -> (RefTypeOrTPHOrWildcardOrGeneric) TypePlaceholder.fresh(offset)).collect(Collectors.toCollection(ArrayList::new));
|
ArrayList<RefTypeOrTPHOrWildcardOrGeneric> signature = argumentList.getArguments().stream().map(x -> (RefTypeOrTPHOrWildcardOrGeneric) TypePlaceholder.fresh(offset)).collect(Collectors.toCollection(ArrayList::new));
|
||||||
|
signature.add(TypePlaceholder.fresh(offset)); // return type
|
||||||
MethodCall ret = new MethodCall(TypePlaceholder.fresh(offset), getReceiver(receiver), name, argumentList, TypePlaceholder.fresh(offset), argTypes, offset);
|
MethodCall ret = new MethodCall(TypePlaceholder.fresh(offset), getReceiver(receiver), name, argumentList, TypePlaceholder.fresh(offset), signature, offset);
|
||||||
ret.setStatement();
|
ret.setStatement();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,9 @@ import org.junit.Test;
|
|||||||
import de.dhbwstuttgart.core.JavaTXCompiler;
|
import de.dhbwstuttgart.core.JavaTXCompiler;
|
||||||
import de.dhbwstuttgart.syntaxtree.visual.ASTPrinter;
|
import de.dhbwstuttgart.syntaxtree.visual.ASTPrinter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unit-Tests für den 'SyntaxTreeGenerator' aus dem Package 'parser' nach Vorbild der Klasse 'TestComplete' aus dem Test-Package 'targetast'
|
||||||
|
*/
|
||||||
public class TestComplete {
|
public class TestComplete {
|
||||||
private static HashMap<String, File[]> javFiles = new HashMap<>();
|
private static HashMap<String, File[]> javFiles = new HashMap<>();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user