当前位置: 首页>>代码示例>>C#>>正文


C# AnalysisUnit.FindAnalysisValueByName方法代码示例

本文整理汇总了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;
        }
开发者ID:jsschultz,项目名称:PTVS,代码行数:56,代码来源:DjangoAnalyzer.cs


注:本文中的AnalysisUnit.FindAnalysisValueByName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。