diff options
author | Carl Worth <cworth@cworth.org> | 2010-05-17 12:45:16 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2010-05-17 12:46:35 -0700 |
commit | 796e1f0eadcfbbc6e4d79778b2378975204bb97c (patch) | |
tree | 5589eace3e7a8febf00ae9574ccd3214bdc70e5f | |
parent | acf87bc03411c4d9b818a346bc9dad858b0a2407 (diff) |
Expect 1 shift/reduce conflict.
The most recent fix to the parser introduced a shift/reduce
conflict. We document this conflict here, and tell bison that it need
not report it (since I verified that it's being resolved in the
direction desired).
For the record, I did write additional lexer code to eliminate this
conflict, but it was quite fragile, (would not accept a newline
between a function-like macro name and the left parenthesis, for
example).
-rw-r--r-- | glcpp-parse.y | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/glcpp-parse.y b/glcpp-parse.y index 6f158d9139..959083578e 100644 --- a/glcpp-parse.y +++ b/glcpp-parse.y @@ -116,6 +116,14 @@ _argument_list_member_at (argument_list_t *list, int index); %type <string_list> argument macro parameter_list replacement_list %type <argument_list> argument_list +/* Hard to remove shift/reduce conflicts documented as follows: + * + * 1. '(' after FUNC_MACRO name which is correctly resolved to shift + * to form macro invocation rather than reducing directly to + * content. + */ +%expect 1 + %% input: |