forked from JavaTX/JavaCompilerCore
methods in statementgenerator implemented
Tests + visit
This commit is contained in:
parent
8e1c1765ff
commit
b88b9e2534
@ -1,5 +1,6 @@
|
|||||||
package de.dhbwstuttgart.parser.SyntaxTreeGenerator;
|
package de.dhbwstuttgart.parser.SyntaxTreeGenerator;
|
||||||
|
|
||||||
|
import com.sun.javafx.fxml.expression.UnaryExpression;
|
||||||
import de.dhbwstuttgart.exceptions.NotImplementedException;
|
import de.dhbwstuttgart.exceptions.NotImplementedException;
|
||||||
import de.dhbwstuttgart.parser.NullToken;
|
import de.dhbwstuttgart.parser.NullToken;
|
||||||
import de.dhbwstuttgart.parser.antlr.Java8Parser;
|
import de.dhbwstuttgart.parser.antlr.Java8Parser;
|
||||||
@ -278,6 +279,7 @@ public class StatementGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.PostIncrementExpressionContext stmt) {
|
private Statement convert(Java8Parser.PostIncrementExpressionContext stmt) {
|
||||||
|
Expression expr = convert(stmt.postfixExpression());
|
||||||
//TODO
|
//TODO
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
@ -320,9 +322,19 @@ public class StatementGenerator {
|
|||||||
return new IfStmt(TypePlaceholder.fresh(stmt.getStart()),expr,thenBlock,elseBlock,stmt.getStart());
|
return new IfStmt(TypePlaceholder.fresh(stmt.getStart()),expr,thenBlock,elseBlock,stmt.getStart());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.AssertStatementContext stmt){
|
private Statement convert(Java8Parser.AssertStatementContext stmt)
|
||||||
//TODO
|
{
|
||||||
throw new NotImplementedException();
|
if (stmt.expression().size()<2)
|
||||||
|
{
|
||||||
|
Expression expr = convert(stmt.expression(0));
|
||||||
|
return new AssertStmt(expr,stmt.getStart());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Expression expr1 = convert(stmt.expression(0));
|
||||||
|
Expression expr2 = convert(stmt.expression(1));
|
||||||
|
return new AssertStmt(expr1,expr2,stmt.getStart());
|
||||||
|
}
|
||||||
|
//TODO: Check Felix_K
|
||||||
}
|
}
|
||||||
|
|
||||||
private Statement convert(Java8Parser.SwitchStatementContext stmt){
|
private Statement convert(Java8Parser.SwitchStatementContext stmt){
|
||||||
|
22
src/de/dhbwstuttgart/syntaxtree/statement/AssertStmt.java
Normal file
22
src/de/dhbwstuttgart/syntaxtree/statement/AssertStmt.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package de.dhbwstuttgart.syntaxtree.statement;
|
||||||
|
|
||||||
|
import de.dhbwstuttgart.syntaxtree.StatementVisitor;
|
||||||
|
import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric;
|
||||||
|
import org.antlr.v4.runtime.Token;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Felix_K on 21.09.2017.
|
||||||
|
*/
|
||||||
|
public class AssertStmt extends Statement
|
||||||
|
{
|
||||||
|
final Expression expr;
|
||||||
|
public AssertStmt(RefTypeOrTPHOrWildcardOrGeneric type, Expression expr, Token offset){
|
||||||
|
super(type, offset);
|
||||||
|
this.expr=expr;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void accept(StatementVisitor visitor) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package de.dhbwstuttgart.syntaxtree.statement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Felix_K on 21.09.2017.
|
||||||
|
*/
|
||||||
|
public class CatchesStatement
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
@ -232,7 +232,11 @@ public class OutputGenerator implements ASTVisitor {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visit(IfStmt ifStmt) {
|
public void visit(IfStmt ifStmt) {
|
||||||
|
out.append("if");
|
||||||
|
ifStmt.expr.accept(this);
|
||||||
|
ifStmt.then_block.accept(this);
|
||||||
|
out.append("\nelse");
|
||||||
|
ifStmt.else_block.accept(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
24
test/parser/IfTest.jav
Normal file
24
test/parser/IfTest.jav
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
class IfTest
|
||||||
|
{
|
||||||
|
|
||||||
|
public void IfStatementTest();
|
||||||
|
|
||||||
|
public void ifThenNoShortIfTest()
|
||||||
|
{
|
||||||
|
if(y)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ifThenElseTest()
|
||||||
|
{
|
||||||
|
if(z)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -38,10 +38,11 @@ public class JavaTXCompilerTest extends JavaTXCompiler {
|
|||||||
//filesToTest.add(new File(rootDirectory+"Import.jav"));
|
//filesToTest.add(new File(rootDirectory+"Import.jav"));
|
||||||
filesToTest.add(new File(rootDirectory+"BreakTest.jav"));
|
filesToTest.add(new File(rootDirectory+"BreakTest.jav"));
|
||||||
filesToTest.add(new File(rootDirectory+"WhileTest.jav"));
|
filesToTest.add(new File(rootDirectory+"WhileTest.jav"));
|
||||||
|
filesToTest.add(new File(rootDirectory+"IfTest.jav"));
|
||||||
for(File f : filesToTest){
|
for(File f : filesToTest){
|
||||||
SourceFile sf = this.parse(f);
|
SourceFile sf = this.parse(f);
|
||||||
System.out.println(ASTTypePrinter.print(this.sourceFiles.get(sourceFiles.size()-1)));
|
System.out.println(ASTTypePrinter.print(this.sourceFiles.get(sourceFiles.size()-1)));
|
||||||
|
System.out.println("-----------------------------------------------------------------------------------");
|
||||||
/*
|
/*
|
||||||
for(ResultSet resultSet : this.typeInference()){
|
for(ResultSet resultSet : this.typeInference()){
|
||||||
Set<TypeInsert> result = TypeInsertFactory.createTypeInsertPoints(sf, resultSet);
|
Set<TypeInsert> result = TypeInsertFactory.createTypeInsertPoints(sf, resultSet);
|
||||||
|
Loading…
Reference in New Issue
Block a user