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


C# SyntaxTree.name方法代码示例

本文整理汇总了C#中SyntaxTree.name方法的典型用法代码示例。如果您正苦于以下问题:C# SyntaxTree.name方法的具体用法?C# SyntaxTree.name怎么用?C# SyntaxTree.name使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SyntaxTree的用法示例。


在下文中一共展示了SyntaxTree.name方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: visit

        public override void visit(SyntaxTree.unnamed_type_object unn) // SSM 27.06.13
        {
            var l = unn.ne_list;
            var names = l.name_expr.Select(x=>x.name).ToList();
            var strnames = names.Select(id=>id.name).ToList(); // преобразование idents в строки
            var semantic_types = l.name_expr.Select(x => convert_strong(x.expr).type).ToList();
            var types = semantic_types.Select(x => SyntaxTreeBuilder.BuildSemanticType(x)).ToList();

            contextChanger.SaveContextAndUpToGlobalLevel();

            var tt = context._cmn.types.Where(t => t.name.StartsWith("AnonymousType#")); // найти все анонимные типы, полученные в текущей компиляции

            var typ = tt.FirstOrDefault(t => SameTypeAutoClasses(strnames, semantic_types, t)); // найти структурно совпадающий уже существующий анонимный тип

            // Генерация глобальных описаний - перенесена с синтаксического уровня
            if (typ != null)
                unn.set_name(typ.name); // если нашли, то просто меняем имя на имя этого класса
            else
            {
                var td = SyntaxTreeBuilder.BuildAutoClass(unn.name(), names, types, unn.is_class);
                visit(td);
            }

            contextChanger.RestoreCurrentContext();

            // Сахарный узел. Переадресация дальнейшей генерации узлу new_ex
            visit(unn.new_ex);
        }
开发者ID:PascalABC-CompilerLaboratory,项目名称:pascalabcnet,代码行数:28,代码来源:syntax_tree_visitor.cs


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