polserver/pol-core/bscript/compiler/representation/CompiledScript.cpp
Kevin Eady 6ed593ac81
Add function reference table to EScriptProgram (#686)
* Introduce FunctionReferenceRegistrar
- Track function references created by functors
- Remove ValueStack-held attributes for functors
- Add Function References section to escript program
- Use Function References section in ins_functor
- Update escript version

* Update listfile snapshots
- Remove ValueStack-held attributes created by functors

* Add function reference tracking to function references
- `emit.function_reference` uses funcref registrar + emits that index
- `ins_funcref` uses parameter count + is variadic from prog funcref table
- update listfile snapshots

* Add core-changes
2024-08-06 20:29:02 +02:00

35 lines
1.5 KiB
C++

#include "CompiledScript.h"
#include <utility>
#include "StoredToken.h"
#include "bscript/compiler/file/SourceFileIdentifier.h"
#include "bscript/compiler/representation/ExportedFunction.h"
#include "bscript/compiler/representation/FunctionReferenceDescriptor.h"
#include "bscript/compiler/representation/ModuleDescriptor.h"
#include "bscript/compiler/representation/ModuleFunctionDescriptor.h"
namespace Pol::Bscript::Compiler
{
CompiledScript::CompiledScript( CodeSection code, DataSection data, DebugStore debug,
ExportedFunctions exported_functions,
std::vector<std::string> global_variable_names,
ModuleDescriptors module_descriptors,
FunctionReferences function_references,
std::unique_ptr<ProgramInfo> program_info,
SourceFileIdentifiers source_file_identifiers )
: code( std::move( code ) ),
data( std::move( data ) ),
debug( std::move( debug ) ),
exported_functions( std::move( exported_functions ) ),
global_variable_names( std::move( global_variable_names ) ),
module_descriptors( std::move( module_descriptors ) ),
function_references( std::move( function_references ) ),
program_info( std::move( program_info ) ),
source_file_identifiers( std::move( source_file_identifiers ) )
{
}
CompiledScript::~CompiledScript() = default;
} // namespace Pol::Bscript::Compiler