X-Git-Url: http://deadsoftware.ru/gitweb?p=dsw-obn.git;a=blobdiff_plain;f=src%2Foberon.c;h=365f47d6a107ac047dbe13e5f3293a5ea138123d;hp=0fff8d7ba4c791846d662f1a6e728c6b2fbfe883;hb=7b989fe6cfb3cf6e529b888bb6827714c45c62c6;hpb=023ef0d8349acdfe751bba1b50749361682f72ff diff --git a/src/oberon.c b/src/oberon.c index 0fff8d7..365f47d 100644 --- a/src/oberon.c +++ b/src/oberon.c @@ -261,6 +261,7 @@ oberon_find_object_in_list(oberon_object_t * list, char * name) oberon_object_t * x = list; while(x -> next && strcmp(x -> next -> name, name) != 0) { + printf("inlist: '%s' != '%s'\n", x -> next -> name, name); x = x -> next; } return x -> next; @@ -289,6 +290,7 @@ oberon_find_object(oberon_scope_t * scope, char * name, bool check_it) static oberon_object_t * oberon_create_object(oberon_scope_t * scope, char * name, int class, bool export, bool read_only) { + printf("oberon_create_object: '%s'\n", name); oberon_object_t * newvar = GC_MALLOC(sizeof *newvar); memset(newvar, 0, sizeof *newvar); newvar -> name = name; @@ -316,6 +318,7 @@ oberon_define_object(oberon_scope_t * scope, char * name, int class, bool export oberon_object_t * x = scope -> list; while(x -> next && strcmp(x -> next -> name, name) != 0) { + printf("inlist: '%s' != '%s'\n", x -> next -> name, name); x = x -> next; } @@ -1047,10 +1050,14 @@ oberon_cast_expr(oberon_context_t * ctx, oberon_expr_t * expr, oberon_type_t * p cast = oberon_new_item(MODE_CHAR, ctx -> char_type, true); cast -> item.integer = expr -> item.string[0]; } - else + else if(!oberon_is_some_types(expr -> result, pref)) { cast = oberon_new_operator(OP_CAST, pref, expr, NULL); } + else + { + cast = expr; + } return cast; }