package com.babel17.syntaxtree;
public final class DefNode extends Node {
// pattern may be null
public DefNode(IdentifierNode id, PatternNode pattern,
Node rightSide, TypeIdNode returnType)
{
this.id = id;
this.pattern = pattern;
this.rightSide = rightSide;
this.returnType = returnType;
}
public IdentifierNode id() {
return id;
}
public PatternNode pattern() {
return pattern;
}
public Node rightSide() {
return rightSide;
}
public TypeIdNode returnType() {
return returnType;
}
public NodeList children() {
NodeList list = new NodeList();
if (returnType != null) list = list.cons(returnType);
list = list.cons(rightSide);
if (pattern != null) list = list.cons(pattern);
return list.cons(id);
}
private IdentifierNode id;
private PatternNode pattern;
private Node rightSide;
private TypeIdNode returnType;
}