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
+}