Name

SPVM::Document::NativeAPI::Compiler - SPVM Compiler Native APIs

Usage

// New compiler
void* compiler = env->api->compiler->new_instance();

// @INC
env->api->compiler->add_include_dir(compiler, "lib");

// Compile SPVM
env->api->compiler->set_start_file(compiler, __FILE__);
env->api->compiler->get_start_line(compiler, __LINE__ + 1);
int32_t status = env->api->compiler->compile(compiler, "MyClass");

// Free compiler
env->api->compiler->free_instance(compiler);

Description

SPVM Compiler Native APIs are the APIs to compile SPVM modules.

IDs of Compiler Native APIs

Compiler native APIs have its IDs.

0  new_instance
1  free_instance
2  set_start_line
3  get_start_line
4  set_start_file
5  get_start_file
6  add_include_dir
7  get_include_dirs_length
8  get_include_dir
9  compile
10 get_error_messages_length
11 get_error_message
12 create_runtime_codes
13 clear_include_dirs

Compiler Native APIs

new_instance

void* (*new_instance)(void);

Creates a compiler object.

free_instance

void (*free_instance)(void* compiler);

Frees a compiler.

set_start_line

void (*set_start_line)(void* compiler, int32_t start_line);

Sets the start line of the caller.

get_start_line

int32_t (*get_start_line)(void* compiler);

Gets the start line of the caller.

set_start_file

void (*set_start_file)(void* compiler, const char* start_file);

Set the start file of the caller. start_file is copied.

get_start_file

const char* (*get_start_file)(void* compiler);

Gets the start file of the caller.

add_include_dir

void (*add_include_dir)(void* compiler, const char* include_dir);

Adds a class searching directory. include_dir is copied.

get_include_dirs_length

int32_t (*get_include_dirs_length)(void* compiler);

Gets the length of the class searching directories.

get_include_dir

const char* (*get_include_dir)(void* compiler, int32_t index);

Gets a searching directory.

compile

int32_t (*compile)(void* compiler, const char* basic_type_name);

Compile SPVM classes.

get_error_messages_length

int32_t (*get_error_messages_length)(void* compiler);

Gets the length of the compilation error messages.

get_error_message

const char* (*get_error_message)(void* compiler, int32_t index);

Gets the compiler error messages.

create_runtime_codes

int32_t* (*create_runtime_codes)(void* compiler, void* allocator);

Creates SPVM 32bit codes using a allocator object and returns the address.

clear_include_dirs

void (*clear_include_dirs)(SPVM_COMPILER* compiler);

Clear the class searching directories. The class searching directories are freed.

Copyright & License

Copyright (c) 2023 Yuki Kimoto

MIT License