[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] scratch/last-cedet-merge 8daca76 30/50: semantic: C gramma
From: |
David Engster |
Subject: |
[Emacs-diffs] scratch/last-cedet-merge 8daca76 30/50: semantic: C grammar optimizations |
Date: |
Wed, 25 Jan 2017 22:15:22 +0000 (UTC) |
branch: scratch/last-cedet-merge
commit 8daca76a3292e7f5faca95628144d2f06972fa93
Author: Eric Ludlam <address@hidden>
Commit: David Engster <address@hidden>
semantic: C grammar optimizations
* admin/grammars/c.by (extern-c, c-or-cpp, opt-extern-c-contents):
Optimize out all the extra EXTERN matches.
---
admin/grammars/c.by | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/admin/grammars/c.by b/admin/grammars/c.by
index 06d58bd..ccdf808 100644
--- a/admin/grammars/c.by
+++ b/admin/grammars/c.by
@@ -240,20 +240,24 @@ extern-c-contents
;
extern-c
- : EXTERN C semantic-list
+ : EXTERN c-or-cpp opt-extern-c-contents
;; Extern C commands which contain a list need to have the
;; entries of the list extracted, and spliced into the main
;; list of entries. This must be done via the function
;; that expands singular nonterminals, such as int x,y;
- (TAG "C" 'extern :members (EXPANDFULL $3 extern-c-contents) )
- | EXTERN CPP semantic-list
- (TAG "C" 'extern :members (EXPANDFULL $3 extern-c-contents) )
- | EXTERN C
- ;; A plain extern "C" call should add something to the token,
- ;; but just strip it from the buffer here for now.
- ( nil )
- | EXTERN CPP
- ( nil )
+ (TAG (car $2) 'extern :members $3)
+ ;
+
+c-or-cpp
+ : C
+ | CPP
+ ;
+
+opt-extern-c-contents
+ : semantic-list
+ (EXPANDFULL $1 extern-c-contents)
+ | ;; EMPTY
+ ()
;
macro
- [Emacs-diffs] scratch/last-cedet-merge 783fb86 46/50: semantic: Add 'fromfile' option to grammar package, (continued)
- [Emacs-diffs] scratch/last-cedet-merge 783fb86 46/50: semantic: Add 'fromfile' option to grammar package, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge d2a57bd 50/50: CEDET: Fix "unknown slot [...]" warnings, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge f11e08f 10/50: semantic: Fix wisent parser recursion, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge e4e864a 39/50: semantic: Properly create canonical name for C++ type tag, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 8571383 16/50: semantic: Incorporate local scope when finding type, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge ec4505d 17/50: semantic: Accept FLAGS in texinfo-mode for analyzing completions, David Engster, 2017/01/25
- [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 <=
- [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, 2017/01/25
- [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