public virtual CompiledTemplate DefineRegion(string enclosingTemplateName, IToken regionT, string template, IToken templateToken)
{
string name = regionT.Text;
template = Utility.TrimOneStartingNewline(template);
template = Utility.TrimOneTrailingNewline(template);
CompiledTemplate code = Compile(FileName, enclosingTemplateName, null, template, templateToken);
string mangled = GetMangledRegionName(enclosingTemplateName, name);
if (LookupTemplate(mangled) == null)
{
ErrorManager.CompiletimeError(ErrorType.NO_SUCH_REGION, null, regionT, enclosingTemplateName, name);
return new CompiledTemplate();
}
code.Name = mangled;
code.IsRegion = true;
code.RegionDefType = Template.RegionType.Explicit;
code.TemplateDefStartToken = regionT;
RawDefineTemplate(mangled, code, regionT);
code.DefineArgumentDefaultValueTemplates(this);
code.DefineImplicitlyDefinedTemplates(this); // define any anonymous subtemplates
return code;
}