package org.scribble.parser.ast.global;
import org.antlr.runtime.tree.CommonTree;
import org.scribble.ast.AstFactoryImpl;
import org.scribble.ast.NonRoleParamDeclList;
import org.scribble.ast.RoleDeclList;
import org.scribble.ast.global.GProtocolHeader;
import org.scribble.ast.name.qualified.GProtocolNameNode;
import org.scribble.parser.ScribParser;
import org.scribble.parser.ast.name.AntlrSimpleName;
import org.scribble.util.ScribParserException;
public class AntlrGProtocolHeader
{
public static final int NAME_CHILD_INDEX = 0;
public static final int PARAMETERDECLLIST_CHILD_INDEX = 1;
public static final int ROLEDECLLIST_CHILD_INDEX = 2;
public static GProtocolHeader parseGProtocolHeader(ScribParser parser, CommonTree ct) throws ScribParserException
{
GProtocolNameNode name = AntlrSimpleName.toGProtocolNameNode(getNameChild(ct));
RoleDeclList rdl = (RoleDeclList) parser.parse(getRoleDeclListChild(ct));
NonRoleParamDeclList pdl = (NonRoleParamDeclList) parser.parse(getParamDeclListChild(ct));
return AstFactoryImpl.FACTORY.GProtocolHeader(ct, name, rdl, pdl);
}
public static CommonTree getNameChild(CommonTree ct)
{
return (CommonTree) ct.getChild(NAME_CHILD_INDEX);
}
public static CommonTree getRoleDeclListChild(CommonTree ct)
{
return (CommonTree) ct.getChild(ROLEDECLLIST_CHILD_INDEX);
}
public static CommonTree getParamDeclListChild(CommonTree ct)
{
return (CommonTree) ct.getChild(PARAMETERDECLLIST_CHILD_INDEX);
}
}