Make "%>" a keyword for syntax analyze of gambas code embedded into a WebPage. Some other fixes in the interpreter and the compiler.
[INTERPRETER] * BUG: A global class find does now a global class lookup. It seems more logical. * BUG: When loading a class fails, display an accurate error message. [COMPILER] * BUG: Embedded arrays do not raise warnings on being uninitialized anymore. * NEW: Make "%>" a keyword for syntax analyze of gambas code embedded into a WebPage.
This commit is contained in:
parent
72417abe78
commit
ac0f2ba85e
5 changed files with 18 additions and 2 deletions
|
@ -731,7 +731,16 @@ void CLASS_init_global_declaration(CLASS *class, TRANS_DECL *decl, CLASS_SYMBOL
|
|||
bool is_static;
|
||||
|
||||
if (!TRANS_has_init_var(decl))
|
||||
{
|
||||
if (decl->is_embedded)
|
||||
{
|
||||
if (sym->local.value)
|
||||
sym->local_assigned = TRUE;
|
||||
else
|
||||
sym->global_assigned = TRUE;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
is_static = TYPE_is_static(decl->type);
|
||||
prev_func = CLASS_set_current_init_function(class, is_static ? FUNC_INIT_STATIC : FUNC_INIT_DYNAMIC);
|
||||
|
|
|
@ -518,9 +518,14 @@ CLASS *CLASS_find_do(const char *name, bool global)
|
|||
fprintf(stderr, "CLASS_find: %s (%d)\n", name, global);
|
||||
#endif
|
||||
|
||||
class = CLASS_look(name, len);
|
||||
class = CLASS_look_do(name, len, global);
|
||||
if (class)
|
||||
{
|
||||
#if DEBUG_LOAD
|
||||
fprintf(stderr, "--> %p\n", class);
|
||||
#endif
|
||||
return class;
|
||||
}
|
||||
|
||||
//if (CP && CP->component && CP->component->archive)
|
||||
if (!global && !ARCHIVE_get_current(&arch))
|
||||
|
|
|
@ -1047,7 +1047,7 @@ static void load_without_inits(CLASS *class)
|
|||
CATCH
|
||||
{
|
||||
COMPONENT_current = save;
|
||||
THROW_CLASS(class, ERROR_last.msg, "");
|
||||
THROW_CLASS(class, ERROR_current->info.msg, "");
|
||||
}
|
||||
END_TRY
|
||||
}
|
||||
|
|
|
@ -225,6 +225,7 @@ COMP_INFO COMP_res_info[] =
|
|||
{ "&=", RSF_ASGN, RS_AMP },
|
||||
{ "&/=", RSF_ASGN, RS_FILE },
|
||||
{ "^=", RSF_ASGN, RS_FLEX },
|
||||
{ "%>" }, // Webpage delimiter
|
||||
|
||||
{ NULL }
|
||||
};
|
||||
|
|
|
@ -184,6 +184,7 @@ __24:
|
|||
return -1;
|
||||
__25:
|
||||
if (len == 2 && word[1] == '=') return 190;
|
||||
if (len == 2 && word[1] == '>') return 194;
|
||||
return -1;
|
||||
__26:
|
||||
if (len == 2 && word[1] == '/') return 151;
|
||||
|
|
Loading…
Reference in a new issue