Le 25 août 09 à 12:19, Rui Maciel a écrit :

Is it possible to set the flex start conditions from within bison? I've set a couple of lexer start conditions in the flex file and added yy_push_state() to the bison file, which already includes a flex- generated header. Nonetheless, the compiler still complains that the start condition symbol (named s_element) is undeclared. As the start condition symbol is described in the flex file as:

#ifdef YY_HEADER_EXPORT_START_CONDITIONS
#define INITIAL 0
#define s_element 1

#endif

That leads me to believe that some other tweaking is needed to at least define YY_HEADER_EXPORT_START_CONDITIONS and therefore declare the start condition symbol.

So, how do we set flex start conditions from within a bison file?

AFAIK, Flex does not generate a header file with its definitions such as start conditions, so you probably need to write a small wrapper around flex that extracts it from the generated scanner *.c file. Then, from the grammar file, just include that extracted file from like any other.

_______________________________________________
help-bison@gnu.org http://lists.gnu.org/mailman/listinfo/help-bison

Reply via email to