astra.ast.term.ListSplitterTerm 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
The newest version!
package astra.ast.term;
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 ListSplitterTerm extends AbstractElement implements ITerm {
ITerm head;
ITerm tail;
public ListSplitterTerm(ITerm head, ITerm tail, Token start, Token end, String source) {
super(start, end, source);
this.head = head;
this.tail = tail;
}
public Object accept(IElementVisitor visitor, Object data) throws ParseException {
return visitor.visit(this, data);
}
public ITerm head() {
return head;
}
public ITerm tail() {
return tail;
}
public IType type() {
return new BasicType(Token.LIST);
}
public String toString() {
return "[" + head + "|" + tail + "]";
}
}