Reputation: 6851
I'm using Bison to create a simple parser and have some trouble understanding the C code below. To me it doesn't look like a valid statement, but gcc comepiles it neatly and the code in the block executes on parsing error.
I'd really like to know what this actually means.
The code I refer to is from http://dinosaur.compilertools.net/bison/bison_7.html#SEC66 :
yyerror (s)
char *s;
{
// Some code here
}
Upvotes: 5
Views: 768
Reputation: 1
GNU bison is now at version 2.5, see here. Why do you use such an ancient version (you refer to bison 1.25 from 1996)?
The yyerror
function is for error recovery. A simple example is here
Upvotes: 1
Reputation: 2854
It means
int yyerror(char* s){
//some code here
}
code attached to your question is just another way of specifying function argument types.
Upvotes: 4
Reputation: 36451
That's K&R C
In modern C (C89/90 or C99) that would be:
int yyerror(char *s)
{
}
Upvotes: 8