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
}
It means
int yyerror(char* s){
//some code here
}
code attached to your question is just another way of specifying function argument types.
这是旧的K&R C.
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
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.