package org.scribble.parser.ast; import org.antlr.runtime.tree.CommonTree; import org.scribble.ast.MessageSigNode; import org.scribble.ast.AstFactoryImpl; import org.scribble.ast.PayloadElemList; import org.scribble.ast.name.simple.OpNode; import org.scribble.parser.ScribParser; import org.scribble.parser.ast.name.AntlrSimpleName; import org.scribble.util.ScribParserException; public class AntlrMessageSig { public static final int OPERATOR_CHILD_INDEX = 0; public static final int PAYLOAD_CHILD_INDEX = 1; public static MessageSigNode parseMessageSig(ScribParser parser, CommonTree ct) throws ScribParserException { OpNode op = AntlrSimpleName.toOpNode(getOpChild(ct)); PayloadElemList payload = (PayloadElemList) parser.parse(getPayloadElemListChild(ct)); return AstFactoryImpl.FACTORY.MessageSigNode(ct, op, payload); } public static CommonTree getOpChild(CommonTree ct) { return (CommonTree) ct.getChild(OPERATOR_CHILD_INDEX); } public static CommonTree getPayloadElemListChild(CommonTree ct) { return (CommonTree) ct.getChild(PAYLOAD_CHILD_INDEX); } }