diff --git a/Ext/libhandler b/Ext/libhandler deleted file mode 160000 index 0f1e367ca9..0000000000 --- a/Ext/libhandler +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0f1e367ca9be736b09b62480ef0039b0b3d1ad8f diff --git a/Src/PCompiler/CompilerCore/CompilerConfiguration.cs b/Src/PCompiler/CompilerCore/CompilerConfiguration.cs index 7c6c4db1aa..48189ecf64 100644 --- a/Src/PCompiler/CompilerCore/CompilerConfiguration.cs +++ b/Src/PCompiler/CompilerCore/CompilerConfiguration.cs @@ -7,8 +7,26 @@ namespace Plang.Compiler { + /// + /// Represents the configuration settings for the P language compiler. + /// This class contains all parameters and options that control the compilation process, + /// including input/output paths, code generation options, and project settings. + /// public class CompilerConfiguration : ICompilerConfiguration { + /// + /// Initializes a new instance of the class with default settings. + /// + /// + /// Default settings include: + /// - No output directory + /// - Empty input file lists + /// - "generatedOutput" as project name + /// - Current directory as project root + /// - C# as the default output language + /// - Default location resolver and error handler + /// - Debug mode disabled + /// public CompilerConfiguration() { OutputDirectory = null; @@ -25,6 +43,19 @@ public CompilerConfiguration() ProjectDependencies = new List(); Debug = false; } + /// + /// Initializes a new instance of the class with specific settings. + /// + /// The compiler output handler. + /// The directory where compiler output will be generated. + /// The list of target programming languages for code generation. + /// The list of input files to compile (P files and foreign files). + /// The name of the project being compiled. If null, derives from first input file. + /// The root directory of the project. If null, uses the current directory. + /// The list of project dependencies. If null, initializes as empty list. + /// The name of the PObserve package. If null, defaults to "{ProjectName}.pobserve". + /// Flag indicating whether to include debug information in output. + /// Thrown when no input files are provided. public CompilerConfiguration(ICompilerOutput output, DirectoryInfo outputDir, IList outputLanguages, IList inputFiles, string projectName, DirectoryInfo projectRoot = null, IList projectDependencies = null, string pObservePackageName = null, bool debug = false) { @@ -59,21 +90,79 @@ public CompilerConfiguration(ICompilerOutput output, DirectoryInfo outputDir, IL Debug = debug; } + /// + /// Gets or sets the compiler output handler. + /// public ICompilerOutput Output { get; set; } + + /// + /// Gets or sets the directory where compiler output will be generated. + /// public DirectoryInfo OutputDirectory { get; set; } + + /// + /// Gets or sets the list of target programming languages for code generation. + /// public IList OutputLanguages { get; set; } + + /// + /// Gets or sets the name of the project being compiled. + /// public string ProjectName { get; set; } + + /// + /// Gets or sets the name of the PObserve package. + /// public string PObservePackageName { get; set; } + + /// + /// Gets or sets the root directory of the project. + /// public DirectoryInfo ProjectRootPath { get; set; } + + /// + /// Gets or sets the backend code generator. + /// public ICodeGenerator Backend { get; set; } + + /// + /// Gets or sets the list of P language input files to compile. + /// public IList InputPFiles { get; set; } + + /// + /// Gets or sets the list of foreign (non-P) input files to include. + /// public IList InputForeignFiles { get; set; } + + /// + /// Gets or sets the location resolver for source code positions. + /// public ILocationResolver LocationResolver { get; set; } + + /// + /// Gets or sets the handler for translation errors. + /// public ITranslationErrorHandler Handler { get; set; } + /// + /// Gets or sets the list of project dependencies. + /// public IList ProjectDependencies { get; set; } + + /// + /// Gets or sets a value indicating whether debug information should be included in output. + /// public bool Debug { get; set; } + /// + /// Copies all properties from another CompilerConfiguration instance to this instance. + /// + /// The source configuration to copy from. + /// + /// This method performs a shallow copy of all properties from the specified configuration + /// to the current instance, effectively replacing the current configuration. + /// public void Copy(CompilerConfiguration parsedConfig) { Backend = parsedConfig.Backend; @@ -91,4 +180,4 @@ public void Copy(CompilerConfiguration parsedConfig) Debug = parsedConfig.Debug; } } -} \ No newline at end of file +}