Hi List, This is the only place I found to ask for "lemon parser" error.
When trying to use the "%token_destructor" directive: %include { #include <stdio.h> void token_dtor (struct Token * t) { fprintf(stderr, "In token_destructor: t -> value=%s\n", t -> value); } } %token_destructor { token_dtor($$); } I got the following error: error: too many arguments to function 'yy_destructor' I tried to understand how "lemon" generated the calls for that function and found that: 1) The definition of "yy_destructor" is with only 2 arguments: static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ switch( yymajor ){ /* Here is inserted the actions which take place when a ... 2) "Lemon" generates different calls to "yy_destructor", sometimes with 2 or 3 parameters : yy_destructor( yymajor, &yytos->minor); <- HERE with 2 arguments, which is fine yy_destructor(yypParser,4,&yymsp[0].minor); <- HERE with 3 arguments, which is an error yy_destructor(yypParser,5,&yymsp[-2].minor); <- same yy_destructor(yypParser,6,&yymsp[0].minor); <- same ... Sometime, the "yy_destructor" si called with 2 arguments as defined and some other time, it's called with 3 arguments. Is it a bug or am I missing something? Thanks in advance Frederic _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users