#ifndef POLSERVER_COMPILEDSCRIPT_H #define POLSERVER_COMPILEDSCRIPT_H #include #include #include #include #include "bscript/compiler/representation/DebugStore.h" namespace Pol::Bscript { class StoredToken; } namespace Pol::Bscript::Compiler { class ExportedFunction; class FunctionReferenceDescriptor; class SourceFileIdentifier; class ModuleDescriptor; class ClassDescriptor; using CodeSection = std::vector; using DataSection = std::vector; using ExportedFunctions = std::vector; using FunctionReferences = std::vector; using ModuleDescriptors = std::vector; using ClassDescriptors = std::vector; using SourceFileIdentifiers = std::vector>; class CompiledScript { public: struct ProgramInfo { const unsigned parameter_count; }; CompiledScript( CodeSection code_section, DataSection data_section, DebugStore debug, ExportedFunctions exported_functions, std::vector global_variable_names, ModuleDescriptors modules, FunctionReferences function_references, ClassDescriptors class_descriptors, std::unique_ptr, SourceFileIdentifiers, std::string tree ); ~CompiledScript(); CompiledScript( const CompiledScript& ) = delete; CompiledScript& operator=( const CompiledScript& ) = delete; const CodeSection code; const DataSection data; const DebugStore debug; const ExportedFunctions exported_functions; const std::vector global_variable_names; const ModuleDescriptors module_descriptors; const FunctionReferences function_references; const ClassDescriptors class_descriptors; const std::unique_ptr program_info; const SourceFileIdentifiers source_file_identifiers; const std::string tree; }; } // namespace Pol::Bscript::Compiler #endif // POLSERVER_COMPILEDSCRIPT_H