public virtual void DefineArgumentDefaultValueTemplates(TemplateGroup group) { if (FormalArguments == null) { return; } foreach (FormalArgument fa in FormalArguments) { if (fa.DefaultValueToken != null) { if (fa.DefaultValueToken.Type == GroupParser.ANONYMOUS_TEMPLATE) { string argSTname = fa.Name + "_default_value"; TemplateCompiler c2 = new TemplateCompiler(group); string defArgTemplate = Utility.Strip(fa.DefaultValueToken.Text, 1); fa.CompiledDefaultValue = c2.Compile(group.FileName, argSTname, null, defArgTemplate, fa.DefaultValueToken); fa.CompiledDefaultValue.name = argSTname; fa.CompiledDefaultValue.DefineImplicitlyDefinedTemplates(group); } else if (fa.DefaultValueToken.Type == GroupParser.STRING) { fa.DefaultValue = Utility.Strip(fa.DefaultValueToken.Text, 1); } else { // true or false fa.DefaultValue = fa.DefaultValueToken.Type == GroupParser.TRUE; } } } }
public static void main(string[] args) { TemplateCompiler c = new TemplateCompiler(new TemplateGroup()); string template = File.ReadAllText(args[0]); List <FormalArgument> a = new List <FormalArgument>(); a.Add(new FormalArgument("x")); string n = Path.GetFileNameWithoutExtension(args[0]); c.Compile(args[0], n, a, template, null); }
public virtual void DefineArgumentDefaultValueTemplates(TemplateGroup group) { if (FormalArguments == null) { return; } foreach (FormalArgument fa in FormalArguments) { if (fa.DefaultValueToken != null) { switch (fa.DefaultValueToken.Type) { case GroupParser.ANONYMOUS_TEMPLATE: string argSTname = fa.Name + "_default_value"; TemplateCompiler c2 = new TemplateCompiler(group); string defArgTemplate = Utility.Strip(fa.DefaultValueToken.Text, 1); fa.CompiledDefaultValue = c2.Compile(group.FileName, argSTname, null, defArgTemplate, fa.DefaultValueToken); fa.CompiledDefaultValue.Name = argSTname; fa.CompiledDefaultValue.DefineImplicitlyDefinedTemplates(group); break; case GroupParser.STRING: fa.DefaultValue = Utility.Strip(fa.DefaultValueToken.Text, 1); break; case GroupParser.LBRACK: fa.DefaultValue = new object[0]; break; case GroupParser.TRUE: case GroupParser.FALSE: fa.DefaultValue = fa.DefaultValueToken.Type == GroupParser.TRUE; break; default: throw new NotSupportedException("Unexpected default value token type."); } } } }
public virtual void DefineArgumentDefaultValueTemplates(TemplateGroup group) { if (FormalArguments == null) return; foreach (FormalArgument fa in FormalArguments) { if (fa.DefaultValueToken != null) { if (fa.DefaultValueToken.Type == GroupParser.ANONYMOUS_TEMPLATE) { string argSTname = fa.Name + "_default_value"; TemplateCompiler c2 = new TemplateCompiler(group); string defArgTemplate = Utility.Strip(fa.DefaultValueToken.Text, 1); fa.CompiledDefaultValue = c2.Compile(group.FileName, argSTname, null, defArgTemplate, fa.DefaultValueToken); fa.CompiledDefaultValue.Name = argSTname; fa.CompiledDefaultValue.DefineImplicitlyDefinedTemplates(group); } else if (fa.DefaultValueToken.Type == GroupParser.STRING) { fa.DefaultValue = Utility.Strip(fa.DefaultValueToken.Text, 1); } else { // true or false fa.DefaultValue = fa.DefaultValueToken.Type == GroupParser.TRUE; } } } }
public virtual void DefineArgumentDefaultValueTemplates(TemplateGroup group) { if (FormalArguments == null) return; foreach (FormalArgument fa in FormalArguments) { if (fa.DefaultValueToken != null) { switch (fa.DefaultValueToken.Type) { case GroupParser.ANONYMOUS_TEMPLATE: string argSTname = fa.Name + "_default_value"; TemplateCompiler c2 = new TemplateCompiler(group); string defArgTemplate = Utility.Strip(fa.DefaultValueToken.Text, 1); fa.CompiledDefaultValue = c2.Compile(group.FileName, argSTname, null, defArgTemplate, fa.DefaultValueToken); fa.CompiledDefaultValue.Name = argSTname; fa.CompiledDefaultValue.DefineImplicitlyDefinedTemplates(group); break; case GroupParser.STRING: fa.DefaultValue = Utility.Strip(fa.DefaultValueToken.Text, 1); break; case GroupParser.LBRACK: fa.DefaultValue = new object[0]; break; case GroupParser.TRUE: case GroupParser.FALSE: fa.DefaultValue = fa.DefaultValueToken.Type == GroupParser.TRUE; break; default: throw new NotSupportedException("Unexpected default value token type."); } } } }
// for error location /** Compile a template */ public virtual CompiledTemplate Compile(string srcName, string name, List<FormalArgument> args, string template, IToken templateToken) { //System.out.println("TemplateGroup.Compile: "+enclosingTemplateName); TemplateCompiler c = new TemplateCompiler(this); return c.Compile(srcName, name, args, template, templateToken); }