package org.scribble.ast;
import org.antlr.runtime.tree.CommonTree;
import org.scribble.main.ScribbleException;
import org.scribble.sesstype.kind.ProtocolKind;
import org.scribble.visit.AstVisitor;
public abstract class ProtocolDef<K extends ProtocolKind> extends ScribNodeBase implements ProtocolKindNode<K>
{
public final ProtocolBlock<K> block;
protected ProtocolDef(CommonTree source, ProtocolBlock<K> block)
{
super(source);
this.block = block;
}
public abstract ProtocolDef<K> reconstruct(ProtocolBlock<K> block);
public abstract ProtocolBlock<K> getBlock();
@Override
public ProtocolDef<K> visitChildren(AstVisitor nv) throws ScribbleException
{
ProtocolBlock<K> block = visitChildWithClassEqualityCheck(this, this.block, nv);
return reconstruct(block);
}
@Override
public String toString()
{
return this.block.toString();
}
}