本文整理汇总了C#中Antlr3.ST.StringTemplateGroup.GetTemplateDefinition方法的典型用法代码示例。如果您正苦于以下问题:C# StringTemplateGroup.GetTemplateDefinition方法的具体用法?C# StringTemplateGroup.GetTemplateDefinition怎么用?C# StringTemplateGroup.GetTemplateDefinition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Antlr3.ST.StringTemplateGroup
的用法示例。
在下文中一共展示了StringTemplateGroup.GetTemplateDefinition方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetMismatchedTemplates
/** <summary>
* Return a list of all template sigs that are present in the group, but
* that have wrong formal argument lists. Return null if all is well.
* </summary>
*/
public virtual IList<string> GetMismatchedTemplates( StringTemplateGroup group )
{
List<string> mismatched = new List<string>();
foreach ( TemplateDefinition d in _templates.Values )
{
if ( group.IsDefined( d.name ) )
{
StringTemplate defST = group.GetTemplateDefinition( d.name );
var formalArgs = defST.FormalArguments;
bool ack = false;
if ( ( d.formalArgs != null && formalArgs == null ) ||
( d.formalArgs == null && formalArgs != null ) ||
d.formalArgs.Count != formalArgs.Count )
{
ack = true;
}
if ( !ack )
{
foreach ( var arg in formalArgs )
{
FormalArgument arg2;
if ( !d.formalArgs.TryGetValue( arg.name, out arg2 ) || arg2 == null )
{
ack = true;
break;
}
}
}
if ( ack )
{
//System.out.println(d.formalArgs+"!="+formalArgs);
mismatched.Add( GetTemplateSignature( d ) );
}
}
}
if ( mismatched.Count == 0 )
{
mismatched = null;
}
return mismatched;
}