compile

C++

// param  type : String, Stream
// return type : Code, null
CodePtr compile(const AnyPtr& source);

Xtal

// -> xtal::compile(C++)
fun builtin::compile(source);

Description

与えられたメモリ上の文字列をコンパイルする、もしくは、メモリ上のバイトコードをCodeに変換し、CodePtrを返します。

コンパイル失敗時にはXtal例外を送出します。

先頭4byteが”xtal”かどうかで文字列かバイトコードかを判断するため、注意が必要です。

Example

文字列をコンパイルし実行する

C++

#include <xtal.h>
 
void exec_xtal()
{
    const xtal::CodePtr code(xtal::compile("\"hello\".p;"));
    XTAL_CATCH_EXCEPT(e){
        e->p();
    }
    else {
        code->call();
    }
 
    const xtal::CodePtr code2(xtal::compile("hoge-"));
    XTAL_CATCH_EXCEPT(e){
        e->p();
    }
    else {
        code->call();
    }
}

Xtal

try{
    code : compile("\"hello\".p;");
    code();
}
catch (e){
    e.p;
}
try{
    code : compile("hoge-");
    code();
}
catch (e){
    e.p;
}
reference/compile.txt · 最終更新: 2012/04/01 15:20 by sukai
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0