summaryrefslogtreecommitdiff
path: root/Homework/cs5300/p4-formatter/submit/ast/Call.java
blob: b5c8a37410fa3c74cf317f562df29136258b67f8 (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
package submit.ast;

import java.util.ArrayList;
import java.util.List;

public class Call implements Expression {
    ArrayList<Expression> expressions;
    String id;

    public Call(String id, List<Expression> expressions) {
        this.id = id;
        this.expressions = new ArrayList<>(expressions);
    }

    public void toCminus(StringBuilder builder, String prefix) {
        builder.append(prefix);
        builder.append(id).append("(");
        int numExpr = expressions.size();
        if (numExpr > 0)
            expressions.get(0).toCminus(builder, "");
        if (numExpr > 1)
            for (Expression expr : expressions.subList(1, numExpr))
                expr.toCminus(builder, ", ");
        builder.append(")");
    }
}