/// <summary> Parse the input and return the root of
/// AST node structure.
/// </summary>
/// <remarks>
/// In the event that it runs out of parsers in the
/// pool, it will create and let them be GC'd
/// dynamically, logging that it has to do that. This
/// is considered an exceptional condition. It is
/// expected that the user will set the
/// PARSER_POOL_SIZE property appropriately for their
/// application. We will revisit this.
/// </remarks>
/// <param name="reader">TextReader retrieved by a resource loader</param>
/// <param name="templateName">name of the template being parsed</param>
public static SimpleNode Parse(TextReader reader, String templateName)
{
return(ri.Parse(reader, templateName));
}