Name

SPVM::Native::Compiler - Native::Compiler

Description

SPVM::Native::Compiler is the Native::Compiler class in the SPVM language. It compiles SPVM source codes and builds the runtime.

The instance of the Native::Runtime class is build by the "get_runtime" method in this class.

Usage

use Native::Compiler;

my $compiler = Native::Compiler->new;

$compiler->add_include_dir("lib");

$compiler->set_start_file(__FILE__);

{
  my $basic_type_name = "Foo";
  $compiler->set_start_line(__LINE__ + 1);
  my $success = $compiler->compile($basic_type_name);
  unless ($success) {
    my $error_messages = $compiler->get_error_messages;
    for my $error_message (@$error_messages) {
      warn "$error_message";
    }
    die "Can't compile the \"$basic_type_name\" basic type";
  }
}

{
  my $basic_type_name = "Bar";
  $compiler->set_start_line(__LINE__ + 1);
  my $success = $compiler->compile($basic_type_name);
  unless ($success) {
    my $error_messages = $compiler->get_error_messages;
    for my $error_message (@$error_messages) {
      warn "$error_message";
    }
    die "Can't compile the \"$basic_type_name\" basic type";
  }
}

my $runtime = $compiler->get_runtime;

Pointer

The Native::Compiler class is a pointer class.

Its insntace has a pointer to a compiler object.

Class Methods

new

static method new : Native::Compiler ();

Creates a new Native::Compiler object and returns it.

Instance Methods

add_include_dir

method add_include_dir : void ($include_dir : string);

Adds a class directory to search for classes.

set_start_file

method set_start_file : void ($start_file : string);

Sets the name of the file to start the compiling by the "compile" method.

set_start_line

method set_start_line : void ($start_line : int);

Sets the line to start compiling by the "compile" method.

compile

method compile : int ($basic_type_name : string);

Compiles the specified class and the classes that are load in the specified class.

Returns 1 on success, 0 on failure.

This method can be called multiple times.

get_error_messages

method get_error_messages : string[] ();

Returns compilation error messages in this compiling by the "compile" method.

get_runtime

method get_runtime : Native::Runtime ();

Returns the runtime.

The return value is a Native::Runtime object.

get_module_file

method get_module_file : Native::ModuleFile ($module_name : string);

Gets a Native::ModuleFile object by a module name, and returns it.

See Also

Native::Runtime

The instance of the Native::Runtime class is build by the "get_runtime" method in this class.

Copyright & License

Copyright 2023-2023 Yuki Kimoto, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Copyright & License

Copyright (c) 2023 Yuki Kimoto

MIT License