package org.scribble.ast.local; import org.antlr.runtime.tree.CommonTree; import org.scribble.ast.AstFactoryImpl; import org.scribble.ast.ProtocolBlock; import org.scribble.ast.ProtocolDef; import org.scribble.del.ScribDel; import org.scribble.sesstype.kind.Local; public class LProtocolDef extends ProtocolDef<Local> implements LNode { public LProtocolDef(CommonTree source, LProtocolBlock block) { super(source, block); } @Override protected LProtocolDef copy() { return new LProtocolDef(this.source, getBlock()); } @Override public LProtocolDef clone() { LProtocolBlock block = getBlock().clone(); return AstFactoryImpl.FACTORY.LProtocolDef(this.source, block); } @Override public LProtocolDef reconstruct(ProtocolBlock<Local> block) { ScribDel del = del(); LProtocolDef lpd = new LProtocolDef(this.source, (LProtocolBlock) block); lpd = (LProtocolDef) lpd.del(del); return lpd; } @Override public LProtocolBlock getBlock() { return (LProtocolBlock) this.block; } // FIXME: shouldn't be needed, but here due to Eclipse bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=436350 @Override public Local getKind() { return LNode.super.getKind(); } }