Exemplo n.º 1
0
Arquivo: text.c Projeto: abw/hemp
HempText
hemp_text_init_format(
    HempText text,
    const HempString format,
    ...
) {
    HempString  string;
    HEMP_ALLOCATE(text);

    va_list args;
    va_start(args, format);
    vasprintf(&string, format, args);
    va_end(args);

    if (! string)
        hemp_mem_fail("text");

#if HEMP_DEBUG & HEMP_DEBUG_MEM
    /* tell the memory trace debugging code that we know about this memory */
    hemp_mem_trace_external(string, strlen(string) + 1, __FILE__, __LINE__);
#endif

    text->length   =
        text->capacity = strlen(string);
    text->string   = string;

    return text;
}
Exemplo n.º 2
0
HempModule
hemp_module_new(
    HempString     name
) {
    HempModule module;
    HEMP_ALLOCATE(module);
    module->name   = hemp_string_clone(name, "module name");
    module->error  = NULL;
    module->handle = NULL;
    module->loader = NULL;
    module->binder = NULL;
    return module;
}
Exemplo n.º 3
0
Arquivo: viewer.c Projeto: abw/hemp
HempViewer
hemp_viewer_new(
    Hemp   hemp,
    HempString name
) {
    HempViewer viewer;
    HEMP_ALLOCATE(viewer);

    viewer->hemp   = hemp;
    viewer->name   = hemp_string_clone(name, "viewer name");
    viewer->parent = NULL;
    viewer->view   = NULL;
    viewer->size   = 0;
    
    return viewer;
}
Exemplo n.º 4
0
Arquivo: factory.c Projeto: abw/hemp
HempFactory
hemp_factory_new(
    Hemp        hemp,
    HempString  name
) {
    HempFactory factory;
    HEMP_ALLOCATE(factory);
    factory->hemp         = hemp;
    factory->name         = hemp_string_clone(name, "factory name");
    factory->instances    = hemp_hash_new();
    factory->constructors = hemp_hash_new();
    factory->cleaner      = NULL;
//  factory->autoload     = NULL;
    factory->autoload     = &hemp_factory_autoload;
//  factory->config       = hemp_factory_config_hash(factory, config);
    return factory;
}
Exemplo n.º 5
0
Arquivo: scheme.c Projeto: abw/hemp
HempScheme
hemp_scheme_new(
    Hemp        hemp,
    HempString  name
) {
    HempScheme scheme;
    HEMP_ALLOCATE(scheme);

    scheme->hemp    = hemp;
    scheme->name    = hemp_string_clone(name, "scheme name");
    scheme->namer   = &hemp_scheme_namer;
    scheme->checker = NULL;
    scheme->reader  = NULL;
    scheme->cleaner = NULL;

    return scheme;
}
Exemplo n.º 6
0
Arquivo: document.c Projeto: abw/hemp
HempDocument
hemp_document_new(
    HempDialect dialect,
    HempSource  source
) {
    HempDocument document;
    HEMP_ALLOCATE(document);

    document->hemp      = dialect->hemp;
    document->dialect   = dialect;
    document->source    = source;
    document->scope     = hemp_scope_new(dialect->hemp);
    document->fragments = hemp_fragments_new(document, 0);
    document->tree      = NULL;
//  document->scanner   = NULL;
    document->scantags  = NULL;

//  document->tagset   = hemp_tagset_new(document);
        
    return document;
}