Antlr4.StringTemplate.TemplateGroup.DefineTemplate C# (CSharp) Method

DefineTemplate() public method

public DefineTemplate ( string fullyQualifiedTemplateName, IToken nameT, List args, string template, IToken templateToken ) : CompiledTemplate
fullyQualifiedTemplateName string
nameT IToken
args List
template string
templateToken IToken
return Antlr4.StringTemplate.Compiler.CompiledTemplate
        public virtual CompiledTemplate DefineTemplate(string fullyQualifiedTemplateName,
                                         IToken nameT,
                                         List<FormalArgument> args,
                                         string template,
                                         IToken templateToken)
        {
            if (Verbose)
                Console.WriteLine(string.Format("DefineTemplate({0})", fullyQualifiedTemplateName));

            if (fullyQualifiedTemplateName == null)
                throw new ArgumentNullException("fullyQualifiedTemplateName");
            if (fullyQualifiedTemplateName.Length == 0)
                throw new ArgumentException("empty template name", "fullyQualifiedTemplateName");
            if (fullyQualifiedTemplateName.IndexOf('.') >= 0)
                throw new ArgumentException("cannot have '.' in template names", "fullyQualifiedTemplateName");
            if (fullyQualifiedTemplateName[0] != '/')
                throw new ArgumentException("Expected a fully qualified template name.", "fullyQualifiedTemplateName");

            template = Utility.TrimOneStartingNewline(template);
            template = Utility.TrimOneTrailingNewline(template);
            // compile, passing in templateName as enclosing name for any embedded regions
            CompiledTemplate code = Compile(FileName, fullyQualifiedTemplateName, args, template, templateToken);
            code.Name = fullyQualifiedTemplateName;
            RawDefineTemplate(fullyQualifiedTemplateName, code, nameT);
            code.DefineArgumentDefaultValueTemplates(this);
            code.DefineImplicitlyDefinedTemplates(this); // define any anonymous subtemplates

            return code;
        }

Same methods

TemplateGroup::DefineTemplate ( string name, string template ) : CompiledTemplate
TemplateGroup::DefineTemplate ( string name, string template, string arguments ) : CompiledTemplate

Usage Example

 public void TestIndirectMap()
 {
     TemplateGroup group = new TemplateGroup();
     group.DefineTemplate("a", "[<x>]", new string[] { "x" });
     group.DefineTemplate("test", "hi <names:(templateName)()>!", new string[] { "names", "templateName" });
     Template st = group.GetInstanceOf("test");
     st.Add("names", "Ter");
     st.Add("names", "Tom");
     st.Add("names", "Sumana");
     st.Add("templateName", "a");
     string expected =
         "hi [Ter][Tom][Sumana]!";
     string result = st.Render();
     Assert.AreEqual(expected, result);
 }
All Usage Examples Of Antlr4.StringTemplate.TemplateGroup::DefineTemplate