From a60a2b6db23998bc02f3b5d5c9fb64205d21d357 Mon Sep 17 00:00:00 2001 From: David Engster Date: Thu, 6 Feb 2014 21:57:24 +0100 Subject: [PATCH] Grammar bug fixes from CEDET upstream. * grammars/c.by (function-pointer): Correctly deal with anonymous function pointers. (opt-brackets-after-symbol): New. (multi-stage-dereference): Use it. Add rules for explicit matching the last dereference. --- admin/ChangeLog | 8 ++++++++ admin/grammars/c.by | 19 +++++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/admin/ChangeLog b/admin/ChangeLog index 35af2d5dfd..3695deff98 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,11 @@ +2014-02-06 David Engster + + * grammars/c.by (function-pointer): Correctly deal with anonymous + function pointers. + (opt-brackets-after-symbol): New. + (multi-stage-dereference): Use it. Add rules for explicit + matching the last dereference. + 2014-01-16 Eric S. Raymond * notes/commits: Add a 'graph on VCS-independent ways of diff --git a/admin/grammars/c.by b/admin/grammars/c.by index fa85689c13..0fd8a33f25 100644 --- a/admin/grammars/c.by +++ b/admin/grammars/c.by @@ -1113,8 +1113,8 @@ functionname ; function-pointer - : LPAREN STAR symbol RPAREN - ( (concat "*" $3) ) + : LPAREN STAR opt-symbol RPAREN + ( (concat "*" ,(car $3)) ) | LPAREN symbol RPAREN ( $2 ) ; @@ -1154,14 +1154,25 @@ type-cast-list : open-paren typeformbase close-paren ; +opt-brackets-after-symbol + : brackets-after-symbol + | ;; EMPTY + ; + brackets-after-symbol : PAREN_BLCK | BRACK_BLCK ; multi-stage-dereference - : namespace-symbol brackets-after-symbol PERIOD multi-stage-dereference ;; method call - | namespace-symbol brackets-after-symbol MINUS GREATER multi-stage-dereference ;;method call + : namespace-symbol opt-brackets-after-symbol + PERIOD multi-stage-dereference ;; method call + | namespace-symbol opt-brackets-after-symbol + MINUS GREATER multi-stage-dereference ;;method call + | namespace-symbol opt-brackets-after-symbol + PERIOD namespace-symbol opt-brackets-after-symbol + | namespace-symbol opt-brackets-after-symbol + MINUS GREATER namespace-symbol opt-brackets-after-symbol | namespace-symbol brackets-after-symbol ; -- 2.20.1