pascalabcnet/Compiler/ICompiler.cs
2020-09-19 23:45:19 +03:00

135 lines
2.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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 System;
using System.Collections.Generic;
using System.Text;
using PascalABCCompiler.SemanticTreeConverters;
using PascalABCCompiler.SyntaxTreeConverters;
using PascalABCCompiler.Errors;
///В разработке DarkStar
namespace PascalABCCompiler
{
public enum CompilerType { Standart, Remote }
public interface ICompiler
{
/// Здоровье кода на всякий случай выносим в интерфейс компилятора
/// Реально оно будет использоваться только при запуске из под оболочки (Remote Compiler)
int PABCCodeHealth
{
get;
}
SyntaxTreeConvertersController SyntaxTreeConvertersController
{
get;
}
SemanticTreeConvertersController SemanticTreeConvertersController
{
get;
}
Parsers.Controller ParsersController
{
get;
}
SemanticTree.IProgramNode SemanticTree
{
get;
}
/*SyntaxTree.syntax_tree_node SyntaxTree
{
get;
}*/
uint LinesCompiled
{
get;
}
CompilerInternalDebug InternalDebug
{
get;
set;
}
CompilerState State
{
get;
}
SupportedSourceFile[] SupportedSourceFiles
{
get;
}
SupportedSourceFile[] SupportedProjectFiles
{
get;
}
CompilerOptions CompilerOptions
{
get;
set;
}
List<Errors.Error> ErrorsList
{
get;
}
List<CompilerWarning> Warnings
{
get;
}
int BeginOffset
{
get;
}
int VarBeginOffset
{
get;
}
CompilationUnitHashTable UnitTable
{
get;
}
SourceFilesProviderDelegate SourceFilesProvider
{
get;
}
event ChangeCompilerStateEventDelegate OnChangeCompilerState;
void Free();
void Reload();
string Compile();
void StartCompile();
void AddWarnings(List<CompilerWarning> WarningList);
SyntaxTree.compilation_unit ParseText(string FileName, string Text, List<Error> ErrorList, List<CompilerWarning> Warnings);
string GetSourceFileText(string FileName);
CompilerType CompilerType
{
get;
}
}
}