I’m developing a lex/yacc c compiler.
In order to handle failures and parse errors, I want to deploy an exception system handler.
Actually only a “parse error” message is handled whatever the problem is.for example:
typedef struct , struct_name{...} this input will produce a parsing error because of the extra comma.
My purpose is to throw a contextual exception,giving us the possibility to focus exactly where the problem is.such as for this example :
“Invalid structure declaration “
I really need help to solve this problème.
This will go into your parser. As it runs, it gets tokens from the lexer. If the next token does not “fit” the current rule, then you have a problem. Luckily, there already exists a section for dealing with these situations! See bison error recovery for the gnu version of yacc and how to deal with this. It’ll go through the concepts, and variables to deal with just the situation you have here.