Branch: Tag:

2004-03-18

2004-03-18 14:45:34 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Bugfix for errors in lambda arguments.

Rev: src/language.yacc:1.334

2:   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: language.yacc,v 1.333 2004/03/17 10:30:37 grubba Exp $ + || $Id: language.yacc,v 1.334 2004/03/18 14:45:34 grubba Exp $   */      %pure_parser
113:   /* This is the grammar definition of Pike. */      #include "global.h" - RCSID("$Id: language.yacc,v 1.333 2004/03/17 10:30:37 grubba Exp $"); + RCSID("$Id: language.yacc,v 1.334 2004/03/18 14:45:34 grubba Exp $");   #ifdef HAVE_MEMORY_H   #include <memory.h>   #endif
775:    0,    OPT_EXTERNAL_DEPEND|OPT_SIDE_EFFECT);    +  fprintf(stderr, "%s:%d: current_function_number: %d\n", +  __FILE__, __LINE__, +  Pike_compiler->compiler_frame->current_function_number); +     Pike_compiler->varargs=0;       if ($1 & ID_VARIANT) {
1931:   #endif /* LAMBDA_DEBUG */    if(Pike_compiler->compiler_pass == 2)    Pike_compiler->compiler_frame->current_function_number=isidentifier(name); +  +  fprintf(stderr, "%s:%d: current_function_number: %d\n", +  __FILE__, __LINE__, +  Pike_compiler->compiler_frame->current_function_number); +     f=dooptcode(name,    $7,    type,
1954:    free_node ($2);    pop_compiler_frame();    } -  | TOK_LAMBDA push_compiler_frame1 error +  | TOK_LAMBDA line_number_info push_compiler_frame1 error    {    pop_compiler_frame();    $$ = mkintnode(0); -  +  COPY_LINE_NUMBER_INFO($$, $2); +  free_node($2);    }    ;   
2024:    }    Pike_compiler->varargs=0;    Pike_compiler->compiler_frame->current_function_number=id; +  +  fprintf(stderr, "%s:%d: current_function_number: %d\n", +  __FILE__, __LINE__, +  Pike_compiler->compiler_frame->current_function_number);    n=0;    if(Pike_compiler->compiler_pass > 1 &&    (i=ID_FROM_INT(Pike_compiler->new_program, id)))
2160:    }    Pike_compiler->varargs=0;    Pike_compiler->compiler_frame->current_function_number=id; +  +  fprintf(stderr, "%s:%d: current_function_number: %d\n", +  __FILE__, __LINE__, +  Pike_compiler->compiler_frame->current_function_number);    n=0;    if(Pike_compiler->compiler_pass > 1 &&    (i=ID_FROM_INT(Pike_compiler->new_program, id)))
2322:    0,    OPT_SIDE_EFFECT);    +  fprintf(stderr, "%s:%d: current_function_number: %d\n", +  __FILE__, __LINE__, +  Pike_compiler->compiler_frame->current_function_number); +     Pike_compiler->varargs = 0;       /* Third: Generate the initialization code.
2956:    | m_expr_list2 ',' error    ;    - assoc_pair: expr0 expected_colon expr0 { $$=mknode(F_ARG_LIST,$1,$3); } + assoc_pair: expr0 expected_colon expr0 +  { +  $$=mknode(F_ARG_LIST,$1,$3); +  }    | expr0 expected_colon error { free_node($1); $$=0; }    ;   
3900:    Pike_fatal("Stack error (underflow)\n");   #endif    +  fprintf(stderr, "YYERROR: %s\n", str); +     if (Pike_compiler->num_parse_error > 20) return;    Pike_compiler->num_parse_error++;    cumulative_parse_error++;