/
n-dimens
/
pascalabcnet
Обзор
Документация
Войти
/
n-dimens
/
pascalabcnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
SyntaxVisitors/BaseSyntaxTreeConverter.cs
37 строк
2 KB
AlexanderZemlyak
Multilingual support (#3278)
17 июн 2025, 18:34
Не верифицирован
17 июн 2025, 18:34
7b81e31
Код
Авторство
О чём код?
// Copyright (c) Ivan Bondarev, Stanislav Mikhalkovich (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using PascalABCCompiler.SyntaxTree; using System; using System.Collections.Generic; namespace PascalABCCompiler.SyntaxTreeConverters { public abstract class BaseSyntaxTreeConverter : ISyntaxTreeConverter { public abstract string Name { get; } public syntax_tree_node Convert(syntax_tree_node root, bool forIntellisense) { // Прошивание ссылками на Parent nodes. Должно идти первым // FillParentNodeVisitor расположен в SyntaxTree/tree как базовый визитор, отвечающий за построение дерева //FillParentNodeVisitor.New.ProcessNode(root); // почему-то перепрошивает не всё. А следующий вызов - всё root.FillParentsInAllChilds(); return ApplyConversions(root, forIntellisense); } protected abstract syntax_tree_node ApplyConversions(syntax_tree_node root, bool forIntellisense); public virtual syntax_tree_node ConvertAfterUsedModulesCompilation(syntax_tree_node root, bool forIntellisense, in CompilationArtifactsUsedBySyntaxConverters compilationArtifacts) => root; } public class DefaultSyntaxTreeConverter : BaseSyntaxTreeConverter { public override string Name => "Default"; protected override syntax_tree_node ApplyConversions(syntax_tree_node root, bool forIntellisense) => root; } }