polserver/pol-core/bscript/compiler/representation/CompiledScript.cpp
Kevin Eady d7cdcff383 Add classinst.function member; Add is binary operator; Add funcref MTH_NEW (#701)
* Update grammar

* Implement selfIs in BObjectImp

* Add tests

* Update grammar

* Support obj.function as a MemberAccess [1/2]
- AST generation changes

* Support obj.function as a MemberAccess [2/2]
- add funcref index to eprog class table ctor entry
- allow check_mro on non-class inst (skip ctor calls)

* Move address of funcref into funcref table

* Add funcref.new()
- Add class index to funcref table entry
- Add MTH_NEW

* Fix formatting

* Address self-review comments

* Some more tests

* Address self-review comments

* Update grammar

* Remove ObjMember read_only, hidden
No need to special-handle MBR_FUNCTION

* Addres GitHub CI annotations
- '=': conversion from 'size_t' to 'unsigned int', possible loss of data
2024-10-10 18:06:04 +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/ClassDescriptor.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, ClassDescriptors class_descriptors,
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 ) ),
class_descriptors( std::move( class_descriptors ) ),
program_info( std::move( program_info ) ),
source_file_identifiers( std::move( source_file_identifiers ) )
{
}
CompiledScript::~CompiledScript() = default;
} // namespace Pol::Bscript::Compiler