* Move yield string constants to StringConstants class * Add GeneratedNamesManager class to store all generated names during unit compilation * Make GeneratedNamesManager class non static * Add Utils project to installer files * Add GeneratedNamesManager usage in CapturedVariablesSubstitutionsManager * Move GeneratedNamesManager initialization in CompilationUnit constructor * More GeneratedNamesManager usage * QuestionPointDesugarVisitor fix
102 lines
3.9 KiB
C#
102 lines
3.9 KiB
C#
using System.Collections.Generic;
|
|
using System.Collections;
|
|
using PascalABCCompiler.SyntaxTree;
|
|
using PascalABCCompiler.CoreUtils;
|
|
|
|
namespace PascalABCCompiler.TreeConverter.TreeConversion
|
|
{
|
|
/// <summary>
|
|
/// Вспомогательная структура данных для инициализации ISyntaxToSemanticTreeConverter перед компиляцией интерфейса
|
|
/// </summary>
|
|
public class InitializationDataForCompilingInterface
|
|
{
|
|
public readonly Errors.SyntaxError parserError;
|
|
|
|
public readonly Hashtable badNodes;
|
|
|
|
public readonly TreeRealization.unit_node_list usedUnits;
|
|
|
|
public readonly TreeRealization.using_namespace_list interfaceNamespaces;
|
|
|
|
public readonly compilation_unit syntaxUnit;
|
|
|
|
public readonly List<Errors.Error> errorsList;
|
|
|
|
public readonly List<Errors.CompilerWarning> warningsList;
|
|
|
|
public readonly Dictionary<syntax_tree_node, string> docs;
|
|
|
|
public readonly bool debug;
|
|
|
|
public readonly bool debugging;
|
|
|
|
public readonly bool forIntellisense;
|
|
|
|
public readonly GeneratedNamesManager generatedNamesManager;
|
|
|
|
public InitializationDataForCompilingInterface(
|
|
|
|
Errors.SyntaxError parserError,
|
|
Hashtable badNodes,
|
|
TreeRealization.unit_node_list usedUnits,
|
|
TreeRealization.using_namespace_list interfaceNamespaces,
|
|
compilation_unit syntaxUnit,
|
|
List<Errors.Error> errorsList,
|
|
List<Errors.CompilerWarning> warningsList,
|
|
Dictionary<syntax_tree_node, string> docs,
|
|
bool debug,
|
|
bool debugging,
|
|
bool forIntellisense,
|
|
GeneratedNamesManager generatedNamesManager
|
|
|
|
)
|
|
{
|
|
this.parserError = parserError;
|
|
this.badNodes = badNodes;
|
|
this.usedUnits = usedUnits;
|
|
this.interfaceNamespaces = interfaceNamespaces;
|
|
this.syntaxUnit = syntaxUnit;
|
|
this.errorsList = errorsList;
|
|
this.warningsList = warningsList;
|
|
this.docs = docs;
|
|
this.debug = debug;
|
|
this.debugging = debugging;
|
|
this.forIntellisense = forIntellisense;
|
|
this.generatedNamesManager = generatedNamesManager;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Вспомогательная структура данных для инициализации ISyntaxToSemanticTreeConverter перед компиляцией реализации
|
|
/// </summary>
|
|
public class InitializationDataForCompilingImplementation : InitializationDataForCompilingInterface
|
|
{
|
|
public readonly TreeRealization.using_namespace_list implementationNamespaces;
|
|
|
|
public readonly TreeRealization.common_unit_node semanticUnit;
|
|
|
|
public InitializationDataForCompilingImplementation(
|
|
|
|
Errors.SyntaxError parserError,
|
|
Hashtable badNodes,
|
|
TreeRealization.unit_node_list usedUnits,
|
|
TreeRealization.using_namespace_list interfaceNamespaces,
|
|
TreeRealization.using_namespace_list implementationNamespaces,
|
|
compilation_unit syntaxUnit,
|
|
TreeRealization.common_unit_node semanticUnit,
|
|
List<Errors.Error> errorsList,
|
|
List<Errors.CompilerWarning> warningsList,
|
|
Dictionary<syntax_tree_node, string> docs,
|
|
bool debug,
|
|
bool debugging,
|
|
bool forIntellisense,
|
|
GeneratedNamesManager generatedNamesManager
|
|
|
|
) : base(parserError, badNodes, usedUnits, interfaceNamespaces, syntaxUnit, errorsList, warningsList, docs, debug, debugging, forIntellisense, generatedNamesManager)
|
|
{
|
|
this.implementationNamespaces = implementationNamespaces;
|
|
this.semanticUnit = semanticUnit;
|
|
}
|
|
}
|
|
}
|