本文整理汇总了C#中AnalysisUnit.FindAnalysisValueByName方法的典型用法代码示例。如果您正苦于以下问题:C# AnalysisUnit.FindAnalysisValueByName方法的具体用法?C# AnalysisUnit.FindAnalysisValueByName怎么用?C# AnalysisUnit.FindAnalysisValueByName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AnalysisUnit
的用法示例。
在下文中一共展示了AnalysisUnit.FindAnalysisValueByName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessTags
private IAnalysisSet ProcessTags(Node node, AnalysisUnit unit, IAnalysisSet[] args, NameExpression[] keywordArgNames, Dictionary<string, TagInfo> tags) {
if (args.Length >= 3) {
// library.filter(name, value)
foreach (var name in args[1]) {
var constName = name.GetConstantValue();
if (constName == Type.Missing) {
if (name.Name != null) {
RegisterTag(unit.Project, tags, name.Name, name.Documentation);
}
} else {
var strName = name.GetConstantValueAsString();
if (strName != null) {
RegisterTag(unit.Project, tags, strName);
}
}
}
foreach (var func in args[2]) {
// TODO: Find a better node
var parser = unit.FindAnalysisValueByName(node, "django.template.base.Parser");
if (parser != null) {
func.Call(node, unit, new[] { parser, AnalysisSet.Empty }, NameExpression.EmptyArray);
}
}
} else if (args.Length >= 2) {
// library.filter(value)
foreach (var name in args[1]) {
string tagName = name.Name ?? name.GetConstantValueAsString();
if (tagName != null) {
RegisterTag(unit.Project, tags, tagName, name.Documentation);
}
if (name.MemberType != PythonMemberType.Constant) {
var parser = unit.FindAnalysisValueByName(node, "django.template.base.Parser");
if (parser != null) {
name.Call(node, unit, new[] { parser, AnalysisSet.Empty }, NameExpression.EmptyArray);
}
}
}
} else if (args.Length == 1) {
foreach (var name in args[0]) {
if (name.MemberType == PythonMemberType.Constant) {
// library.filter('name')
DeferredDecorator dec;
if (!_decoratorTable.TryGetValue(node, out dec)) {
dec = new DeferredDecorator(this, name, tags);
_decoratorTable.Add(node, dec);
}
return dec;
} else if (name.Name != null) {
// library.filter
RegisterTag(unit.Project, tags, name.Name, name.Documentation);
}
}
}
return AnalysisSet.Empty;
}