Commit f9694a71 authored by Alan Mackenzie's avatar Alan Mackenzie

Implement "final" before C++ class inheritance lists.

* lisp/progmodes/cc-langs.el (c-class-id-suffix-ws-ids-kwds)
(c-class-id-suffix-ws-ids-key): New lang const/var.

* lisp/progmodes/cc-engine.el (c-guess-basic-syntax CASE 5D.4): Check for and
skip over any matches for c-class-id-suffix-ws-ids-key (i.e. "final") before
":".
parent c2c9ef2c
Pipeline #1270 failed with stage
in 38 minutes and 53 seconds
......@@ -12734,6 +12734,13 @@ comment at the start of cc-engine.el for more info."
(if (eq (char-after) ?<)
(zerop (c-forward-token-2 1 t indent-point))
t)
(progn
(while
(and
(< (point) indent-point)
(looking-at c-class-id-suffix-ws-ids-key)
(zerop (c-forward-token-2 1 nil indent-point))))
t)
(eq (char-after) ?:))))
(goto-char placeholder)
(c-add-syntax 'inher-cont (c-point 'boi)))
......
......@@ -2049,6 +2049,19 @@ effect in the declaration, but are syntactically like whitespace."
(c-lang-defvar c-type-decl-suffix-ws-ids-key
(c-lang-const c-type-decl-suffix-ws-ids-key))
(c-lang-defconst c-class-id-suffix-ws-ids-kwds
"\"Identifiers\" that when immediately following the identifier
of a class declaration have semantic effect in the declaration,
but are syntactially like whitespace."
t nil
c++ '("final"))
(c-lang-defconst c-class-id-suffix-ws-ids-key
;; An adorned regexp matching `c-class-id-suffix-ws-ids-kwds'.
t (c-make-keywords-re t (c-lang-const c-class-id-suffix-ws-ids-kwds)))
(c-lang-defvar c-class-id-suffix-ws-ids-key
(c-lang-const c-class-id-suffix-ws-ids-key))
(c-lang-defconst c-class-decl-kwds
"Keywords introducing declarations where the following block (if any)
contains another declaration level that should be considered a class.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment