emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] scratch/last-cedet-merge 8daca76 30/37: semantic: C gramma


From: David Engster
Subject: [Emacs-diffs] scratch/last-cedet-merge 8daca76 30/37: semantic: C grammar optimizations
Date: Sun, 22 Jan 2017 21:26:33 +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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]