summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2010-05-17 12:45:16 -0700
committerCarl Worth <cworth@cworth.org>2010-05-17 12:46:35 -0700
commit796e1f0eadcfbbc6e4d79778b2378975204bb97c (patch)
tree5589eace3e7a8febf00ae9574ccd3214bdc70e5f
parentacf87bc03411c4d9b818a346bc9dad858b0a2407 (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.y8
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: