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
%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> }"
post-fcn-modifiers
: REENTRANT
| CONST
+ | OVERRIDE
+ | FINAL
;
opt-throw
;; `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