pike.git / src / language.yacc

version» Context lines:

pike.git/src/language.yacc:4262:    node *tmp;       /* FIXME: Why build the node at all? */    /* Because the optimizer cannot optimize the root node of the    * tree properly -Hubbe    */    tmp=mknode(F_COMMA_EXPR, $3, 0);    optimize_node(tmp);       t=(tmp && CAR(tmp) && CAR(tmp)->type ? CAR(tmp)->type : mixed_type_string); -  if(TEST_COMPAT(7,0)) -  { -  struct pike_string *s=describe_type(t); -  $$ = mkstrnode(s); -  free_string(s); -  }else{ +     $$ = mktypenode(t); -  } +     free_node(tmp);    }    | TOK_TYPEOF '(' error ')' { $$=0; yyerrok; }    | TOK_TYPEOF '(' error '}' { $$=0; yyerror("Missing ')'."); }    | TOK_TYPEOF '(' error TOK_LEX_EOF    {    $$=0; yyerror("Missing ')'.");    yyerror("Unexpected end of file.");    }    | TOK_TYPEOF '(' error ';' { $$=0; yyerror("Missing ')'."); }
pike.git/src/language.yacc:4671:      /* Add a local variable to the current function in frame.    * NOTE: Steals the references to type and def, but not to str.    */   int low_add_local_name(struct compiler_frame *frame,    struct pike_string *str,    struct pike_type *type,    node *def)   {    -  if (str->len && !TEST_COMPAT(7,0)) { +  if (str->len) {    int tmp=low_islocal(frame,str);    if(tmp>=0 && tmp >= frame->last_block_level)    {    my_yyerror("Duplicate local variable %S, "    "previous declaration on line %d\n",    str, frame->variable[tmp].line);    }       if(type == void_type_string)    {