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.");
}
}
}
}