I've just found the problem described on Wikipedia
(https://en.wikipedia.org/wiki/The_lexer_hack), but not much practical
information on actually handling it.
On 08/05/2019 18:48, EML wrote:
I'm having trouble seeing how to handle user-defined types without lots
of feedback from the parser to the lexer. For example, consider a C-like
language with a struct declaration:
foo() {
struct a {...}; // type defn
struct a b; // declare object 'b' of user-defined type 'a'
}
this is easy to parse, but if you add a typedef, or go to C++, you can
have code that looks like this:
foo() {
struct a {...};
a b;
}
With a simple flex/bison setup this is likely to lead to a lot of
conflicts. So how do you handle this? Do you just work through the
conflicts, if possible, or is this a job for a hand-coded lexer, which
can be told about new types at runtime?
_______________________________________________
help-bison@gnu.org https://lists.gnu.org/mailman/listinfo/help-bison
_______________________________________________
help-bison@gnu.org https://lists.gnu.org/mailman/listinfo/help-bison