[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] scratch/last-cedet-merge f3674d0 33/50: semantic: Parse C+
From: |
David Engster |
Subject: |
[Emacs-diffs] scratch/last-cedet-merge f3674d0 33/50: semantic: Parse C++ override/final correctly |
Date: |
Wed, 25 Jan 2017 22:15:22 +0000 (UTC) |
branch: scratch/last-cedet-merge
commit f3674d05e58768c41ed2383563ccb44300bd5d49
Author: Ramkumar Ramachandra <address@hidden>
Commit: David Engster <address@hidden>
semantic: Parse C++ override/final correctly
override and final are a perfectly good opt-post-fcn-modifiers in
C++. Parse them correctly.
* admin/grammars/c.by (post-fcn-modifiers): Add tokens OVERRIDE and
FINAL.
* lisp/cedet/semantic/bovine/c.el (semantic-c-reconstitute-token): Add
:override-flag and :final-flag.
Copyright-paperwork-exempt: yes
---
admin/grammars/c.by | 6 ++++++
lisp/cedet/semantic/bovine/c.el | 4 +++-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/admin/grammars/c.by b/admin/grammars/c.by
index 094e8d8..38a33f9 100644
--- a/admin/grammars/c.by
+++ b/admin/grammars/c.by
@@ -143,6 +143,10 @@
%put THROW summary "<type> <methoddef> (<method args>) throw (<exception>) ..."
%token REENTRANT "reentrant"
%put REENTRANT summary "<type> <methoddef> (<method args>) reentrant ..."
+%token OVERRIDE "override"
+%put OVERRIDE summary "<type> <methoddef> (<method args>) override ..."
+%token FINAL "final"
+%put FINAL summary "<type> <methoddef> (<method args>) final ..."
%token TRY "try"
%token CATCH "catch"
%put { TRY CATCH } summary "try { <body> } catch { <catch code> }"
@@ -852,6 +856,8 @@ opt-post-fcn-modifiers
post-fcn-modifiers
: REENTRANT
| CONST
+ | OVERRIDE
+ | FINAL
;
opt-throw
diff --git a/lisp/cedet/semantic/bovine/c.el b/lisp/cedet/semantic/bovine/c.el
index 449a763..a72b0dd 100644
--- a/lisp/cedet/semantic/bovine/c.el
+++ b/lisp/cedet/semantic/bovine/c.el
@@ -1362,8 +1362,10 @@ Optional argument STAR and REF indicate the number of *
and & in the typedef."
;; `throws' as a common name for things that toss
;; exceptions about.
:throws (nth 5 tokenpart)
- ;; Reentrant is a C++ thingy. Add it here
+ ;; Reentrant, override, final are a C++ things. Add it here.
:reentrant-flag (if (member "reentrant" (nth 6 tokenpart)) t)
+ :override-flag (if (member "override" (nth 6 tokenpart)) t)
+ :final-flag (if (member "final" (nth 6 tokenpart)) t)
;; A function post-const is funky. Try stuff
:methodconst-flag (if (member "const" (nth 6 tokenpart)) t)
;; prototypes are functions w/ no body
- [Emacs-diffs] scratch/last-cedet-merge 307b510 09/50: semantic: Deal with missing prefix when completing symbol, (continued)
- [Emacs-diffs] scratch/last-cedet-merge 307b510 09/50: semantic: Deal with missing prefix when completing symbol, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge fdd5968 15/50: semantic: New function to calculate scope around tag, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge ebc59a5 19/50: semantic: Accept FLAGS parameter for srecode-template-mode, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 47471b9 12/50: EDE: Add missing require and silence byte compiler, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 7308eaf 18/50: semantic: Accept FLAGS parameter for makefile-mode for analyzing completions, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge b4d1399 14/50: EDE: Rework config file detection, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 95f8a69 29/50: semantic: More C grammar optimizations, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge deaa8c9 24/50: semantic: New function to find library with macro definition, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 0391760 13/50: semantic: Do not strip '*' from operator, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 6ca095c 21/50: semantic: Add autoload for Add autoload for `semantic-analyze-debug-assist', David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge f3674d0 33/50: semantic: Parse C++ override/final correctly,
David Engster <=
- [Emacs-diffs] scratch/last-cedet-merge fb127f2 34/50: semantic: C grammar fixes, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge cc30b46 11/50: EDE: Move ede-global-list-sanity-check to ede/files.el, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 5cb7aed 22/50: semantic: New c-mode override for analyzing tag type members, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge c2d4ad8 23/50: semantic: Update keybinings for grammar mode, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 03c5f0d 25/50: semantic: Add more syntax modifications for scheme lexer, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 6b57c5b 20/50: semantic: Introduce `semantic-analyze-tag-type-members', David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 02644fe 36/50: semantic: Add missing save-excursion for scope calculation, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 50139fb 45/50: semantic: Fix scope calculation for 'enum', David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 03bb495 44/50: semantic: Fix for Python lexer, David Engster, 2017/01/25
- [Emacs-diffs] scratch/last-cedet-merge 3cbb968 47/50: semantic: Use file name for grammar name instead of %package token, David Engster, 2017/01/25