[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] scratch/last-cedet-merge 592b5fe 48/50: semantic: Improve
From: |
David Engster |
Subject: |
[Emacs-diffs] scratch/last-cedet-merge 592b5fe 48/50: semantic: Improve C++ 'friend' parsing |
Date: |
Wed, 25 Jan 2017 22:15:23 +0000 (UTC) |
branch: scratch/last-cedet-merge
commit 592b5fe2aac80b5a2dca08c4d0e3966d8f6ebb6e
Author: Eric Ludlam <address@hidden>
Commit: David Engster <address@hidden>
semantic: Improve C++ 'friend' parsing
* admin/grammars/c.by (classsubparts): Add a FRIEND for a class that
doesn't specify the token CLASS. Add SEMICOLON to end of friend
statements.
---
admin/grammars/c.by | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/admin/grammars/c.by b/admin/grammars/c.by
index 3db1be7..9bfe401 100644
--- a/admin/grammars/c.by
+++ b/admin/grammars/c.by
@@ -319,10 +319,14 @@ classsubparts
;; For QT, they may put a `slot' keyword between the protection
;; and the COLON. @todo - Have the QT stuff use macros.
(TAG (car $1) 'label)
+ | FRIEND symbol SEMICOLON
+ ;; Like class, but w/out the CLASS symbol. Add this to avoid
+ ;; it being detected as a variable with undeclared int type.
+ (TAG $2 'friend)
| var-or-fun
- | FRIEND func-decl
+ | FRIEND func-decl SEMICOLON
(TAG (car $2) 'friend)
- | FRIEND CLASS symbol
+ | FRIEND CLASS symbol SEMICOLON
(TAG $3 'friend)
| type
| define
- [Emacs-diffs] scratch/last-cedet-merge 0a2b38b 26/50: EDE: Expand file name, (continued)
- [Emacs-diffs] scratch/last-cedet-merge 0a2b38b 26/50: EDE: Expand file name, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 2b42323 35/50: EDE: Fix for project detection, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge cfd7139 28/50: semantic: Some C grammar optimizations, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 278c06c 31/50: semantic: Optimize 'typeformbase' in C grammar, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 8daca76 30/50: semantic: C grammar optimizations, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 74263b1 37/50: semantic: Change unary expression rule, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge cfc56f5 38/50: semantic: Fix for db-global, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge ebc8418 40/50: semantic: Check if slot is bound, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge b4bcc84 32/50: semantic: completion fixes, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge b893e8a 41/50: semantic: Allow empty type relation separation character, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 592b5fe 48/50: semantic: Improve C++ 'friend' parsing,
David Engster <=
- [Emacs-diffs] scratch/last-cedet-merge 742013b 42/50: semantic: Improve grammar-mode, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 9c2feac 49/50: CEDET: Fix "obsolete name arg [...] to constructor" warnings, David Engster, 2017/01/25