45 lines
1.2 KiB
Java
45 lines
1.2 KiB
Java
/*
|
|
* Code formatter project
|
|
* CS 4481
|
|
*/
|
|
package submit.ast;
|
|
|
|
/**
|
|
*
|
|
* @author edwajohn
|
|
*/
|
|
public class If extends AbstractNode implements Statement {
|
|
|
|
private final Expression expression;
|
|
private final Statement trueStatement;
|
|
private final Statement falseStatement;
|
|
|
|
public If(Expression expression, Statement trueStatement, Statement falseStatement) {
|
|
this.expression = expression;
|
|
this.trueStatement = trueStatement;
|
|
this.falseStatement = falseStatement;
|
|
}
|
|
|
|
@Override
|
|
public void toCminus(StringBuilder builder, String prefix) {
|
|
builder.append(prefix).append("if (");
|
|
expression.toCminus(builder, prefix);
|
|
builder.append(")\n");
|
|
if (trueStatement instanceof CompoundStatement) {
|
|
trueStatement.toCminus(builder, prefix);
|
|
} else {
|
|
trueStatement.toCminus(builder, prefix + " ");
|
|
}
|
|
if (falseStatement != null) {
|
|
builder.append(prefix).append("else\n");
|
|
// falseStatement.toCminus(builder, prefix);
|
|
if (falseStatement instanceof CompoundStatement) {
|
|
falseStatement.toCminus(builder, prefix);
|
|
} else {
|
|
falseStatement.toCminus(builder, prefix + " ");
|
|
}
|
|
}
|
|
// builder.append(prefix).append("}");
|
|
}
|
|
}
|