/// <exclude/>
public static object create(string cls_name,Lexer yyl)
{
TCreator cr = (TCreator) yyl.tokens.types[cls_name];
// Console.WriteLine("TCreating {0} <{1}>",cls_name,yyl.yytext);
if (cr==null)
yyl.tokens.erh.Error(new CSToolsException(6,yyl,cls_name,String.Format("no factory for {0}",cls_name)));
try
{
return cr(yyl);
}
catch (CSToolsException x)
{
yyl.tokens.erh.Error(x);
}
catch (Exception e)
{
yyl.tokens.erh.Error(new CSToolsException(7,yyl,cls_name,
String.Format("Line {0}: Create of {1} failed ({2})",yyl.Saypos(yyl.m_pch),cls_name,e.Message)));
}
int j = cls_name.LastIndexOf('_');
if (j>0)
{
cr = (TCreator)yyl.tokens.types[cls_name.Substring(0,j)];
if (cr!=null)
return cr(yyl);
}
return null;
}