summaryrefslogtreecommitdiff
path: root/Homework/cs5300/p4-formatter/submit/ast/ExpressionExpression.java
blob: cc79a1dce985e361a4613a9c75cec6bfabf4ed9f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package submit.ast;

public class ExpressionExpression implements Expression {
    private Mutable mutable;
    private Expression expression;
    private String op;

    public ExpressionExpression(Mutable mutable, Expression expression, String op) {
        this.mutable = mutable;
        this.expression = expression;
        this.op = op;
    }

    public ExpressionExpression(Mutable mutable, String op) {
        this.mutable = mutable;
        this.op = op;
    }

    @Override
    public void toCminus(StringBuilder builder, String prefix) {
        builder.append(prefix);
        mutable.toCminus(builder, "");
        if (op != null && expression != null)
            builder.append(" ");
        builder.append(op);
        if (expression != null) {
            builder.append(" ");
            expression.toCminus(builder, "");
        }
    }
}