package org.scribble.parser.ast.global;
import org.antlr.runtime.tree.CommonTree;
import org.scribble.ast.AstFactoryImpl;
import org.scribble.ast.global.GProtocolBlock;
import org.scribble.ast.global.GRecursion;
import org.scribble.ast.name.simple.RecVarNode;
import org.scribble.parser.ScribParser;
import org.scribble.parser.ast.name.AntlrSimpleName;
import org.scribble.util.ScribParserException;
public class AntlrGRecursion
{
public static final int RECURSIONVAR_CHILD_INDEX = 0;
public static final int BLOCK_CHILD_INDEX = 1;
public static GRecursion parseGRecursion(ScribParser parser, CommonTree ct) throws ScribParserException
{
RecVarNode recvar = AntlrSimpleName.toRecVarNode(getRecVarChild(ct));
GProtocolBlock block = (GProtocolBlock) parser.parse(getBlockChild(ct));
return AstFactoryImpl.FACTORY.GRecursion(ct, recvar, block);
}
public static final CommonTree getRecVarChild(CommonTree ct)
{
return (CommonTree) ct.getChild(RECURSIONVAR_CHILD_INDEX);
}
public static final CommonTree getBlockChild(CommonTree ct)
{
return (CommonTree) ct.getChild(BLOCK_CHILD_INDEX);
}
}