[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/jacereda/daScript/master/examples/tutorial/tutorial00.cpp [Back]  [Original]

#include "daScript/daScript.h"

using namespace das;

const char * tutorial_text = R""""(
[export]
def test
    print("this is nano tutorial\n")
)"""";

int main( int, char * [] ) {
    // request all da-script built in modules
    NEED_ALL_DEFAULT_MODULES;
    // Initialize modules
    Module::Initialize();
    // make file access, introduce string as if it was a file
    auto fAccess = make_smart();
    auto fileInfo = make_unique(tutorial_text, uint32_t(strlen(tutorial_text)), false);
    fAccess->setFileInfo("dummy.das", das::move(fileInfo));
    // compile script
    TextPrinter tout;
    ModuleGroup dummyLibGroup;
    auto program = compileDaScript("dummy.das", fAccess, tout, dummyLibGroup);
    if ( program->failed() ) return -1;
    // create context
    Context ctx(program->getContextStackSize());
    if ( !program->simulate(ctx, tout) ) return -2;
    // find function. its up to application to check, if function is not null
    auto function = ctx.findFunction("test");
    if ( !function ) return -3;
    // call context function
    ctx.evalWithCatch(function, nullptr);
    // shut-down daScript, free all memory
    Module::Shutdown();
    return 0;
}

Web Proxy Viewer  |  New URL  |  Original Page