本文整理汇总了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);
}