pike.git / src / pike_types.c

version» Context lines:

pike.git/src/pike_types.c:2067:    struct pike_type *char_type = s->car;    while(char_type->type == T_ASSIGN) {    char_type = char_type->cdr;    }       if (char_type->type == T_ZERO) {    fprintf(stderr, "zero | ");    s = s->cdr;    continue;    } +  if ((char_type->type >= '0') && (char_type->type <= '9')) { +  fprintf(stderr, "$%c | ", char_type->type); +  s = s->cdr; +  continue; +  }   #ifdef PIKE_DEBUG    if (char_type->type != T_INT) {    Pike_fatal("Invalid node type (%d:%s) in string type.\n",    char_type->type, get_name_of_type(char_type->type));    }   #endif /* PIKE_DEBUG */    min = CAR_TO_INT(char_type);    max = CDR_TO_INT(char_type);    if (min != MIN_INT32) {    fprintf(stderr, "%d", min);
pike.git/src/pike_types.c:2090:    fprintf(stderr, "%d", max);    }    fprintf(stderr, " | ");    s = s->cdr;    }    while(s->type == T_ASSIGN) {    s = s->cdr;    }    if (s->type == T_ZERO) {    fprintf(stderr, "zero"); +  } else if ((s->type >= '0') && (s->type <= '9')) { +  fprintf(stderr, "$%c", s->type);    } else {   #ifdef PIKE_DEBUG    if (s->type != T_INT) {    Pike_fatal("Invalid node type (%d:%s) in string type.\n",    s->type, get_name_of_type(s->type));    }   #endif /* PIKE_DEBUG */    min = CAR_TO_INT(s);    max = CDR_TO_INT(s);    if (min != MIN_INT32) {
pike.git/src/pike_types.c:4816:       switch(low_check_indexing(t, index_type, n))    {    case 0: return 0;    case -1:    add_ref(zero_type_string);    return zero_type_string;    }       while((t->type == PIKE_T_NAME) || -  (t->type == PIKE_T_ATTRIBUTE)) { +  (t->type == PIKE_T_ATTRIBUTE) || +  (t->type == T_ASSIGN) || +  (t->type == T_SCOPE)) {    t = t->cdr;    }    while((index_type->type == PIKE_T_NAME) || -  (index_type->type == PIKE_T_ATTRIBUTE)) { +  (index_type->type == PIKE_T_ATTRIBUTE) || +  (index_type->type == T_ASSIGN) || +  (index_type->type == T_SCOPE)) {    index_type = index_type->cdr;    }       switch(t->type)    {    case T_OBJECT:    {    p = id_to_program(CDR_TO_INT(t));       comefrom_int_index:
pike.git/src/pike_types.c:5370:       case T_AND:    return low_check_indexing(type->car, index_type, n) &&    low_check_indexing(type->cdr, index_type, n);       case T_NOT:    return low_check_indexing(type->car, index_type, n) != 1;       case PIKE_T_NAME:    case PIKE_T_ATTRIBUTE: +  case T_ASSIGN: +  case T_SCOPE:    return low_check_indexing(type->cdr, index_type, n);       case T_ARRAY:    if(low_match_types(string_type_string, index_type, 0) &&    low_check_indexing(type->car, index_type, n))    return 1;    /* FALL_THROUGH */    case T_STRING:    return !!low_match_types(int_type_string, index_type, 0);   
pike.git/src/pike_types.c:5464:    case T_AND:    num = low_count_arguments(q->car);    num2 = low_count_arguments(q->cdr);    if(num<0 && num2>0) return num2;    if(num2<0 && num>0) return num;    if(num2<0 && num<0) return ~num<~num2?num:num2;    return num<num2?num:num2;       case PIKE_T_NAME:    case PIKE_T_ATTRIBUTE: +  case T_ASSIGN: +  case T_SCOPE:    return low_count_arguments(q->cdr);       default: return MAX_INT32;       case T_FUNCTION:    while(q->type == T_FUNCTION)    {    num++;    q = q->cdr;    }
pike.git/src/pike_types.c:5509:    {    case T_OR:    case T_AND:    return MAXIMUM(low_count_arguments(q->car),    low_count_arguments(q->cdr));       default: return 0;       case PIKE_T_NAME:    case PIKE_T_ATTRIBUTE: +  case T_ASSIGN: +  case T_SCOPE:    return low_minimum_arguments(q->cdr);       case T_FUNCTION:    num = 0;    while(q->type == T_FUNCTION)    {    if(low_match_types(void_type_string, q->car, B_EXACT))    return num;       num++;