package org.scribble.parser.ast.global;
import org.antlr.runtime.tree.CommonTree;
import org.scribble.ast.AstFactoryImpl;
import org.scribble.ast.NonRoleArgList;
import org.scribble.ast.RoleArgList;
import org.scribble.ast.global.GDo;
import org.scribble.ast.name.qualified.GProtocolNameNode;
import org.scribble.parser.ScribParser;
import org.scribble.parser.ast.name.AntlrQualifiedName;
import org.scribble.util.ScribParserException;
public class AntlrGDo
{
public static final int MEMBERNAME_CHILD_INDEX = 0;
public static final int ARGUMENTLIST_CHILD_INDEX = 1;
public static final int ROLEINSTANTIATIONLIST_CHILD_INDEX = 2;
public static GDo parseGDo(ScribParser parser, CommonTree ct) throws ScribParserException
{
RoleArgList ril = (RoleArgList) parser.parse(getRoleArgListChild(ct));
NonRoleArgList al = (NonRoleArgList) parser.parse(getNonRoleArgListChild(ct));
GProtocolNameNode pnn = AntlrQualifiedName.toGProtocolNameNode(getProtocolNameChild(ct));
return AstFactoryImpl.FACTORY.GDo(ct, ril, al, pnn);
}
public static CommonTree getProtocolNameChild(CommonTree ct)
{
return (CommonTree) ct.getChild(MEMBERNAME_CHILD_INDEX);
}
public static CommonTree getNonRoleArgListChild(CommonTree ct)
{
return (CommonTree) ct.getChild(ARGUMENTLIST_CHILD_INDEX);
}
public static CommonTree getRoleArgListChild(CommonTree ct)
{
return (CommonTree) ct.getChild(ROLEINSTANTIATIONLIST_CHILD_INDEX);
}
}