pike.git / src / las.c

version» Context lines:

pike.git/src/las.c:221:      static int low_count_args(node *n)   {    int a,b;       if(!n) return 0;    switch(n->token)    {    case F_COMMA_EXPR:    case F_VAL_LVAL: +  case F_FOREACH_VAL_LVAL:    case F_ARG_LIST:    a=count_args(CAR(n));    if(a==-1) return -1;    b=count_args(CDR(n));    if(b==-1) return -1;    return a+b;       case F_CAST:    if(n->type == void_type_string)    return 0;
pike.git/src/las.c:305:       if(!n) return 0;       orig_parent = n->parent;    n->parent = NULL;       while(1) {    int val;    while ((n->token == F_COMMA_EXPR) ||    (n->token == F_VAL_LVAL) || +  (n->token == F_FOREACH_VAL_LVAL) ||    (n->token == F_ARG_LIST)) {    if (CAR(n)) {    CAR(n)->parent = n;    n = CAR(n);    } else if (CDR(n)) {    CDR(n)->parent = n;    n = CDR(n);    } else {    /* Unlikely, but... */    goto backtrack;
pike.git/src/las.c:2385: Inside #if defined(PIKE_DEBUG)
   case F_CONSTANT:    {    struct byte_buffer buf = BUFFER_INIT();    describe_svalue(&buf, & foo->u.sval, 0, 0);    fprintf(stderr, "const(%s)",buffer_get_string(&buf));    buffer_free(&buf);    break;    }       case F_VAL_LVAL: +  case F_FOREACH_VAL_LVAL:    low_print_tree(_CAR(foo),0);    fputs(",&", stderr);    low_print_tree(_CDR(foo),0);    return;       case F_AUTO_MAP:    fputs("__automap__ ", stderr);    low_print_tree(_CAR(foo),0);    fputc('(', stderr);    low_print_tree(_CDR(foo),0);
pike.git/src/las.c:2867:    case F_ARRAY_LVALUE:    find_written_vars(CAR(n), p, 1);    break;       case F_LVALUE_LIST:    find_written_vars(CAR(n), p, 1);    find_written_vars(CDR(n), p, 1);    break;       case F_VAL_LVAL: +  case F_FOREACH_VAL_LVAL:    find_written_vars(CAR(n), p, 0);    find_written_vars(CDR(n), p, 1);    break;       default:    if(car_is_node(n)) find_written_vars(CAR(n), p, 0);    if(cdr_is_node(n)) find_written_vars(CDR(n), p, 0);    }   }   
pike.git/src/las.c:3950:    } else if(!match_types(CAR(n)->type, mixed_type_string))    yyerror("Bad switch expression.");    copy_pike_type(n->type, void_type_string);    break;       case F_CONSTANT:    n->type = get_type_of_svalue(&n->u.sval);    break;       case F_FOREACH: -  if (!CAR(n) || (CAR(n)->token != F_VAL_LVAL)) { +  if (!CAR(n) || (CAR(n)->token != F_FOREACH_VAL_LVAL)) {    yyerror("foreach(): No expression to loop over.");    } else {    if (!CAAR(n) || pike_types_le(CAAR(n)->type, void_type_string)) {    yyerror("foreach(): Looping over a void expression.");    } else {    check_foreach_type( CAAR(n), CDAR(n), NULL, NULL);    }    }    copy_pike_type(n->type, void_type_string);    break;
pike.git/src/las.c:4193:    OPT_FLAG_NODE))    {    if(car_is_node(n) &&    !(CAR(n)->tree_info & (OPT_NOT_CONST|    OPT_SIDE_EFFECT|    OPT_EXTERNAL_DEPEND|    OPT_ASSIGNMENT|    OPT_RETURN|    OPT_FLAG_NODE)) &&    (CAR(n)->tree_info & OPT_TRY_OPTIMIZE) && -  CAR(n)->token != F_VAL_LVAL) +  CAR(n)->token != F_VAL_LVAL && +  CAR(n)->token != F_FOREACH_VAL_LVAL)    {    _CAR(n) = eval(CAR(n));    if(CAR(n)) CAR(n)->parent = n;    zapp_try_optimize(CAR(n)); /* avoid infinite loops */    continue;    }    if(cdr_is_node(n) &&    !(CDR(n)->tree_info & (OPT_NOT_CONST|    OPT_SIDE_EFFECT|    OPT_EXTERNAL_DEPEND|