astra.ast.term.ListTerm Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of astra-compiler Show documentation
Show all versions of astra-compiler Show documentation
Core compiler artifact for the ASTRA Language
package astra.ast.term;
import java.util.List;
import astra.ast.core.AbstractElement;
import astra.ast.core.IElementVisitor;
import astra.ast.core.ITerm;
import astra.ast.core.IType;
import astra.ast.core.ParseException;
import astra.ast.core.Token;
import astra.ast.type.BasicType;
public class ListTerm extends AbstractElement implements ITerm {
List list;
public ListTerm(List list, Token start, Token end, String source) {
super(start, end, source);
this.list = list;
}
public Object accept(IElementVisitor visitor, Object data) throws ParseException {
return visitor.visit(this, data);
}
public IType type() {
return new BasicType(Token.LIST);
}
public String toString() {
String out = "[ ";
boolean first = true;
for (ITerm term : list) {
if (first) first = false; else out += ", ";
out += term.toString();
}
return out + " ]";
}
public List terms() {
return list;
}
}