Mercurial > emacs
annotate lisp/progmodes/cc-langs.el @ 104267:cc80b7c0d057
(ELCFILES): Add international/ucs-normalize.elc.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Fri, 14 Aug 2009 09:24:02 +0000 |
parents | 864eb5478bfc |
children | 60cf2b54da00 |
rev | line source |
---|---|
36920 | 1 ;;; cc-langs.el --- language specific settings for CC Mode |
18720 | 2 |
74372 | 3 ;; Copyright (C) 1985, 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998, |
100908 | 4 ;; 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 |
75347 | 5 ;; Free Software Foundation, Inc. |
18720 | 6 |
75307 | 7 ;; Authors: 2002- Alan Mackenzie |
8 ;; 1998- Martin Stjernholm | |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
9 ;; 1992-1999 Barry A. Warsaw |
101112
0685234e527d
Comment (minor header format fixes).
Glenn Morris <rgm@gnu.org>
parents:
100908
diff
changeset
|
10 ;; 1987 Dave Detlefs |
0685234e527d
Comment (minor header format fixes).
Glenn Morris <rgm@gnu.org>
parents:
100908
diff
changeset
|
11 ;; 1987 Stewart Clamen |
18720 | 12 ;; 1985 Richard M. Stallman |
24282 | 13 ;; Maintainer: bug-cc-mode@gnu.org |
18720 | 14 ;; Created: 22-Apr-1997 (split from cc-mode.el) |
20141 | 15 ;; Version: See cc-mode.el |
18720 | 16 ;; Keywords: c languages oop |
17 | |
18 ;; This file is part of GNU Emacs. | |
19 | |
94673
52b7a8c22af5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94145
diff
changeset
|
20 ;; GNU Emacs is free software: you can redistribute it and/or modify |
18720 | 21 ;; it under the terms of the GNU General Public License as published by |
94673
52b7a8c22af5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94145
diff
changeset
|
22 ;; the Free Software Foundation, either version 3 of the License, or |
52b7a8c22af5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94145
diff
changeset
|
23 ;; (at your option) any later version. |
18720 | 24 |
25 ;; GNU Emacs is distributed in the hope that it will be useful, | |
26 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
27 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
28 ;; GNU General Public License for more details. | |
29 | |
30 ;; You should have received a copy of the GNU General Public License | |
94673
52b7a8c22af5
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94145
diff
changeset
|
31 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
18720 | 32 |
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36920
diff
changeset
|
33 ;;; Commentary: |
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36920
diff
changeset
|
34 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
35 ;; HACKERS NOTE: There's heavy macro magic here. If you need to make |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
36 ;; changes in this or other files containing `c-lang-defconst' but |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
37 ;; don't want to read through the longer discussion below then read |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
38 ;; this: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
39 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
40 ;; o A change in a `c-lang-defconst' or `c-lang-defvar' will not take |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
41 ;; effect if the file containing the mode init function (typically |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
42 ;; cc-mode.el) is byte compiled. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
43 ;; o To make changes show in font locking you need to reevaluate the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
44 ;; `*-font-lock-keywords-*' constants, which normally is easiest to |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
45 ;; do with M-x eval-buffer in cc-fonts.el. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
46 ;; o In either case it's necessary to reinitialize the mode to make |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
47 ;; the changes show in an existing buffer. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
48 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
49 ;;; Introduction to the language dependent variable system: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
50 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
51 ;; This file contains all the language dependent variables, except |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
52 ;; those specific for font locking which reside in cc-fonts.el. As |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
53 ;; far as possible, all the differences between the languages that CC |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
54 ;; Mode supports are described with these variables only, so that the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
55 ;; code can be shared. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
56 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
57 ;; The language constant system (see cc-defs.el) is used to specify |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
58 ;; various language dependent info at a high level, such as lists of |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
59 ;; keywords, and then from them generate - at compile time - the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
60 ;; various regexps and other low-level structures actually employed in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
61 ;; the code at runtime. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
62 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
63 ;; This system is also designed to make it easy for developers of |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
64 ;; derived modes to customize the source constants for new language |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
65 ;; variants, without having to keep up with the exact regexps etc that |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
66 ;; are used in each CC Mode version. It's possible from an external |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
67 ;; package to add a new language by inheriting an existing one, and |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
68 ;; then change specific constants as necessary for the new language. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
69 ;; The old values for those constants (and the values of all the other |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
70 ;; high-level constants) may be used to build the new ones, and those |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
71 ;; new values will in turn be used by the low-level definitions here |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
72 ;; to build the runtime constants appropriately for the new language |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
73 ;; in the current version of CC Mode. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
74 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
75 ;; Like elsewhere in CC Mode, the existence of a doc string signifies |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
76 ;; that a language constant is part of the external API, and that it |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
77 ;; therefore can be used with a high confidence that it will continue |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
78 ;; to work with future versions of CC Mode. Even so, it's not |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
79 ;; unlikely that such constants will change meaning slightly as this |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
80 ;; system is refined further; a certain degree of dependence on the CC |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
81 ;; Mode version is unavoidable when hooking in at this level. Also |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
82 ;; note that there's still work to be done to actually use these |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
83 ;; constants everywhere inside CC Mode; there are still hardcoded |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
84 ;; values in many places in the code. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
85 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
86 ;; Separate packages will also benefit from the compile time |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
87 ;; evaluation; the byte compiled file(s) for them will contain the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
88 ;; compiled runtime constants ready for use by (the byte compiled) CC |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
89 ;; Mode, and the source definitions in this file don't have to be |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
90 ;; loaded then. However, if a byte compiled package is loaded that |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
91 ;; has been compiled with a different version of CC Mode than the one |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
92 ;; currently loaded, then the compiled-in values will be discarded and |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
93 ;; new ones will be built when the mode is initialized. That will |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
94 ;; automatically trig a load of the file(s) containing the source |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
95 ;; definitions (i.e. this file and/or cc-fonts.el) if necessary. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
96 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
97 ;; A small example of a derived mode is available at |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
98 ;; <http://cc-mode.sourceforge.net/derived-mode-ex.el>. It also |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
99 ;; contains some useful hints for derived mode developers. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
100 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
101 ;;; Using language variables: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
102 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
103 ;; The `c-lang-defvar' forms in this file comprise the language |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
104 ;; variables that CC Mode uses. It does not work to use |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
105 ;; `c-lang-defvar' anywhere else (which isn't much of a limitation |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
106 ;; since these variables sole purpose is to interface with the CC Mode |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
107 ;; core functions). The values in these `c-lang-defvar's are not |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
108 ;; evaluated right away but instead collected to a single large `setq' |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
109 ;; that can be inserted for a particular language with the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
110 ;; `c-init-language-vars' macro. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
111 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
112 ;; This file is only required at compile time, or when not running |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
113 ;; from byte compiled files, or when the source definitions for the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
114 ;; language constants are requested. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
115 |
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36920
diff
changeset
|
116 ;;; Code: |
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36920
diff
changeset
|
117 |
101271
c7dad4ac139c
(declare-function): Add compatibility stub.
Glenn Morris <rgm@gnu.org>
parents:
101112
diff
changeset
|
118 ;; For Emacs < 22.2. |
c7dad4ac139c
(declare-function): Add compatibility stub.
Glenn Morris <rgm@gnu.org>
parents:
101112
diff
changeset
|
119 (eval-and-compile |
c7dad4ac139c
(declare-function): Add compatibility stub.
Glenn Morris <rgm@gnu.org>
parents:
101112
diff
changeset
|
120 (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) |
c7dad4ac139c
(declare-function): Add compatibility stub.
Glenn Morris <rgm@gnu.org>
parents:
101112
diff
changeset
|
121 |
26817 | 122 (eval-when-compile |
123 (let ((load-path | |
36920 | 124 (if (and (boundp 'byte-compile-dest-file) |
125 (stringp byte-compile-dest-file)) | |
126 (cons (file-name-directory byte-compile-dest-file) load-path) | |
26817 | 127 load-path))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
128 (load "cc-bytecomp" nil t))) |
26817 | 129 |
36920 | 130 (cc-require 'cc-defs) |
131 (cc-require 'cc-vars) | |
18842
72c2475ece1c
Require 'cc-defs for the definition of c-emacs-features.
Richard M. Stallman <rms@gnu.org>
parents:
18772
diff
changeset
|
132 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
133 |
57295
a35c512cab8c
Load cl here since cc-defs doesn't do it. This is necessary for
Martin Stjernholm <mast@lysator.liu.se>
parents:
56646
diff
changeset
|
134 ;; This file is not always loaded. See note above. |
a35c512cab8c
Load cl here since cc-defs doesn't do it. This is necessary for
Martin Stjernholm <mast@lysator.liu.se>
parents:
56646
diff
changeset
|
135 (cc-external-require 'cl) |
a35c512cab8c
Load cl here since cc-defs doesn't do it. This is necessary for
Martin Stjernholm <mast@lysator.liu.se>
parents:
56646
diff
changeset
|
136 |
18720 | 137 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
138 ;;; Setup for the `c-lang-defvar' system. |
44728
7a3ac6c387fe
CC Mode update to version 5.29. This is for testing; it's not a released
Martin Stjernholm <mast@lysator.liu.se>
parents:
38422
diff
changeset
|
139 |
7a3ac6c387fe
CC Mode update to version 5.29. This is for testing; it's not a released
Martin Stjernholm <mast@lysator.liu.se>
parents:
38422
diff
changeset
|
140 (eval-and-compile |
7a3ac6c387fe
CC Mode update to version 5.29. This is for testing; it's not a released
Martin Stjernholm <mast@lysator.liu.se>
parents:
38422
diff
changeset
|
141 ;; These are used to collect the init forms from the subsequent |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
142 ;; `c-lang-defvar' and `c-lang-setvar'. They are used to build the |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
143 ;; lambda in `c-make-init-lang-vars-fun' below, and to build `defvar's |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
144 ;; and `make-variable-buffer-local's in cc-engine and |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
145 ;; `make-local-variable's in `c-init-language-vars-for'. |
51748
f3cad02bce62
(c-style-alist, c-lang-variable-inits, c-lang-variable-inits-tail): The
Martin Stjernholm <mast@lysator.liu.se>
parents:
51714
diff
changeset
|
146 (defvar c-lang-variable-inits nil) |
f3cad02bce62
(c-style-alist, c-lang-variable-inits, c-lang-variable-inits-tail): The
Martin Stjernholm <mast@lysator.liu.se>
parents:
51714
diff
changeset
|
147 (defvar c-lang-variable-inits-tail nil) |
f3cad02bce62
(c-style-alist, c-lang-variable-inits, c-lang-variable-inits-tail): The
Martin Stjernholm <mast@lysator.liu.se>
parents:
51714
diff
changeset
|
148 (setq c-lang-variable-inits (list nil) |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
149 c-lang-variable-inits-tail c-lang-variable-inits) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
150 (defvar c-emacs-variable-inits nil) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
151 (defvar c-emacs-variable-inits-tail nil) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
152 (setq c-emacs-variable-inits (list nil) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
153 c-emacs-variable-inits-tail c-emacs-variable-inits)) |
36920 | 154 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
155 (defmacro c-lang-defvar (var val &optional doc) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
156 "Declares the buffer local variable VAR to get the value VAL. VAL is |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
157 evaluated and assigned at mode initialization. More precisely, VAL is |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
158 evaluated and bound to VAR when the result from the macro |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
159 `c-init-language-vars' is evaluated. |
44728
7a3ac6c387fe
CC Mode update to version 5.29. This is for testing; it's not a released
Martin Stjernholm <mast@lysator.liu.se>
parents:
38422
diff
changeset
|
160 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
161 `c-lang-const' is typically used in VAL to get the right value for the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
162 language being initialized, and such calls will be macro expanded to |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
163 the evaluated constant value at compile time." |
36920 | 164 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
165 (when (and (not doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
166 (eq (car-safe val) 'c-lang-const) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
167 (eq (nth 1 val) var) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
168 (not (nth 2 val))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
169 ;; Special case: If there's no docstring and the value is a |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
170 ;; simple (c-lang-const foo) where foo is the same name as VAR |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
171 ;; then take the docstring from the language constant foo. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
172 (setq doc (get (intern (symbol-name (nth 1 val)) c-lang-constants) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
173 'variable-documentation))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
174 (or (stringp doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
175 (setq doc nil)) |
18720 | 176 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
177 (let ((elem (assq var (cdr c-lang-variable-inits)))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
178 (if elem |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
179 (setcdr elem (list val doc)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
180 (setcdr c-lang-variable-inits-tail (list (list var val doc))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
181 (setq c-lang-variable-inits-tail (cdr c-lang-variable-inits-tail)))) |
18720 | 182 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
183 ;; Return the symbol, like the other def* forms. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
184 `',var) |
44728
7a3ac6c387fe
CC Mode update to version 5.29. This is for testing; it's not a released
Martin Stjernholm <mast@lysator.liu.se>
parents:
38422
diff
changeset
|
185 |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
186 (defmacro c-lang-setvar (var val) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
187 "Causes the variable VAR to be made buffer local and to get set to the |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
188 value VAL. VAL is evaluated and assigned at mode initialization. More |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
189 precisely, VAL is evaluated and bound to VAR when the result from the |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
190 macro `c-init-language-vars' is evaluated. VAR is typically a standard |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
191 Emacs variable like `comment-start'. |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
192 |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
193 `c-lang-const' is typically used in VAL to get the right value for the |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
194 language being initialized, and such calls will be macro expanded to |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
195 the evaluated constant value at compile time." |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
196 (let ((elem (assq var (cdr c-emacs-variable-inits)))) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
197 (if elem |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
198 (setcdr elem (list val)) ; Maybe remove "list", sometime. 2006-07-19 |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
199 (setcdr c-emacs-variable-inits-tail (list (list var val))) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
200 (setq c-emacs-variable-inits-tail (cdr c-emacs-variable-inits-tail)))) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
201 |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
202 ;; Return the symbol, like the other def* forms. |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
203 `',var) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
204 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
205 (put 'c-lang-defvar 'lisp-indent-function 'defun) |
71754
60304f6ae360
* progmodes/cc-awk.el, cc-defs.el, cc-fonts.el, cc-langs.el,
Alan Mackenzie <acm@muc.de>
parents:
70025
diff
changeset
|
206 ; (eval-after-load "edebug" ; 2006-07-09: def-edebug-spec is now in subr.el. |
60304f6ae360
* progmodes/cc-awk.el, cc-defs.el, cc-fonts.el, cc-langs.el,
Alan Mackenzie <acm@muc.de>
parents:
70025
diff
changeset
|
207 ; ' |
60304f6ae360
* progmodes/cc-awk.el, cc-defs.el, cc-fonts.el, cc-langs.el,
Alan Mackenzie <acm@muc.de>
parents:
70025
diff
changeset
|
208 (def-edebug-spec c-lang-defvar |
60304f6ae360
* progmodes/cc-awk.el, cc-defs.el, cc-fonts.el, cc-langs.el,
Alan Mackenzie <acm@muc.de>
parents:
70025
diff
changeset
|
209 (&define name def-form &optional stringp)) ;) |
18720 | 210 |
101271
c7dad4ac139c
(declare-function): Add compatibility stub.
Glenn Morris <rgm@gnu.org>
parents:
101112
diff
changeset
|
211 ;; Suppress "might not be defined at runtime" warning. |
c7dad4ac139c
(declare-function): Add compatibility stub.
Glenn Morris <rgm@gnu.org>
parents:
101112
diff
changeset
|
212 ;; This file is only used when compiling other cc files. |
c7dad4ac139c
(declare-function): Add compatibility stub.
Glenn Morris <rgm@gnu.org>
parents:
101112
diff
changeset
|
213 (declare-function delete-duplicates "cl-seq" (cl-seq &rest cl-keys)) |
c7dad4ac139c
(declare-function): Add compatibility stub.
Glenn Morris <rgm@gnu.org>
parents:
101112
diff
changeset
|
214 (declare-function mapcan "cl-extra" (cl-func cl-seq &rest cl-rest)) |
c7dad4ac139c
(declare-function): Add compatibility stub.
Glenn Morris <rgm@gnu.org>
parents:
101112
diff
changeset
|
215 (declare-function cl-macroexpand-all "cl-extra" (form &optional env)) |
c7dad4ac139c
(declare-function): Add compatibility stub.
Glenn Morris <rgm@gnu.org>
parents:
101112
diff
changeset
|
216 |
69140
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
217 (eval-and-compile |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
218 ;; Some helper functions used when building the language constants. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
219 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
220 (defun c-filter-ops (ops opgroup-filter op-filter &optional xlate) |
75130
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
221 ;; Extract a subset of the operators in the list OPS in a DWIM:ey |
80256
cdd9800b7aaf
(c-before-font-lock-function): Fix bug in doc-string, "c-old-LEN" ->
Alan Mackenzie <acm@muc.de>
parents:
80159
diff
changeset
|
222 ;; way. The return value is a plain list of operators: |
cdd9800b7aaf
(c-before-font-lock-function): Fix bug in doc-string, "c-old-LEN" ->
Alan Mackenzie <acm@muc.de>
parents:
80159
diff
changeset
|
223 ;; |
75130
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
224 ;; OPS either has the structure of `c-operators', is a single |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
225 ;; group in `c-operators', or is a plain list of operators. |
75130
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
226 ;; |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
227 ;; OPGROUP-FILTER specifies how to select the operator groups. It |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
228 ;; can be t to choose all groups, a list of group type symbols |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
229 ;; (such as 'prefix) to accept, or a function which will be called |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
230 ;; with the group symbol for each group and should return non-nil |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
231 ;; if that group is to be included. |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
232 ;; |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
233 ;; If XLATE is given, it's a function which is called for each |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
234 ;; matching operator and its return value is collected instead. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
235 ;; If it returns a list, the elements are spliced directly into |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
236 ;; the final result, which is returned as a list with duplicates |
75130
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
237 ;; removed using `equal'. |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
238 ;; |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
239 ;; `c-mode-syntax-table' for the current mode is in effect during |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
240 ;; the whole procedure. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
241 (unless (listp (car-safe ops)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
242 (setq ops (list ops))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
243 (cond ((eq opgroup-filter t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
244 (setq opgroup-filter (lambda (opgroup) t))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
245 ((not (functionp opgroup-filter)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
246 (setq opgroup-filter `(lambda (opgroup) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
247 (memq opgroup ',opgroup-filter))))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
248 (cond ((eq op-filter t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
249 (setq op-filter (lambda (op) t))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
250 ((stringp op-filter) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
251 (setq op-filter `(lambda (op) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
252 (string-match ,op-filter op))))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
253 (unless xlate |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
254 (setq xlate 'identity)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
255 (c-with-syntax-table (c-lang-const c-mode-syntax-table) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
256 (delete-duplicates |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
257 (mapcan (lambda (opgroup) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
258 (when (if (symbolp (car opgroup)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
259 (when (funcall opgroup-filter (car opgroup)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
260 (setq opgroup (cdr opgroup)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
261 t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
262 t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
263 (mapcan (lambda (op) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
264 (when (funcall op-filter op) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
265 (let ((res (funcall xlate op))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
266 (if (listp res) res (list res))))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
267 opgroup))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
268 ops) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
269 :test 'equal)))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
270 |
18720 | 271 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
272 ;;; Various mode specific values that aren't language related. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
273 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
274 (c-lang-defconst c-mode-menu |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
275 ;; The definition for the mode menu. The menu title is prepended to |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
276 ;; this before it's fed to `easy-menu-define'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
277 t `(["Comment Out Region" comment-region |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
278 (c-fn-region-is-active-p)] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
279 ["Uncomment Region" (comment-region (region-beginning) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
280 (region-end) '(4)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
281 (c-fn-region-is-active-p)] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
282 ["Indent Expression" c-indent-exp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
283 (memq (char-after) '(?\( ?\[ ?\{))] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
284 ["Indent Line or Region" c-indent-line-or-region t] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
285 ["Fill Comment Paragraph" c-fill-paragraph t] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
286 "----" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
287 ["Backward Statement" c-beginning-of-statement t] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
288 ["Forward Statement" c-end-of-statement t] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
289 ,@(when (c-lang-const c-opt-cpp-prefix) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
290 ;; Only applicable if there's a cpp preprocessor. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
291 `(["Up Conditional" c-up-conditional t] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
292 ["Backward Conditional" c-backward-conditional t] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
293 ["Forward Conditional" c-forward-conditional t] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
294 "----" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
295 ["Macro Expand Region" c-macro-expand |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
296 (c-fn-region-is-active-p)] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
297 ["Backslashify" c-backslash-region |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
298 (c-fn-region-is-active-p)])) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
299 "----" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
300 ("Toggle..." |
68773
dc49655f57ae
Update copyright for 2006.
Nick Roberts <nickrob@snap.net.nz>
parents:
67278
diff
changeset
|
301 ["Syntactic indentation" c-toggle-syntactic-indentation |
dc49655f57ae
Update copyright for 2006.
Nick Roberts <nickrob@snap.net.nz>
parents:
67278
diff
changeset
|
302 :style toggle :selected c-syntactic-indentation] |
69140
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
303 ["Electric mode" c-toggle-electric-state |
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
304 :style toggle :selected c-electric-flag] |
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
305 ["Auto newline" c-toggle-auto-newline |
68773
dc49655f57ae
Update copyright for 2006.
Nick Roberts <nickrob@snap.net.nz>
parents:
67278
diff
changeset
|
306 :style toggle :selected c-auto-newline] |
69140
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
307 ["Hungry delete" c-toggle-hungry-state |
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
308 :style toggle :selected c-hungry-delete-key] |
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
309 ["Subword mode" c-subword-mode |
70025
c4d23fcbb9bd
(c-mode-menu): Don't presume c-subword-mode is bound.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
69140
diff
changeset
|
310 :style toggle :selected (and (boundp 'c-subword-mode) |
c4d23fcbb9bd
(c-mode-menu): Don't presume c-subword-mode is bound.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
69140
diff
changeset
|
311 c-subword-mode)]))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
312 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
313 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
314 ;;; Syntax tables. |
18720 | 315 |
316 (defun c-populate-syntax-table (table) | |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
317 "Populate the given syntax table as necessary for a C-like language. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
318 This includes setting ' and \" as string delimiters, and setting up |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
319 the comment syntax to handle both line style \"//\" and block style |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
320 \"/*\" \"*/\" comments." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
321 |
18720 | 322 (modify-syntax-entry ?_ "_" table) |
323 (modify-syntax-entry ?\\ "\\" table) | |
324 (modify-syntax-entry ?+ "." table) | |
325 (modify-syntax-entry ?- "." table) | |
326 (modify-syntax-entry ?= "." table) | |
327 (modify-syntax-entry ?% "." table) | |
328 (modify-syntax-entry ?< "." table) | |
329 (modify-syntax-entry ?> "." table) | |
330 (modify-syntax-entry ?& "." table) | |
331 (modify-syntax-entry ?| "." table) | |
19300
b07fa43938cc
(c-mode-base-map, c++-mode-map):
Richard M. Stallman <rms@gnu.org>
parents:
19250
diff
changeset
|
332 (modify-syntax-entry ?\' "\"" table) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
333 (modify-syntax-entry ?\240 "." table) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
334 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
335 ;; Set up block and line oriented comments. The new C |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
336 ;; standard mandates both comment styles even in C, so since |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
337 ;; all languages now require dual comments, we make this the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
338 ;; default. |
18720 | 339 (cond |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
340 ;; XEmacs |
18720 | 341 ((memq '8-bit c-emacs-features) |
342 (modify-syntax-entry ?/ ". 1456" table) | |
19300
b07fa43938cc
(c-mode-base-map, c++-mode-map):
Richard M. Stallman <rms@gnu.org>
parents:
19250
diff
changeset
|
343 (modify-syntax-entry ?* ". 23" table)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
344 ;; Emacs |
18720 | 345 ((memq '1-bit c-emacs-features) |
346 (modify-syntax-entry ?/ ". 124b" table) | |
19300
b07fa43938cc
(c-mode-base-map, c++-mode-map):
Richard M. Stallman <rms@gnu.org>
parents:
19250
diff
changeset
|
347 (modify-syntax-entry ?* ". 23" table)) |
18720 | 348 ;; incompatible |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
349 (t (error "CC Mode is incompatible with this version of Emacs"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
350 |
19300
b07fa43938cc
(c-mode-base-map, c++-mode-map):
Richard M. Stallman <rms@gnu.org>
parents:
19250
diff
changeset
|
351 (modify-syntax-entry ?\n "> b" table) |
b07fa43938cc
(c-mode-base-map, c++-mode-map):
Richard M. Stallman <rms@gnu.org>
parents:
19250
diff
changeset
|
352 ;; Give CR the same syntax as newline, for selective-display |
b07fa43938cc
(c-mode-base-map, c++-mode-map):
Richard M. Stallman <rms@gnu.org>
parents:
19250
diff
changeset
|
353 (modify-syntax-entry ?\^m "> b" table)) |
b07fa43938cc
(c-mode-base-map, c++-mode-map):
Richard M. Stallman <rms@gnu.org>
parents:
19250
diff
changeset
|
354 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
355 (c-lang-defconst c-make-mode-syntax-table |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
356 "Functions that generates the mode specific syntax tables. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
357 The syntax tables aren't stored directly since they're quite large." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
358 t `(lambda () |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
359 (let ((table (make-syntax-table))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
360 (c-populate-syntax-table table) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
361 ;; Mode specific syntaxes. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
362 ,(cond ((c-major-mode-is 'objc-mode) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
363 ;; Let '@' be part of symbols in ObjC to cope with |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
364 ;; its compiler directives as single keyword tokens. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
365 ;; This is then necessary since it's assumed that |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
366 ;; every keyword is a single symbol. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
367 `(modify-syntax-entry ?@ "_" table)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
368 ((c-major-mode-is 'pike-mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
369 `(modify-syntax-entry ?@ "." table))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
370 table))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
371 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
372 (c-lang-defconst c-mode-syntax-table |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
373 ;; The syntax tables in evaluated form. Only used temporarily when |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
374 ;; the constants in this file are evaluated. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
375 t (funcall (c-lang-const c-make-mode-syntax-table))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
376 |
51946
048b0517e63d
(c++-make-template-syntax-table, c-syntactic-ws-start, c-syntactic-ws-end):
Martin Stjernholm <mast@lysator.liu.se>
parents:
51748
diff
changeset
|
377 (c-lang-defconst c++-make-template-syntax-table |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
378 ;; A variant of `c++-mode-syntax-table' that defines `<' and `>' as |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
379 ;; parenthesis characters. Used temporarily when template argument |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
380 ;; lists are parsed. Note that this encourages incorrect parsing of |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
381 ;; templates since they might contain normal operators that uses the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
382 ;; '<' and '>' characters. Therefore this syntax table might go |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
383 ;; away when CC Mode handles templates correctly everywhere. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
384 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
385 c++ `(lambda () |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
386 (let ((table (funcall ,(c-lang-const c-make-mode-syntax-table)))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
387 (modify-syntax-entry ?< "(>" table) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
388 (modify-syntax-entry ?> ")<" table) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
389 table))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
390 (c-lang-defvar c++-template-syntax-table |
51946
048b0517e63d
(c++-make-template-syntax-table, c-syntactic-ws-start, c-syntactic-ws-end):
Martin Stjernholm <mast@lysator.liu.se>
parents:
51748
diff
changeset
|
391 (and (c-lang-const c++-make-template-syntax-table) |
048b0517e63d
(c++-make-template-syntax-table, c-syntactic-ws-start, c-syntactic-ws-end):
Martin Stjernholm <mast@lysator.liu.se>
parents:
51748
diff
changeset
|
392 (funcall (c-lang-const c++-make-template-syntax-table)))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
393 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
394 (c-lang-defconst c-identifier-syntax-modifications |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
395 "A list that describes the modifications that should be done to the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
396 mode syntax table to get a syntax table that matches all identifiers |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
397 and keywords as words. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
398 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
399 The list is just like the one used in `font-lock-defaults': Each |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
400 element is a cons where the car is the character to modify and the cdr |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
401 the new syntax, as accepted by `modify-syntax-entry'." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
402 ;; The $ character is not allowed in most languages (one exception |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
403 ;; is Java which allows it for legacy reasons) but we still classify |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
404 ;; it as an indentifier character since it's often used in various |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
405 ;; machine generated identifiers. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
406 t '((?_ . "w") (?$ . "w")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
407 objc (append '((?@ . "w")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
408 (c-lang-const c-identifier-syntax-modifications)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
409 awk '((?_ . "w"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
410 (c-lang-defvar c-identifier-syntax-modifications |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
411 (c-lang-const c-identifier-syntax-modifications)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
412 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
413 (c-lang-defvar c-identifier-syntax-table |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
414 (let ((table (copy-syntax-table (c-mode-var "mode-syntax-table"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
415 (mods c-identifier-syntax-modifications) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
416 mod) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
417 (while mods |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
418 (setq mod (car mods) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
419 mods (cdr mods)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
420 (modify-syntax-entry (car mod) (cdr mod) table)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
421 table) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
422 "Syntax table built on the mode syntax table but additionally |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
423 classifies symbol constituents like '_' and '$' as word constituents, |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
424 so that all identifiers are recognized as words.") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
425 |
80159
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
426 (c-lang-defconst c-get-state-before-change-function |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
427 "If non-nil, a function called from c-before-change-hook. |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
428 Typically it will record enough state to allow |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
429 `c-before-font-lock-function' to extend the region to fontify, |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
430 and may do such things as removing text-properties which must be |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
431 recalculated. |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
432 |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
433 It takes 2 parameters, the BEG and END supplied to every |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
434 before-change function; on entry, the buffer will have been |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
435 widened and match-data will have been saved; point is undefined |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
436 on both entry and exit; the return value is ignored. |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
437 |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
438 When the mode is initialized, this function is called with |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
439 parameters \(point-min) and \(point-max)." |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
440 t nil |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
441 (c c++ objc) 'c-extend-region-for-CPP |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
442 awk 'c-awk-record-region-clear-NL) |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
443 (c-lang-defvar c-get-state-before-change-function |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
444 (c-lang-const c-get-state-before-change-function)) |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
445 |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
446 (c-lang-defconst c-before-font-lock-function |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
447 "If non-nil, a function called just before font locking. |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
448 Typically it will extend the region about to be fontified \(see |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
449 below) and will set `syntax-table' text properties on the region. |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
450 |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
451 It takes 3 parameters, the BEG, END, and OLD-LEN supplied to |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
452 every after-change function; point is undefined on both entry and |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
453 exit; on entry, the buffer will have been widened and match-data |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
454 will have been saved; the return value is ignored. |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
455 |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
456 The function may extend the region to be fontified by setting the |
80460
efa8f716525c
(c-before-font-lock-function): Correct a typo in the doc string.
Alan Mackenzie <acm@muc.de>
parents:
80256
diff
changeset
|
457 buffer local variables c-new-BEG and c-new-END. |
80159
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
458 |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
459 The function is called even when font locking is disabled. |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
460 |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
461 When the mode is initialized, this function is called with |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
462 parameters \(point-min), \(point-max) and <buffer size>." |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
463 t nil |
103260
864eb5478bfc
cc-mode.el (c-extend-and-neutralize-CPP-line): Renamed from
Alan Mackenzie <acm@muc.de>
parents:
103117
diff
changeset
|
464 (c c++ objc) 'c-extend-and-neutralize-syntax-in-CPP |
80159
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
465 awk 'c-awk-extend-and-syntax-tablify-region) |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
466 (c-lang-defvar c-before-font-lock-function |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
467 (c-lang-const c-before-font-lock-function)) |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
468 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
469 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
470 ;;; Lexer-level syntax (identifiers, tokens etc). |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
471 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
472 (c-lang-defconst c-symbol-start |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
473 "Regexp that matches the start of a symbol, i.e. any identifier or |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
474 keyword. It's unspecified how far it matches. Does not contain a \\| |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
475 operator at the top level." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
476 t (concat "[" c-alpha "_]") |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
477 objc (concat "[" c-alpha "@]") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
478 pike (concat "[" c-alpha "_`]")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
479 (c-lang-defvar c-symbol-start (c-lang-const c-symbol-start)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
480 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
481 (c-lang-defconst c-symbol-chars |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
482 "Set of characters that can be part of a symbol. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
483 This is on the form that fits inside [ ] in a regexp." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
484 ;; Pike note: With the backquote identifiers this would include most |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
485 ;; operator chars too, but they are handled with other means instead. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
486 t (concat c-alnum "_$") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
487 objc (concat c-alnum "_$@")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
488 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
489 (c-lang-defconst c-symbol-key |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
490 "Regexp matching identifiers and keywords (with submatch 0). Assumed |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
491 to match if `c-symbol-start' matches on the same position." |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
492 t (concat (c-lang-const c-symbol-start) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
493 "[" (c-lang-const c-symbol-chars) "]*") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
494 pike (concat |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
495 ;; Use the value from C here since the operator backquote is |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
496 ;; covered by the other alternative. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
497 (c-lang-const c-symbol-key c) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
498 "\\|" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
499 (c-make-keywords-re nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
500 (c-lang-const c-overloadable-operators)))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
501 (c-lang-defvar c-symbol-key (c-lang-const c-symbol-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
502 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
503 (c-lang-defconst c-symbol-key-depth |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
504 ;; Number of regexp grouping parens in `c-symbol-key'. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
505 t (regexp-opt-depth (c-lang-const c-symbol-key))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
506 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
507 (c-lang-defconst c-nonsymbol-chars |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
508 "This is the set of chars that can't be part of a symbol, i.e. the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
509 negation of `c-symbol-chars'." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
510 t (concat "^" (c-lang-const c-symbol-chars))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
511 (c-lang-defvar c-nonsymbol-chars (c-lang-const c-nonsymbol-chars)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
512 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
513 (c-lang-defconst c-nonsymbol-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
514 "Regexp that matches any character that can't be part of a symbol. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
515 It's usually appended to other regexps to avoid matching a prefix. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
516 It's assumed to not contain any submatchers." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
517 ;; The same thing regarding Unicode identifiers applies here as to |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
518 ;; `c-symbol-key'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
519 t (concat "[" (c-lang-const c-nonsymbol-chars) "]")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
520 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
521 (c-lang-defconst c-identifier-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
522 "The operators that make up fully qualified identifiers. nil in |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
523 languages that don't have such things. See `c-operators' for a |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
524 description of the format. Binary operators can concatenate symbols, |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
525 e.g. \"::\" in \"A::B::C\". Prefix operators can precede identifiers, |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
526 e.g. \"~\" in \"~A::B\". Other types of operators aren't supported. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
527 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
528 This value is by default merged into `c-operators'." |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
529 t nil |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
530 c++ '((prefix "~" "??-" "compl") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
531 (right-assoc "::") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
532 (prefix "::")) |
56646
b7446b6f097d
Updated CC Mode to 5.30.9.
Martin Stjernholm <mast@lysator.liu.se>
parents:
52607
diff
changeset
|
533 ;; Java has "." to concatenate identifiers but it's also used for |
b7446b6f097d
Updated CC Mode to 5.30.9.
Martin Stjernholm <mast@lysator.liu.se>
parents:
52607
diff
changeset
|
534 ;; normal indexing. There's special code in the Java font lock |
b7446b6f097d
Updated CC Mode to 5.30.9.
Martin Stjernholm <mast@lysator.liu.se>
parents:
52607
diff
changeset
|
535 ;; rules to fontify qualified identifiers based on the standard |
b7446b6f097d
Updated CC Mode to 5.30.9.
Martin Stjernholm <mast@lysator.liu.se>
parents:
52607
diff
changeset
|
536 ;; naming conventions. We still define "." here to make |
b7446b6f097d
Updated CC Mode to 5.30.9.
Martin Stjernholm <mast@lysator.liu.se>
parents:
52607
diff
changeset
|
537 ;; `c-forward-name' move over as long names as possible which is |
b7446b6f097d
Updated CC Mode to 5.30.9.
Martin Stjernholm <mast@lysator.liu.se>
parents:
52607
diff
changeset
|
538 ;; necessary to e.g. handle throws clauses correctly. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
539 java '((left-assoc ".")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
540 idl '((left-assoc "::") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
541 (prefix "::")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
542 pike '((left-assoc "::") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
543 (prefix "::") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
544 (left-assoc "."))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
545 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
546 (c-lang-defconst c-opt-identifier-concat-key |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
547 ;; Appendable adorned regexp matching the operators that join |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
548 ;; symbols to fully qualified identifiers, or nil in languages that |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
549 ;; don't have such things. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
550 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
551 ;; This was a docstring constant in 5.30. It still works but is now |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
552 ;; considered internal - change `c-identifier-ops' instead. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
553 t (let ((ops (c-filter-ops (c-lang-const c-identifier-ops) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
554 '(left-assoc right-assoc) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
555 t))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
556 (when ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
557 (c-make-keywords-re 'appendable ops)))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
558 (c-lang-defvar c-opt-identifier-concat-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
559 (c-lang-const c-opt-identifier-concat-key) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
560 'dont-doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
561 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
562 (c-lang-defconst c-opt-identifier-concat-key-depth |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
563 ;; Number of regexp grouping parens in `c-opt-identifier-concat-key'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
564 t (regexp-opt-depth (c-lang-const c-opt-identifier-concat-key))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
565 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
566 (c-lang-defconst c-opt-identifier-prefix-key |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
567 ;; Appendable adorned regexp matching operators that might precede |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
568 ;; an identifier and that are part of the identifier in that case. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
569 ;; nil in languages without such things. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
570 t (let ((ops (c-filter-ops (c-lang-const c-identifier-ops) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
571 '(prefix) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
572 t))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
573 (when ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
574 (c-make-keywords-re 'appendable ops)))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
575 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
576 (c-lang-defconst c-after-id-concat-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
577 "Operators that can occur after a binary operator on `c-identifier-ops' |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
578 in identifiers. nil in languages that don't have such things. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
579 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
580 Operators here should also have appropriate entries in `c-operators' - |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
581 it's not taken care of by default." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
582 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
583 ;; '~' for destructors in C++, '*' for member pointers. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
584 c++ '("~" "*") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
585 ;; In Java we recognize '*' to deal with "foo.bar.*" that can occur |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
586 ;; in import declarations. (This will also match bogus things like |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
587 ;; "foo.*bar" but we don't bother.) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
588 java '("*")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
589 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
590 (c-lang-defconst c-opt-after-id-concat-key |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
591 ;; Regexp that must match the token after |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
592 ;; `c-opt-identifier-concat-key' for it to be considered an |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
593 ;; identifier concatenation operator (which e.g. causes the |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
594 ;; preceding identifier to be fontified as a reference). Assumed to |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
595 ;; be a string if `c-opt-identifier-concat-key' is. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
596 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
597 ;; This was a docstring constant in 5.30. It still works but is now |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
598 ;; considered internal - change `c-after-id-concat-ops' instead. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
599 t (concat (c-lang-const c-symbol-start) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
600 (if (c-lang-const c-after-id-concat-ops) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
601 (concat "\\|" (c-make-keywords-re 'appendable |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
602 (c-lang-const c-after-id-concat-ops))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
603 ""))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
604 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
605 (c-lang-defconst c-identifier-start |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
606 "Regexp that matches the start of an (optionally qualified) identifier. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
607 It should also match all keywords. It's unspecified how far it |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
608 matches." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
609 t (concat (c-lang-const c-symbol-start) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
610 (if (c-lang-const c-opt-identifier-prefix-key) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
611 (concat "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
612 (c-lang-const c-opt-identifier-prefix-key)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
613 ""))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
614 (c-lang-defvar c-identifier-start (c-lang-const c-identifier-start)) |
18720 | 615 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
616 (c-lang-defconst c-identifier-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
617 "Regexp matching a fully qualified identifier, like \"A::B::c\" in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
618 C++. It does not recognize the full range of syntactic whitespace |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
619 between the tokens; `c-forward-name' has to be used for that. It |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
620 should also not match identifiers containing parenthesis groupings, |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
621 e.g. identifiers with template arguments such as \"A<X,Y>\" in C++." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
622 ;; This regexp is more complex than strictly necessary to ensure |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
623 ;; that it can be matched with a minimum of backtracking. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
624 t (concat (if (c-lang-const c-opt-identifier-prefix-key) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
625 (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
626 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
627 (c-lang-const c-opt-identifier-prefix-key) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
628 (c-lang-const c-simple-ws) "*" |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
629 "\\)?") |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
630 "") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
631 "\\(" (c-lang-const c-symbol-key) "\\)" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
632 (if (c-lang-const c-opt-identifier-concat-key) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
633 (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
634 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
635 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
636 (c-lang-const c-opt-identifier-concat-key) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
637 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
638 (if (c-lang-const c-after-id-concat-ops) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
639 (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
640 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
641 (c-make-keywords-re 'appendable |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
642 (c-lang-const c-after-id-concat-ops)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
643 (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
644 ;; For flexibility, consider the symbol match |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
645 ;; optional if we've hit a |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
646 ;; `c-after-id-concat-ops' operator. This is |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
647 ;; also necessary to handle the "*" that can |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
648 ;; end import declaration identifiers in Java. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
649 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
650 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
651 "\\(" (c-lang-const c-symbol-key) "\\)" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
652 "\\)?") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
653 "\\|" |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
654 "\\(" (c-lang-const c-symbol-key) "\\)" |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
655 "\\)") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
656 (concat "\\(" (c-lang-const c-symbol-key) "\\)")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
657 "\\)*") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
658 ""))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
659 (c-lang-defvar c-identifier-key (c-lang-const c-identifier-key)) |
18720 | 660 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
661 (c-lang-defconst c-identifier-last-sym-match |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
662 ;; This was a docstring constant in 5.30 but it's no longer used. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
663 ;; It's only kept to avoid breaking third party code. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
664 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
665 ;; Used to identify the submatch in `c-identifier-key' that |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
666 ;; surrounds the last symbol in the qualified identifier. It's a |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
667 ;; list of submatch numbers, of which the first that has a match is |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
668 ;; taken. It's assumed that at least one does when the regexp has |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
669 ;; matched. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
670 t nil) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
671 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
672 (c-lang-defconst c-string-escaped-newlines |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
673 "Set if the language support backslash escaped newlines inside string |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
674 literals." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
675 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
676 (c c++ objc pike) t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
677 (c-lang-defvar c-string-escaped-newlines |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
678 (c-lang-const c-string-escaped-newlines)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
679 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
680 (c-lang-defconst c-multiline-string-start-char |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
681 "Set if the language supports multiline string literals without escaped |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
682 newlines. If t, all string literals are multiline. If a character, |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
683 only literals where the open quote is immediately preceded by that |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
684 literal are multiline." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
685 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
686 pike ?#) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
687 (c-lang-defvar c-multiline-string-start-char |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
688 (c-lang-const c-multiline-string-start-char)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
689 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
690 (c-lang-defconst c-opt-cpp-prefix |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
691 "Regexp matching the prefix of a cpp directive in the languages that |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
692 normally use that macro preprocessor. Tested at bol or at boi. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
693 Assumed to not contain any submatches or \\| operators." |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
694 ;; TODO (ACM, 2005-04-01). Amend the following to recognise escaped NLs; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
695 ;; amend all uses of c-opt-cpp-prefix which count regexp-depth. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
696 t "\\s *#\\s *" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
697 (java awk) nil) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
698 (c-lang-defvar c-opt-cpp-prefix (c-lang-const c-opt-cpp-prefix)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
699 |
80159
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
700 (c-lang-defconst c-anchored-cpp-prefix |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
701 "Regexp matching the prefix of a cpp directive anchored to BOL, |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
702 in the languages that have a macro preprocessor." |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
703 t (if (c-lang-const c-opt-cpp-prefix) |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
704 (concat "^" (c-lang-const c-opt-cpp-prefix)))) |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
705 (c-lang-defvar c-anchored-cpp-prefix (c-lang-const c-anchored-cpp-prefix)) |
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
706 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
707 (c-lang-defconst c-opt-cpp-start |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
708 "Regexp matching the prefix of a cpp directive including the directive |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
709 name, or nil in languages without preprocessor support. The first |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
710 submatch surrounds the directive name." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
711 t (if (c-lang-const c-opt-cpp-prefix) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
712 (concat (c-lang-const c-opt-cpp-prefix) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
713 "\\([" c-alnum "]+\\)")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
714 ;; Pike, being a scripting language, recognizes hash-bangs too. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
715 pike (concat (c-lang-const c-opt-cpp-prefix) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
716 "\\([" c-alnum "]+\\|!\\)")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
717 (c-lang-defvar c-opt-cpp-start (c-lang-const c-opt-cpp-start)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
718 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
719 (c-lang-defconst c-cpp-message-directives |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
720 "List of cpp directives (without the prefix) that are followed by a |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
721 string message." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
722 t (if (c-lang-const c-opt-cpp-prefix) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
723 '("error")) |
80159
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
724 (c c++ objc pike) '("error" "warning")) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
725 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
726 (c-lang-defconst c-cpp-include-directives |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
727 "List of cpp directives (without the prefix) that are followed by a |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
728 file name in angle brackets or quotes." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
729 t (if (c-lang-const c-opt-cpp-prefix) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
730 '("include")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
731 objc '("include" "import")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
732 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
733 (c-lang-defconst c-opt-cpp-macro-define |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
734 "Cpp directive (without the prefix) that is followed by a macro |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
735 definition, or nil if the language doesn't have any." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
736 t (if (c-lang-const c-opt-cpp-prefix) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
737 "define")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
738 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
739 (c-lang-defconst c-opt-cpp-macro-define-start |
80460
efa8f716525c
(c-before-font-lock-function): Correct a typo in the doc string.
Alan Mackenzie <acm@muc.de>
parents:
80256
diff
changeset
|
740 ;; Regexp matching everything up to the macro body of a cpp define, or the |
efa8f716525c
(c-before-font-lock-function): Correct a typo in the doc string.
Alan Mackenzie <acm@muc.de>
parents:
80256
diff
changeset
|
741 ;; end of the logical line if there is none. Submatch 1 is the name of the |
efa8f716525c
(c-before-font-lock-function): Correct a typo in the doc string.
Alan Mackenzie <acm@muc.de>
parents:
80256
diff
changeset
|
742 ;; macro. Set if c-opt-cpp-macro-define is. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
743 t (if (c-lang-const c-opt-cpp-macro-define) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
744 (concat (c-lang-const c-opt-cpp-prefix) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
745 (c-lang-const c-opt-cpp-macro-define) |
80460
efa8f716525c
(c-before-font-lock-function): Correct a typo in the doc string.
Alan Mackenzie <acm@muc.de>
parents:
80256
diff
changeset
|
746 "[ \t]+\\(\\(\\sw\\|_\\)+\\)\\(\([^\)]*\)\\)?" |
efa8f716525c
(c-before-font-lock-function): Correct a typo in the doc string.
Alan Mackenzie <acm@muc.de>
parents:
80256
diff
changeset
|
747 ;; ^ ^ #defined name |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
748 "\\([ \t]\\|\\\\\n\\)*"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
749 (c-lang-defvar c-opt-cpp-macro-define-start |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
750 (c-lang-const c-opt-cpp-macro-define-start)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
751 |
75027
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
752 (c-lang-defconst c-opt-cpp-macro-define-id |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
753 ;; Regexp matching everything up to the end of the identifier defined |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
754 ;; by a cpp define. |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
755 t (if (c-lang-const c-opt-cpp-macro-define) |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
756 (concat (c-lang-const c-opt-cpp-prefix) ; # |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
757 (c-lang-const c-opt-cpp-macro-define) ; define |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
758 "[ \t]+\\(\\sw\\|_\\)+"))) |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
759 (c-lang-defvar c-opt-cpp-macro-define-id |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
760 (c-lang-const c-opt-cpp-macro-define-id)) |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
761 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
762 (c-lang-defconst c-cpp-expr-directives |
80159
0a04edfc4982
Set of changes so that "obtrusive" syntactic elements in a
Alan Mackenzie <acm@muc.de>
parents:
79958
diff
changeset
|
763 "List of cpp directives (without the prefix) that are followed by an |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
764 expression." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
765 t (if (c-lang-const c-opt-cpp-prefix) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
766 '("if" "elif"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
767 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
768 (c-lang-defconst c-cpp-expr-functions |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
769 "List of functions in cpp expressions." |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
770 t (if (c-lang-const c-opt-cpp-prefix) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
771 '("defined")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
772 pike '("defined" "efun" "constant")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
773 |
52341
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
774 (c-lang-defconst c-assignment-operators |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
775 "List of all assignment operators." |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
776 t '("=" "*=" "/=" "%=" "+=" "-=" ">>=" "<<=" "&=" "^=" "|=") |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
777 java (append (c-lang-const c-assignment-operators) |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
778 '(">>>=")) |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
779 c++ (append (c-lang-const c-assignment-operators) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
780 '("and_eq" "or_eq" "xor_eq" "??!=" "??'=")) |
52341
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
781 idl nil) |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
782 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
783 (c-lang-defconst c-operators |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
784 "List describing all operators, along with their precedence and |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
785 associativity. The order in the list corresponds to the precedence of |
75130
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
786 the operators: The operators in each element are a group with the same |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
787 precedence, and the group has higher precedence than the groups in all |
75130
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
788 following elements. The car of each element describes the type of the |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
789 operator group, and the cdr is a list of the operator tokens in it. |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
790 The operator group types are: |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
791 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
792 'prefix Unary prefix operators. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
793 'postfix Unary postfix operators. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
794 'postfix-if-paren |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
795 Unary postfix operators if and only if the chars have |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
796 parenthesis syntax. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
797 'left-assoc Binary left associative operators (i.e. a+b+c means (a+b)+c). |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
798 'right-assoc Binary right associative operators (i.e. a=b=c means a=(b=c)). |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
799 'right-assoc-sequence |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
800 Right associative operator that constitutes of a |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
801 sequence of tokens that separate expressions. All the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
802 tokens in the group are in this case taken as |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
803 describing the sequence in one such operator, and the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
804 order between them is therefore significant. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
805 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
806 Operators containing a character with paren syntax are taken to match |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
807 with a corresponding open/close paren somewhere else. A postfix |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
808 operator with close paren syntax is taken to end a postfix expression |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
809 started somewhere earlier, rather than start a new one at point. Vice |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
810 versa for prefix operators with open paren syntax. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
811 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
812 Note that operators like \".\" and \"->\" which in language references |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
813 often are described as postfix operators are considered binary here, |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
814 since CC Mode treats every identifier as an expression." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
815 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
816 ;; There's currently no code in CC Mode that exploit all the info |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
817 ;; in this variable; precedence, associativity etc are present as a |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
818 ;; preparation for future work. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
819 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
820 t `(;; Preprocessor. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
821 ,@(when (c-lang-const c-opt-cpp-prefix) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
822 `((prefix "#" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
823 ,@(when (c-major-mode-is '(c-mode c++-mode)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
824 '("%:" "??="))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
825 (left-assoc "##" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
826 ,@(when (c-major-mode-is '(c-mode c++-mode)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
827 '("%:%:" "??=??="))))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
828 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
829 ;; Primary. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
830 ,@(c-lang-const c-identifier-ops) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
831 ,@(cond ((c-major-mode-is 'c++-mode) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
832 `((postfix-if-paren "<" ">"))) ; Templates. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
833 ((c-major-mode-is 'pike-mode) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
834 `((prefix "global" "predef"))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
835 ((c-major-mode-is 'java-mode) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
836 `((prefix "super")))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
837 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
838 ;; Postfix. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
839 ,@(when (c-major-mode-is 'c++-mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
840 ;; The following need special treatment. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
841 `((prefix "dynamic_cast" "static_cast" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
842 "reinterpret_cast" "const_cast" "typeid"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
843 (left-assoc "." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
844 ,@(unless (c-major-mode-is 'java-mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
845 '("->"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
846 (postfix "++" "--" "[" "]" "(" ")" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
847 ,@(when (c-major-mode-is '(c-mode c++-mode)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
848 '("<:" ":>" "??(" "??)"))) |
26817 | 849 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
850 ;; Unary. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
851 (prefix "++" "--" "+" "-" "!" "~" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
852 ,@(when (c-major-mode-is 'c++-mode) '("not" "compl")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
853 ,@(when (c-major-mode-is '(c-mode c++-mode)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
854 '("*" "&" "sizeof" "??-")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
855 ,@(when (c-major-mode-is 'objc-mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
856 '("@selector" "@protocol" "@encode")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
857 ;; The following need special treatment. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
858 ,@(cond ((c-major-mode-is 'c++-mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
859 '("new" "delete")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
860 ((c-major-mode-is 'java-mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
861 '("new")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
862 ((c-major-mode-is 'pike-mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
863 '("class" "lambda" "catch" "throw" "gauge"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
864 "(" ")" ; Cast. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
865 ,@(when (c-major-mode-is 'pike-mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
866 '("[" "]"))) ; Type cast. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
867 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
868 ;; Member selection. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
869 ,@(when (c-major-mode-is 'c++-mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
870 `((left-assoc ".*" "->*"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
871 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
872 ;; Multiplicative. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
873 (left-assoc "*" "/" "%") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
874 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
875 ;; Additive. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
876 (left-assoc "+" "-") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
877 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
878 ;; Shift. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
879 (left-assoc "<<" ">>" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
880 ,@(when (c-major-mode-is 'java-mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
881 '(">>>"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
882 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
883 ;; Relational. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
884 (left-assoc "<" ">" "<=" ">=" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
885 ,@(when (c-major-mode-is 'java-mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
886 '("instanceof"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
887 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
888 ;; Equality. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
889 (left-assoc "==" "!=" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
890 ,@(when (c-major-mode-is 'c++-mode) '("not_eq"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
891 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
892 ;; Bitwise and. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
893 (left-assoc "&" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
894 ,@(when (c-major-mode-is 'c++-mode) '("bitand"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
895 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
896 ;; Bitwise exclusive or. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
897 (left-assoc "^" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
898 ,@(when (c-major-mode-is '(c-mode c++-mode)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
899 '("??'")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
900 ,@(when (c-major-mode-is 'c++-mode) '("xor"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
901 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
902 ;; Bitwise or. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
903 (left-assoc "|" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
904 ,@(when (c-major-mode-is '(c-mode c++-mode)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
905 '("??!")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
906 ,@(when (c-major-mode-is 'c++-mode) '("bitor"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
907 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
908 ;; Logical and. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
909 (left-assoc "&&" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
910 ,@(when (c-major-mode-is 'c++-mode) '("and"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
911 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
912 ;; Logical or. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
913 (left-assoc "||" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
914 ,@(when (c-major-mode-is '(c-mode c++-mode)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
915 '("??!??!")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
916 ,@(when (c-major-mode-is 'c++-mode) '("or"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
917 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
918 ;; Conditional. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
919 (right-assoc-sequence "?" ":") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
920 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
921 ;; Assignment. |
52341
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
922 (right-assoc ,@(c-lang-const c-assignment-operators)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
923 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
924 ;; Exception. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
925 ,@(when (c-major-mode-is 'c++-mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
926 '((prefix "throw"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
927 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
928 ;; Sequence. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
929 (left-assoc ",")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
930 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
931 ;; IDL got its own definition since it has a much smaller operator |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
932 ;; set than the other languages. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
933 idl `(;; Preprocessor. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
934 (prefix "#") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
935 (left-assoc "##") |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
936 ;; Primary. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
937 ,@(c-lang-const c-identifier-ops) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
938 ;; Unary. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
939 (prefix "+" "-" "~") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
940 ;; Multiplicative. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
941 (left-assoc "*" "/" "%") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
942 ;; Additive. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
943 (left-assoc "+" "-") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
944 ;; Shift. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
945 (left-assoc "<<" ">>") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
946 ;; And. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
947 (left-assoc "&") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
948 ;; Xor. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
949 (left-assoc "^") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
950 ;; Or. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
951 (left-assoc "|"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
952 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
953 (c-lang-defconst c-operator-list |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
954 ;; The operators as a flat list (without duplicates). |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
955 t (c-filter-ops (c-lang-const c-operators) t t)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
956 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
957 (c-lang-defconst c-overloadable-operators |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
958 "List of the operators that are overloadable, in their \"identifier |
75027
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
959 form\". See also `c-op-identifier-prefix'." |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
960 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
961 c++ '("new" "delete" ;; Can be followed by "[]" but we ignore that. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
962 "+" "-" "*" "/" "%" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
963 "^" "??'" "xor" "&" "bitand" "|" "??!" "bitor" "~" "??-" "compl" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
964 "!" "=" "<" ">" "+=" "-=" "*=" "/=" "%=" "^=" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
965 "??'=" "xor_eq" "&=" "and_eq" "|=" "??!=" "or_eq" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
966 "<<" ">>" ">>=" "<<=" "==" "!=" "not_eq" "<=" ">=" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
967 "&&" "and" "||" "??!??!" "or" "++" "--" "," "->*" "->" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
968 "()" "[]" "<::>" "??(??)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
969 ;; These work like identifiers in Pike. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
970 pike '("`+" "`-" "`&" "`|" "`^" "`<<" "`>>" "`*" "`/" "`%" "`~" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
971 "`==" "`<" "`>" "`!" "`[]" "`[]=" "`->" "`->=" "`()" "``+" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
972 "``-" "``&" "``|" "``^" "``<<" "``>>" "``*" "``/" "``%" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
973 "`+=")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
974 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
975 (c-lang-defconst c-overloadable-operators-regexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
976 ;; Regexp tested after an "operator" token in C++. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
977 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
978 c++ (c-make-keywords-re nil (c-lang-const c-overloadable-operators))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
979 (c-lang-defvar c-overloadable-operators-regexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
980 (c-lang-const c-overloadable-operators-regexp)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
981 |
75027
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
982 (c-lang-defconst c-opt-op-identifier-prefix |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
983 "Regexp matching the token before the ones in |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
984 `c-overloadable-operators' when operators are specified in their |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
985 \"identifier form\". This typically matches \"operator\" in C++ where |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
986 operator functions are specified as e.g. \"operator +\". It's nil in |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
987 languages without operator functions or where the complete operator |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
988 identifier is listed in `c-overloadable-operators'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
989 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
990 This regexp is assumed to not match any non-operator identifier." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
991 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
992 c++ (c-make-keywords-re t '("operator"))) |
75027
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
993 (c-lang-defvar c-opt-op-identifier-prefix |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
994 (c-lang-const c-opt-op-identifier-prefix)) |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
995 |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
996 ;; Note: the following alias is an old name which was a mis-spelling. It has |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
997 ;; been corrected above and throughout cc-engine.el. It will be removed at |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
998 ;; some release very shortly in the future. ACM, 2006-04-14. |
97943
8c3cc772f767
(c-opt-op-identitier-prefix): Fix typo.
Glenn Morris <rgm@gnu.org>
parents:
94673
diff
changeset
|
999 (defvaralias 'c-opt-op-identitier-prefix 'c-opt-op-identifier-prefix) |
75027
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
1000 (make-obsolete-variable 'c-opt-op-identitier-prefix 'c-opt-op-identifier-prefix |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
1001 "CC Mode 5.31.4, 2006-04-14") |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1002 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1003 (c-lang-defconst c-other-op-syntax-tokens |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1004 "List of the tokens made up of characters in the punctuation or |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1005 parenthesis syntax classes that have uses other than as expression |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1006 operators." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1007 t '("{" "}" "(" ")" "[" "]" ";" ":" "," "=" "/*" "*/" "//") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1008 (c c++ pike) (append '("#" "##" ; Used by cpp. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1009 "::" "...") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1010 (c-lang-const c-other-op-syntax-tokens)) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1011 (c c++) (append '("*") (c-lang-const c-other-op-syntax-tokens)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1012 c++ (append '("&" "<%" "%>" "<:" ":>" "%:" "%:%:") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1013 (c-lang-const c-other-op-syntax-tokens)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1014 objc (append '("#" "##" ; Used by cpp. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1015 "+" "-") (c-lang-const c-other-op-syntax-tokens)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1016 idl (append '("#" "##") ; Used by cpp. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1017 (c-lang-const c-other-op-syntax-tokens)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1018 pike (append '("..") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1019 (c-lang-const c-other-op-syntax-tokens) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1020 (c-lang-const c-overloadable-operators)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1021 awk '("{" "}" "(" ")" "[" "]" ";" "," "=" "/")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1022 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1023 (c-lang-defconst c-all-op-syntax-tokens |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1024 ;; List of all tokens in the punctuation and parenthesis syntax |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1025 ;; classes. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1026 t (delete-duplicates (append (c-lang-const c-other-op-syntax-tokens) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1027 (c-lang-const c-operator-list)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1028 :test 'string-equal)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1029 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1030 (c-lang-defconst c-nonsymbol-token-char-list |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1031 ;; List containing all chars not in the word, symbol or |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1032 ;; syntactically irrelevant syntax classes, i.e. all punctuation, |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1033 ;; parenthesis and string delimiter chars. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1034 t (c-with-syntax-table (c-lang-const c-mode-syntax-table) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1035 ;; Only go through the chars in the printable ASCII range. No |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1036 ;; language so far has 8-bit or widestring operators. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1037 (let (list (char 32)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1038 (while (< char 127) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1039 (or (memq (char-syntax char) '(?w ?_ ?< ?> ?\ )) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1040 (setq list (cons (c-int-to-char char) list))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1041 (setq char (1+ char))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1042 list))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1043 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1044 (c-lang-defconst c-nonsymbol-token-regexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1045 ;; Regexp matching all tokens in the punctuation and parenthesis |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1046 ;; syntax classes. Note that this also matches ".", which can start |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1047 ;; a float. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1048 t (c-make-keywords-re nil |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1049 (c-filter-ops (c-lang-const c-all-op-syntax-tokens) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1050 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1051 "\\`\\(\\s.\\|\\s\(\\|\\s\)\\)+\\'"))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1052 (c-lang-defvar c-nonsymbol-token-regexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1053 (c-lang-const c-nonsymbol-token-regexp)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1054 |
52341
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1055 (c-lang-defconst c-assignment-op-regexp |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1056 ;; Regexp matching all assignment operators and only them. The |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1057 ;; beginning of the first submatch is used to detect the end of the |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1058 ;; token, along with the end of the whole match. |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1059 t (if (c-lang-const c-assignment-operators) |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1060 (concat |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1061 ;; Need special case for "=" since it's a prefix of "==". |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1062 "=\\([^=]\\|$\\)" |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1063 "\\|" |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1064 (c-make-keywords-re nil |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1065 (set-difference (c-lang-const c-assignment-operators) |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1066 '("=") |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1067 :test 'string-equal))) |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1068 "\\<\\>")) |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1069 (c-lang-defvar c-assignment-op-regexp |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1070 (c-lang-const c-assignment-op-regexp)) |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1071 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1072 (c-lang-defconst c-<>-multichar-token-regexp |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1073 ;; Regexp matching all tokens containing "<" or ">" which are longer |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1074 ;; than one char. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1075 t (c-make-keywords-re nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1076 (c-filter-ops (c-lang-const c-all-op-syntax-tokens) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1077 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1078 ".[<>]\\|[<>]."))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1079 (c-lang-defvar c-<>-multichar-token-regexp |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1080 (c-lang-const c-<>-multichar-token-regexp)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1081 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1082 (c-lang-defconst c-<-op-cont-regexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1083 ;; Regexp matching the second and subsequent characters of all |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1084 ;; multicharacter tokens that begin with "<". |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1085 t (c-make-keywords-re nil |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1086 (c-filter-ops (c-lang-const c-all-op-syntax-tokens) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1087 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1088 "\\`<." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1089 (lambda (op) (substring op 1))))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1090 (c-lang-defvar c-<-op-cont-regexp (c-lang-const c-<-op-cont-regexp)) |
18720 | 1091 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1092 (c-lang-defconst c->-op-cont-regexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1093 ;; Regexp matching the second and subsequent characters of all |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1094 ;; multicharacter tokens that begin with ">". |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1095 t (c-make-keywords-re nil |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1096 (c-filter-ops (c-lang-const c-all-op-syntax-tokens) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1097 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1098 "\\`>." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1099 (lambda (op) (substring op 1))))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1100 (c-lang-defvar c->-op-cont-regexp (c-lang-const c->-op-cont-regexp)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1101 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1102 (c-lang-defconst c-stmt-delim-chars |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1103 ;; The characters that should be considered to bound statements. To |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1104 ;; optimize `c-crosses-statement-barrier-p' somewhat, it's assumed to |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1105 ;; begin with "^" to negate the set. If ? : operators should be |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1106 ;; detected then the string must end with "?:". |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1107 t "^;{}?:" |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1108 awk "^;{}#\n\r?:") ; The newline chars gets special treatment. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1109 (c-lang-defvar c-stmt-delim-chars (c-lang-const c-stmt-delim-chars)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1110 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1111 (c-lang-defconst c-stmt-delim-chars-with-comma |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1112 ;; Variant of `c-stmt-delim-chars' that additionally contains ','. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1113 t "^;,{}?:" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1114 awk "^;,{}\n\r?:") ; The newline chars gets special treatment. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1115 (c-lang-defvar c-stmt-delim-chars-with-comma |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1116 (c-lang-const c-stmt-delim-chars-with-comma)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1117 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1118 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1119 ;;; Syntactic whitespace. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1120 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1121 (c-lang-defconst c-simple-ws |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1122 "Regexp matching an ordinary whitespace character. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1123 Does not contain a \\| operator at the top level." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1124 ;; "\\s " is not enough since it doesn't match line breaks. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1125 t "\\(\\s \\|[\n\r]\\)") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1126 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1127 (c-lang-defconst c-simple-ws-depth |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1128 ;; Number of regexp grouping parens in `c-simple-ws'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1129 t (regexp-opt-depth (c-lang-const c-simple-ws))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1130 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1131 (c-lang-defconst c-line-comment-starter |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1132 "String that starts line comments, or nil if such don't exist. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1133 Line comments are always terminated by newlines. At least one of |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1134 `c-block-comment-starter' and this one is assumed to be set. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1135 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1136 Note that it's currently not enough to set this to support a new |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1137 comment style. Other stuff like the syntax table must also be set up |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1138 properly." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1139 t "//" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1140 awk "#") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1141 (c-lang-defvar c-line-comment-starter (c-lang-const c-line-comment-starter)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1142 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1143 (c-lang-defconst c-block-comment-starter |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1144 "String that starts block comments, or nil if such don't exist. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1145 Block comments are ended by `c-block-comment-ender', which is assumed |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1146 to be set if this is. At least one of `c-line-comment-starter' and |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1147 this one is assumed to be set. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1148 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1149 Note that it's currently not enough to set this to support a new |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1150 comment style. Other stuff like the syntax table must also be set up |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1151 properly." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1152 t "/*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1153 awk nil) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1154 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1155 (c-lang-defconst c-block-comment-ender |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1156 "String that ends block comments, or nil if such don't exist. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1157 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1158 Note that it's currently not enough to set this to support a new |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1159 comment style. Other stuff like the syntax table must also be set up |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1160 properly." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1161 t "*/" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1162 awk nil) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1163 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1164 (c-lang-defconst c-comment-start-regexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1165 ;; Regexp to match the start of any type of comment. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1166 t (let ((re (c-make-keywords-re nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1167 (list (c-lang-const c-line-comment-starter) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1168 (c-lang-const c-block-comment-starter))))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1169 (if (memq 'gen-comment-delim c-emacs-features) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1170 (concat re "\\|\\s!") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1171 re))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1172 (c-lang-defvar c-comment-start-regexp (c-lang-const c-comment-start-regexp)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1173 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1174 ;;;; Added by ACM, 2003/9/18. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1175 (c-lang-defconst c-block-comment-start-regexp |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1176 ;; Regexp which matches the start of a block comment (if such exists in the |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1177 ;; language) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1178 t (if (c-lang-const c-block-comment-starter) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1179 (regexp-quote (c-lang-const c-block-comment-starter)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1180 "\\<\\>")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1181 (c-lang-defvar c-block-comment-start-regexp |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1182 (c-lang-const c-block-comment-start-regexp)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1183 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1184 (c-lang-defconst c-literal-start-regexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1185 ;; Regexp to match the start of comments and string literals. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1186 t (concat (c-lang-const c-comment-start-regexp) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1187 "\\|" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1188 (if (memq 'gen-string-delim c-emacs-features) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1189 "\"|" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1190 "\""))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1191 (c-lang-defvar c-literal-start-regexp (c-lang-const c-literal-start-regexp)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1192 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1193 (c-lang-defconst c-doc-comment-start-regexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1194 "Regexp to match the start of documentation comments." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1195 t "\\<\\>" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1196 ;; From font-lock.el: `doxygen' uses /*! while others use /**. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1197 (c c++ objc) "/\\*[*!]" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1198 java "/\\*\\*" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1199 pike "/[/*]!") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1200 (c-lang-defvar c-doc-comment-start-regexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1201 (c-lang-const c-doc-comment-start-regexp)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1202 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1203 (c-lang-defconst comment-start |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1204 "String that starts comments inserted with M-; etc. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1205 `comment-start' is initialized from this." |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1206 ;; Default: Prefer line comments to block comments, and pad with a space. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1207 t (concat (or (c-lang-const c-line-comment-starter) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1208 (c-lang-const c-block-comment-starter)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1209 " ") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1210 ;; In C we still default to the block comment style since line |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1211 ;; comments aren't entirely portable. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1212 c "/* ") |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
1213 (c-lang-setvar comment-start (c-lang-const comment-start)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1214 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1215 (c-lang-defconst comment-end |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1216 "String that ends comments inserted with M-; etc. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1217 `comment-end' is initialized from this." |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1218 ;; Default: Use block comment style if comment-start uses block |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1219 ;; comments, and pad with a space in that case. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1220 t (if (string-match (concat "\\`\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1221 (c-lang-const c-block-comment-start-regexp) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1222 "\\)") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1223 (c-lang-const comment-start)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1224 (concat " " (c-lang-const c-block-comment-ender)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1225 "")) |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
1226 (c-lang-setvar comment-end (c-lang-const comment-end)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1227 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1228 (c-lang-defconst comment-start-skip |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1229 "Regexp to match the start of a comment plus everything up to its body. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1230 `comment-start-skip' is initialized from this." |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1231 ;; Default: Allow the last char of the comment starter(s) to be |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1232 ;; repeated, then allow any amount of horizontal whitespace. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1233 t (concat "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1234 (c-concat-separated |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1235 (mapcar (lambda (cs) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1236 (when cs |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1237 (concat (regexp-quote cs) "+"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1238 (list (c-lang-const c-line-comment-starter) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1239 (c-lang-const c-block-comment-starter))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1240 "\\|") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1241 "\\)\\s *")) |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
1242 (c-lang-setvar comment-start-skip (c-lang-const comment-start-skip)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1243 |
51946
048b0517e63d
(c++-make-template-syntax-table, c-syntactic-ws-start, c-syntactic-ws-end):
Martin Stjernholm <mast@lysator.liu.se>
parents:
51748
diff
changeset
|
1244 (c-lang-defconst c-syntactic-ws-start |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1245 ;; Regexp matching any sequence that can start syntactic whitespace. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1246 ;; The only uncertain case is '#' when there are cpp directives. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1247 t (concat "\\s \\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1248 (c-make-keywords-re nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1249 (append (list (c-lang-const c-line-comment-starter) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1250 (c-lang-const c-block-comment-starter) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1251 (when (c-lang-const c-opt-cpp-prefix) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1252 "#")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1253 '("\n" "\r"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1254 "\\|\\\\[\n\r]" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1255 (when (memq 'gen-comment-delim c-emacs-features) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1256 "\\|\\s!"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1257 (c-lang-defvar c-syntactic-ws-start (c-lang-const c-syntactic-ws-start)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1258 |
51946
048b0517e63d
(c++-make-template-syntax-table, c-syntactic-ws-start, c-syntactic-ws-end):
Martin Stjernholm <mast@lysator.liu.se>
parents:
51748
diff
changeset
|
1259 (c-lang-defconst c-syntactic-ws-end |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1260 ;; Regexp matching any single character that might end syntactic whitespace. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1261 t (concat "\\s \\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1262 (c-make-keywords-re nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1263 (append (when (c-lang-const c-block-comment-ender) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1264 (list |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1265 (string |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1266 (elt (c-lang-const c-block-comment-ender) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1267 (1- (length |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1268 (c-lang-const c-block-comment-ender))))))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1269 '("\n" "\r"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1270 (when (memq 'gen-comment-delim c-emacs-features) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1271 "\\|\\s!"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1272 (c-lang-defvar c-syntactic-ws-end (c-lang-const c-syntactic-ws-end)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1273 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1274 (c-lang-defconst c-unterminated-block-comment-regexp |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1275 ;; Regexp matching an unterminated block comment that doesn't |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1276 ;; contain line breaks, or nil in languages without block comments. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1277 ;; Does not contain a \| operator at the top level. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1278 t (when (c-lang-const c-block-comment-starter) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1279 (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1280 (regexp-quote (c-lang-const c-block-comment-starter)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1281 ;; It's messy to cook together a regexp that matches anything |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1282 ;; but c-block-comment-ender. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1283 (let ((end (c-lang-const c-block-comment-ender))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1284 (cond ((= (length end) 1) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1285 (concat "[^" end "\n\r]*")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1286 ((= (length end) 2) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1287 (concat "[^" (substring end 0 1) "\n\r]*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1288 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1289 (regexp-quote (substring end 0 1)) "+" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1290 "[^" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1291 ;; The quoting rules inside char classes are silly. :P |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1292 (cond ((= (elt end 0) (elt end 1)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1293 (concat (substring end 0 1) "\n\r")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1294 ((= (elt end 1) ?\]) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1295 (concat (substring end 1 2) "\n\r" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1296 (substring end 0 1))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1297 (t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1298 (concat (substring end 0 1) "\n\r" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1299 (substring end 1 2)))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1300 "]" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1301 "[^" (substring end 0 1) "\n\r]*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1302 "\\)*")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1303 (t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1304 (error "Can't handle a block comment ender of length %s" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1305 (length end)))))))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1306 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1307 (c-lang-defconst c-block-comment-regexp |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1308 ;; Regexp matching a block comment that doesn't contain line breaks, |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1309 ;; or nil in languages without block comments. The reason we don't |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1310 ;; allow line breaks is to avoid going very far and risk running out |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1311 ;; of regexp stack; this regexp is intended to handle only short |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1312 ;; comments that might be put in the middle of limited constructs |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1313 ;; like declarations. Does not contain a \| operator at the top |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1314 ;; level. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1315 t (when (c-lang-const c-unterminated-block-comment-regexp) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1316 (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1317 (c-lang-const c-unterminated-block-comment-regexp) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1318 (let ((end (c-lang-const c-block-comment-ender))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1319 (cond ((= (length end) 1) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1320 (regexp-quote end)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1321 ((= (length end) 2) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1322 (concat (regexp-quote (substring end 0 1)) "+" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1323 (regexp-quote (substring end 1 2)))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1324 (t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1325 (error "Can't handle a block comment ender of length %s" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1326 (length end)))))))) |
18720 | 1327 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1328 (c-lang-defconst c-nonwhite-syntactic-ws |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1329 ;; Regexp matching a piece of syntactic whitespace that isn't a |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1330 ;; sequence of simple whitespace characters. As opposed to |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1331 ;; `c-(forward|backward)-syntactic-ws', this doesn't regard cpp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1332 ;; directives as syntactic whitespace. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1333 t (c-concat-separated |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1334 (list (when (c-lang-const c-line-comment-starter) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1335 (concat (regexp-quote (c-lang-const c-line-comment-starter)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1336 "[^\n\r]*[\n\r]")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1337 (c-lang-const c-block-comment-regexp) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1338 "\\\\[\n\r]" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1339 (when (memq 'gen-comment-delim c-emacs-features) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1340 "\\s!\\S!*\\s!")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1341 "\\|")) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1342 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1343 (c-lang-defconst c-syntactic-ws |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1344 ;; Regexp matching syntactic whitespace, including possibly the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1345 ;; empty string. As opposed to `c-(forward|backward)-syntactic-ws', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1346 ;; this doesn't regard cpp directives as syntactic whitespace. Does |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1347 ;; not contain a \| operator at the top level. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1348 t (concat (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1349 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1350 (concat "\\(" (c-lang-const c-nonwhite-syntactic-ws) "\\)" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1351 (c-lang-const c-simple-ws) "*") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1352 "\\)*")) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1353 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1354 (c-lang-defconst c-syntactic-ws-depth |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1355 ;; Number of regexp grouping parens in `c-syntactic-ws'. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1356 t (regexp-opt-depth (c-lang-const c-syntactic-ws))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1357 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1358 (c-lang-defconst c-nonempty-syntactic-ws |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1359 ;; Regexp matching syntactic whitespace, which is at least one |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1360 ;; character long. As opposed to `c-(forward|backward)-syntactic-ws', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1361 ;; this doesn't regard cpp directives as syntactic whitespace. Does |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1362 ;; not contain a \| operator at the top level. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1363 t (concat "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1364 (c-lang-const c-simple-ws) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1365 "\\|" |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1366 (c-lang-const c-nonwhite-syntactic-ws) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1367 "\\)+")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1368 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1369 (c-lang-defconst c-nonempty-syntactic-ws-depth |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1370 ;; Number of regexp grouping parens in `c-nonempty-syntactic-ws'. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1371 t (regexp-opt-depth (c-lang-const c-nonempty-syntactic-ws))) |
19250 | 1372 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1373 (c-lang-defconst c-single-line-syntactic-ws |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1374 ;; Regexp matching syntactic whitespace without any line breaks. As |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1375 ;; opposed to `c-(forward|backward)-syntactic-ws', this doesn't |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1376 ;; regard cpp directives as syntactic whitespace. Does not contain |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1377 ;; a \| operator at the top level. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1378 t (if (c-lang-const c-block-comment-regexp) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1379 (concat "\\s *\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1380 (c-lang-const c-block-comment-regexp) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1381 "\\s *\\)*") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1382 "\\s *")) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1383 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1384 (c-lang-defconst c-single-line-syntactic-ws-depth |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1385 ;; Number of regexp grouping parens in `c-single-line-syntactic-ws'. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1386 t (regexp-opt-depth (c-lang-const c-single-line-syntactic-ws))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1387 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1388 (c-lang-defconst c-syntactic-eol |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1389 ;; Regexp that matches when there is no syntactically significant |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1390 ;; text before eol. Macros are regarded as syntactically |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1391 ;; significant text here. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1392 t (concat (c-lang-const c-single-line-syntactic-ws) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1393 ;; Match eol (possibly inside a block comment or preceded |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1394 ;; by a line continuation backslash), or the beginning of a |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1395 ;; line comment. Note: This has to be modified for awk |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1396 ;; where line comments start with '#'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1397 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1398 (c-concat-separated |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1399 (list (when (c-lang-const c-line-comment-starter) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1400 (regexp-quote (c-lang-const c-line-comment-starter))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1401 (when (c-lang-const c-unterminated-block-comment-regexp) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1402 (concat (c-lang-const c-unterminated-block-comment-regexp) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1403 "$")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1404 "\\\\$" |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1405 "$") |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1406 "\\|") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1407 "\\)")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1408 (c-lang-defvar c-syntactic-eol (c-lang-const c-syntactic-eol)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1409 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1410 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1411 ;;; Syntactic analysis ("virtual semicolons") for line-oriented languages (AWK). |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1412 (c-lang-defconst c-at-vsemi-p-fn |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1413 "Contains a function \"Is there a virtual semicolon at POS or point?\". |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1414 Such a function takes one optional parameter, a buffer position (defaults to |
74581
a25d780605e7
(c-at-vsemi-p-fn, c-vsemi-status-unknown-p-fn): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
74372
diff
changeset
|
1415 point), and returns nil or t. This variable contains nil for languages which |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1416 don't have EOL terminated statements. " |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1417 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1418 awk 'c-awk-at-vsemi-p) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1419 (c-lang-defvar c-at-vsemi-p-fn (c-lang-const c-at-vsemi-p-fn)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1420 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1421 (c-lang-defconst c-vsemi-status-unknown-p-fn |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1422 "Contains a function \"are we unsure whether there is a virtual semicolon on this line?\". |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1423 The (admittedly kludgey) purpose of such a function is to prevent an infinite |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1424 recursion in c-beginning-of-statement-1 when point starts at a `while' token. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1425 The function MUST NOT UNDER ANY CIRCUMSTANCES call c-beginning-of-statement-1, |
74581
a25d780605e7
(c-at-vsemi-p-fn, c-vsemi-status-unknown-p-fn): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
74372
diff
changeset
|
1426 even indirectly. This variable contains nil for languages which don't have |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1427 EOL terminated statements." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1428 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1429 awk 'c-awk-vsemi-status-unknown-p) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1430 (c-lang-defvar c-vsemi-status-unknown-p-fn |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1431 (c-lang-const c-vsemi-status-unknown-p-fn)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1432 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1433 |
77081
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1434 ;;; Defun functions |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1435 |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1436 ;; The Emacs variables beginning-of-defun-function and |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1437 ;; end-of-defun-function will be set so that commands like |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1438 ;; `mark-defun' and `narrow-to-defun' work right. The key sequences |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1439 ;; C-M-a and C-M-e are, however, bound directly to the CC Mode |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1440 ;; functions, allowing optimisation for large n. |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1441 (c-lang-defconst beginning-of-defun-function |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1442 "Function to which beginning-of-defun-function will be set." |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1443 t 'c-beginning-of-defun |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1444 awk 'c-awk-beginning-of-defun) |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1445 (c-lang-setvar beginning-of-defun-function |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1446 (c-lang-const beginning-of-defun-function)) |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1447 |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1448 (c-lang-defconst end-of-defun-function |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1449 "Function to which end-of-defun-function will be set." |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1450 t 'c-end-of-defun |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1451 awk 'c-awk-end-of-defun) |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1452 (c-lang-setvar end-of-defun-function (c-lang-const end-of-defun-function)) |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1453 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1454 ;;; In-comment text handling. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1455 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1456 (c-lang-defconst c-paragraph-start |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1457 "Regexp to append to `paragraph-start'." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1458 t "$" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1459 java "\\(@[a-zA-Z]+\\>\\|$\\)" ; For Javadoc. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1460 pike "\\(@[a-zA-Z_-]+\\>\\([^{]\\|$\\)\\|$\\)") ; For Pike refdoc. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1461 (c-lang-defvar c-paragraph-start (c-lang-const c-paragraph-start)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1462 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1463 (c-lang-defconst c-paragraph-separate |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1464 "Regexp to append to `paragraph-separate'." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1465 t "$" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1466 pike (c-lang-const c-paragraph-start)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1467 (c-lang-defvar c-paragraph-separate (c-lang-const c-paragraph-separate)) |
24282 | 1468 |
36920 | 1469 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1470 ;;; Keyword lists. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1471 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1472 ;; Note: All and only all language constants containing keyword lists |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1473 ;; should end with "-kwds"; they're automatically collected into the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1474 ;; `c-kwds-lang-consts' list below and used to build `c-keywords' etc. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1475 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1476 (c-lang-defconst c-primitive-type-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1477 "Primitive type keywords. As opposed to the other keyword lists, the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1478 keywords listed here are fontified with the type face instead of the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1479 keyword face. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1480 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1481 If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1482 `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1483 `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1484 will be handled. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1485 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1486 Do not try to modify this list for end user customizations; the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1487 `*-font-lock-extra-types' variable, where `*' is the mode prefix, is |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1488 the appropriate place for that." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1489 t '("char" "double" "float" "int" "long" "short" "signed" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1490 "unsigned" "void") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1491 c (append |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1492 '("_Bool" "_Complex" "_Imaginary") ; Conditionally defined in C99. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1493 (c-lang-const c-primitive-type-kwds)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1494 c++ (append |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1495 '("bool" "wchar_t") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1496 (c-lang-const c-primitive-type-kwds)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1497 ;; Objective-C extends C, but probably not the new stuff in C99. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1498 objc (append |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1499 '("id" "Class" "SEL" "IMP" "BOOL") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1500 (c-lang-const c-primitive-type-kwds)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1501 java '("boolean" "byte" "char" "double" "float" "int" "long" "short" "void") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1502 idl '("Object" "ValueBase" "any" "boolean" "char" "double" "fixed" "float" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1503 "long" "octet" "sequence" "short" "string" "void" "wchar" "wstring" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1504 ;; In CORBA PSDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1505 "ref" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1506 ;; The following can't really end a type, but we have to specify them |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1507 ;; here due to the assumption in `c-primitive-type-prefix-kwds'. It |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1508 ;; doesn't matter that much. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1509 "unsigned" "strong") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1510 pike '(;; this_program isn't really a keyword, but it's practically |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1511 ;; used as a builtin type. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1512 "array" "float" "function" "int" "mapping" "mixed" "multiset" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1513 "object" "program" "string" "this_program" "void")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1514 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1515 (c-lang-defconst c-primitive-type-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1516 ;; An adorned regexp that matches `c-primitive-type-kwds'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1517 t (c-make-keywords-re t (c-lang-const c-primitive-type-kwds))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1518 (c-lang-defvar c-primitive-type-key (c-lang-const c-primitive-type-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1519 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1520 (c-lang-defconst c-primitive-type-prefix-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1521 "Keywords that might act as prefixes for primitive types. Assumed to |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1522 be a subset of `c-primitive-type-kwds'." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1523 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1524 (c c++) '("long" "short" "signed" "unsigned") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1525 idl '("long" "unsigned" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1526 ;; In CORBA PSDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1527 "strong")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1528 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1529 (c-lang-defconst c-type-prefix-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1530 "Keywords where the following name - if any - is a type name, and |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1531 where the keyword together with the symbol works as a type in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1532 declarations. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1533 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1534 Note that an alternative if the second part doesn't hold is |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1535 `c-type-list-kwds'. Keywords on this list are typically also present |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1536 on one of the `*-decl-kwds' lists." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1537 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1538 c '("struct" "union" "enum") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1539 c++ (append '("class" "typename") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1540 (c-lang-const c-type-prefix-kwds c))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1541 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1542 (c-lang-defconst c-type-prefix-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1543 ;; Adorned regexp matching `c-type-prefix-kwds'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1544 t (c-make-keywords-re t (c-lang-const c-type-prefix-kwds))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1545 (c-lang-defvar c-type-prefix-key (c-lang-const c-type-prefix-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1546 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1547 (c-lang-defconst c-type-modifier-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1548 "Type modifier keywords. These can occur almost anywhere in types |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1549 but they don't build a type of themselves. Unlike the keywords on |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1550 `c-primitive-type-kwds', they are fontified with the keyword face and |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1551 not the type face." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1552 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1553 c '("const" "restrict" "volatile") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1554 c++ '("const" "volatile" "throw") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1555 objc '("const" "volatile")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1556 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1557 (c-lang-defconst c-opt-type-modifier-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1558 ;; Adorned regexp matching `c-type-modifier-kwds', or nil in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1559 ;; languages without such keywords. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1560 t (and (c-lang-const c-type-modifier-kwds) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1561 (c-make-keywords-re t (c-lang-const c-type-modifier-kwds)))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1562 (c-lang-defvar c-opt-type-modifier-key (c-lang-const c-opt-type-modifier-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1563 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1564 (c-lang-defconst c-opt-type-component-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1565 ;; An adorned regexp that matches `c-primitive-type-prefix-kwds' and |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1566 ;; `c-type-modifier-kwds', or nil in languages without any of them. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1567 t (and (or (c-lang-const c-primitive-type-prefix-kwds) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1568 (c-lang-const c-type-modifier-kwds)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1569 (c-make-keywords-re t |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1570 (append (c-lang-const c-primitive-type-prefix-kwds) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1571 (c-lang-const c-type-modifier-kwds))))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1572 (c-lang-defvar c-opt-type-component-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1573 (c-lang-const c-opt-type-component-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1574 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1575 (c-lang-defconst c-type-start-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1576 ;; All keywords that can start a type (i.e. are either a type prefix |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1577 ;; or a complete type). |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1578 t (delete-duplicates (append (c-lang-const c-primitive-type-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1579 (c-lang-const c-type-prefix-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1580 (c-lang-const c-type-modifier-kwds)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1581 :test 'string-equal)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1582 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1583 (c-lang-defconst c-class-decl-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1584 "Keywords introducing declarations where the following block (if any) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1585 contains another declaration level that should be considered a class. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1586 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1587 If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1588 `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1589 `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1590 will be handled. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1591 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1592 Note that presence on this list does not automatically treat the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1593 following identifier as a type; the keyword must also be present on |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1594 `c-type-prefix-kwds' or `c-type-list-kwds' to accomplish that." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1595 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1596 c '("struct" "union") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1597 c++ '("class" "struct" "union") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1598 objc '("struct" "union" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1599 "@interface" "@implementation" "@protocol") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1600 java '("class" "interface") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1601 idl '("component" "eventtype" "exception" "home" "interface" "struct" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1602 "union" "valuetype" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1603 ;; In CORBA PSDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1604 "storagehome" "storagetype" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1605 ;; In CORBA CIDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1606 "catalog" "executor" "manages" "segment") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1607 pike '("class")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1608 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1609 (c-lang-defconst c-class-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1610 ;; Regexp matching the start of a class. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1611 t (c-make-keywords-re t (c-lang-const c-class-decl-kwds))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1612 (c-lang-defvar c-class-key (c-lang-const c-class-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1613 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1614 (c-lang-defconst c-brace-list-decl-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1615 "Keywords introducing declarations where the following block (if |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1616 any) is a brace list. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1617 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1618 If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1619 `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1620 `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1621 will be handled." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1622 t '("enum") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1623 (java awk) nil) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1624 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1625 (c-lang-defconst c-brace-list-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1626 ;; Regexp matching the start of declarations where the following |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1627 ;; block is a brace list. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1628 t (c-make-keywords-re t (c-lang-const c-brace-list-decl-kwds))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1629 (c-lang-defvar c-brace-list-key (c-lang-const c-brace-list-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1630 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1631 (c-lang-defconst c-other-block-decl-kwds |
62641
27b53b1903b6
2005-05-23 Martin Stjernholm <bug-cc-mode@gnu.org>
Martin Stjernholm <mast@lysator.liu.se>
parents:
57295
diff
changeset
|
1632 "Keywords where the following block (if any) contains another |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1633 declaration level that should not be considered a class. For every |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1634 keyword here, CC Mode will add a set of special syntactic symbols for |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1635 those blocks. E.g. if the keyword is \"foo\" then there will be |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1636 `foo-open', `foo-close', and `infoo' symbols. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1637 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1638 The intention is that this category should be used for block |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1639 constructs that aren't related to object orientation concepts like |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1640 classes (which thus also include e.g. interfaces, templates, |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1641 contracts, structs, etc). The more pragmatic distinction is that |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1642 while most want some indentation inside classes, it's fairly common |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1643 that they don't want it in some of these constructs, so it should be |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1644 simple to configure that differently from classes. See also |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1645 `c-class-decl-kwds'. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1646 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1647 If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1648 `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1649 `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1650 will be handled." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1651 t nil |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1652 (c objc) '("extern") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1653 c++ '("namespace" "extern") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1654 idl '("module" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1655 ;; In CORBA CIDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1656 "composition")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1657 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1658 (c-lang-defconst c-other-decl-block-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1659 ;; Regexp matching the start of blocks besides classes that contain |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1660 ;; another declaration level. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1661 t (c-make-keywords-re t (c-lang-const c-other-block-decl-kwds))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1662 (c-lang-defvar c-other-decl-block-key (c-lang-const c-other-decl-block-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1663 |
78657
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1664 (c-lang-defvar c-other-decl-block-key-in-symbols-alist |
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1665 (mapcar |
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1666 (lambda (elt) |
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1667 (cons elt |
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1668 (if (string= elt "extern") |
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1669 'inextern-lang |
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1670 (intern (concat "in" elt))))) |
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1671 (c-lang-const c-other-block-decl-kwds)) |
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1672 "Alist associating keywords in c-other-decl-block-decl-kwds with |
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1673 their matching \"in\" syntactic symbols.") |
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1674 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1675 (c-lang-defconst c-typedef-decl-kwds |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1676 "Keywords introducing declarations where the identifier(s) being |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1677 declared are types. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1678 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1679 If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1680 `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1681 `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1682 will be handled." |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1683 ;; Default to `c-class-decl-kwds' and `c-brace-list-decl-kwds' |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1684 ;; (since e.g. "Foo" is a type that's being defined in "class Foo |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1685 ;; {...}"). |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1686 t (append (c-lang-const c-class-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1687 (c-lang-const c-brace-list-decl-kwds)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1688 ;; Languages that have a "typedef" construct. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1689 (c c++ objc idl pike) (append (c-lang-const c-typedef-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1690 '("typedef")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1691 ;; Unlike most other languages, exception names are not handled as |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1692 ;; types in IDL since they only can occur in "raises" specs. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1693 idl (delete "exception" (append (c-lang-const c-typedef-decl-kwds) nil))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1694 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1695 (c-lang-defconst c-typeless-decl-kwds |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1696 "Keywords introducing declarations where the \(first) identifier |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1697 \(declarator) follows directly after the keyword, without any type. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1698 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1699 If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1700 `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1701 `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1702 will be handled." |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1703 ;; Default to `c-class-decl-kwds' and `c-brace-list-decl-kwds' |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1704 ;; (since e.g. "Foo" is the identifier being defined in "class Foo |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1705 ;; {...}"). |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1706 t (append (c-lang-const c-class-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1707 (c-lang-const c-brace-list-decl-kwds)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1708 ;; Note: "manages" for CORBA CIDL clashes with its presence on |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1709 ;; `c-type-list-kwds' for IDL. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1710 idl (append (c-lang-const c-typeless-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1711 '("factory" "finder" "native" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1712 ;; In CORBA PSDL: |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1713 "key" "stores" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1714 ;; In CORBA CIDL: |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1715 "facet")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1716 pike (append (c-lang-const c-class-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1717 '("constant"))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1718 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1719 (c-lang-defconst c-modifier-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1720 "Keywords that can prefix normal declarations of identifiers |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1721 \(and typically act as flags). Things like argument declarations |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1722 inside function headers are also considered declarations in this |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1723 sense. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1724 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1725 If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1726 `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1727 `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1728 will be handled." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1729 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1730 (c c++) '("auto" "extern" "inline" "register" "static") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1731 c++ (append '("explicit" "friend" "mutable" "template" "using" "virtual") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1732 (c-lang-const c-modifier-kwds)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1733 objc '("auto" "bycopy" "byref" "extern" "in" "inout" "oneway" "out" "static") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1734 ;; FIXME: Some of those below ought to be on `c-other-decl-kwds' instead. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1735 idl '("abstract" "attribute" "const" "consumes" "custom" "emits" "import" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1736 "in" "inout" "local" "multiple" "oneway" "out" "private" "provides" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1737 "public" "publishes" "readonly" "typeid" "typeprefix" "uses" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1738 ;; In CORBA PSDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1739 "primary" "state" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1740 ;; In CORBA CIDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1741 "bindsTo" "delegatesTo" "implements" "proxy" "storedOn") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1742 ;; Note: "const" is not used in Java, but it's still a reserved keyword. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1743 java '("abstract" "const" "final" "native" "private" "protected" "public" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1744 "static" "strictfp" "synchronized" "transient" "volatile") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1745 pike '("final" "inline" "local" "nomask" "optional" "private" "protected" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1746 "public" "static" "variant")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1747 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1748 (c-lang-defconst c-other-decl-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1749 "Keywords that can start or prefix any declaration level construct, |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1750 besides those on `c-class-decl-kwds', `c-brace-list-decl-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1751 `c-other-block-decl-kwds', `c-typedef-decl-kwds', |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1752 `c-typeless-decl-kwds' and `c-modifier-kwds'. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1753 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1754 If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1755 `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1756 `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1757 will be handled." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1758 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1759 objc '("@class" "@end" "@defs") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1760 java '("import" "package") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1761 pike '("import" "inherit")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1762 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1763 (c-lang-defconst c-decl-start-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1764 "Keywords that always start declarations, wherever they occur. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1765 This can be used for declarations that aren't recognized by the normal |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1766 combination of `c-decl-prefix-re' and `c-decl-start-re'." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1767 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1768 ;; Classes can be declared anywhere in a Pike expression. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1769 pike '("class")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1770 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1771 (c-lang-defconst c-decl-hangon-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1772 "Keywords that can occur anywhere in a declaration level construct. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1773 This is used for self-contained things that can be tacked on anywhere |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1774 on a declaration and that should be ignored to be able to recognize it |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1775 correctly. Typical cases are compiler extensions like |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1776 \"__attribute__\" or \"__declspec\": |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1777 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1778 __declspec(noreturn) void foo(); |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1779 class __declspec(dllexport) classname {...}; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1780 void foo() __attribute__((noreturn)); |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1781 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1782 Note that unrecognized plain symbols are skipped anyway if they occur |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1783 before the type, so such things are not necessary to mention here. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1784 Mentioning them here is necessary only if they can occur in other |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1785 places, or if they are followed by a construct that must be skipped |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1786 over \(like the parens in the \"__attribute__\" and \"__declspec\" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1787 examples above). In the last case, they alse need to be present on |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1788 one of `c-type-list-kwds', `c-ref-list-kwds', |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1789 `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1790 `c-<>-type-kwds', or `c-<>-arglist-kwds'." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1791 ;; NB: These are currently not recognized in all parts of a |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1792 ;; declaration. Specifically, they aren't recognized in the middle |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1793 ;; of multi-token types, inside declarators, and between the |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1794 ;; identifier and the arglist paren of a function declaration. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1795 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1796 ;; FIXME: This ought to be user customizable since compiler stuff |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1797 ;; like this usually is wrapped in project specific macros. (It'd |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1798 ;; of course be even better if we could cope without knowing this.) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1799 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1800 (c c++) '(;; GCC extension. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1801 "__attribute__" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1802 ;; MSVC extension. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1803 "__declspec")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1804 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1805 (c-lang-defconst c-decl-hangon-key |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1806 ;; Adorned regexp matching `c-decl-hangon-kwds'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1807 t (c-make-keywords-re t (c-lang-const c-decl-hangon-kwds))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1808 (c-lang-defvar c-decl-hangon-key (c-lang-const c-decl-hangon-key)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1809 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1810 (c-lang-defconst c-prefix-spec-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1811 ;; All keywords that can occur in the preamble of a declaration. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1812 ;; They typically occur before the type, but they are also matched |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1813 ;; after presumptive types since we often can't be sure that |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1814 ;; something is a type or just some sort of macro in front of the |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1815 ;; declaration. They might be ambiguous with types or type |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1816 ;; prefixes. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1817 t (delete-duplicates (append (c-lang-const c-class-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1818 (c-lang-const c-brace-list-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1819 (c-lang-const c-other-block-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1820 (c-lang-const c-typedef-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1821 (c-lang-const c-typeless-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1822 (c-lang-const c-modifier-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1823 (c-lang-const c-other-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1824 (c-lang-const c-decl-start-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1825 (c-lang-const c-decl-hangon-kwds)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1826 :test 'string-equal)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1827 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1828 (c-lang-defconst c-prefix-spec-kwds-re |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1829 ;; Adorned regexp of `c-prefix-spec-kwds'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1830 t (c-make-keywords-re t (c-lang-const c-prefix-spec-kwds))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1831 (c-lang-defvar c-prefix-spec-kwds-re (c-lang-const c-prefix-spec-kwds-re)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1832 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1833 (c-lang-defconst c-specifier-key |
79955
aa18c505efa9
(c-specifier-key): Exclude "template" from this regexp; to allow the "{"
Alan Mackenzie <acm@muc.de>
parents:
79717
diff
changeset
|
1834 ;; Adorned regexp of the keywords in `c-prefix-spec-kwds' that aren't |
aa18c505efa9
(c-specifier-key): Exclude "template" from this regexp; to allow the "{"
Alan Mackenzie <acm@muc.de>
parents:
79717
diff
changeset
|
1835 ;; ambiguous with types or type prefixes. These are the keywords (like |
aa18c505efa9
(c-specifier-key): Exclude "template" from this regexp; to allow the "{"
Alan Mackenzie <acm@muc.de>
parents:
79717
diff
changeset
|
1836 ;; extern, namespace, but NOT template) that can modify a declaration. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1837 t (c-make-keywords-re t |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1838 (set-difference (c-lang-const c-prefix-spec-kwds) |
79955
aa18c505efa9
(c-specifier-key): Exclude "template" from this regexp; to allow the "{"
Alan Mackenzie <acm@muc.de>
parents:
79717
diff
changeset
|
1839 (append (c-lang-const c-type-start-kwds) |
aa18c505efa9
(c-specifier-key): Exclude "template" from this regexp; to allow the "{"
Alan Mackenzie <acm@muc.de>
parents:
79717
diff
changeset
|
1840 (c-lang-const c-<>-arglist-kwds)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1841 :test 'string-equal))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1842 (c-lang-defvar c-specifier-key (c-lang-const c-specifier-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1843 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1844 (c-lang-defconst c-postfix-spec-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1845 ;; Keywords that can occur after argument list of a function header |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1846 ;; declaration, i.e. in the "K&R region". |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1847 t (append (c-lang-const c-postfix-decl-spec-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1848 (c-lang-const c-decl-hangon-kwds))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1849 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1850 (c-lang-defconst c-not-decl-init-keywords |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1851 ;; Adorned regexp matching all keywords that can't appear at the |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1852 ;; start of a declaration. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1853 t (c-make-keywords-re t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1854 (set-difference (c-lang-const c-keywords) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1855 (append (c-lang-const c-type-start-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1856 (c-lang-const c-prefix-spec-kwds)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1857 :test 'string-equal))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1858 (c-lang-defvar c-not-decl-init-keywords |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1859 (c-lang-const c-not-decl-init-keywords)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1860 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1861 (c-lang-defconst c-protection-kwds |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1862 "Access protection label keywords in classes." |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1863 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1864 c++ '("private" "protected" "public") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1865 objc '("@private" "@protected" "@public")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1866 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1867 (c-lang-defconst c-block-decls-with-vars |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1868 "Keywords introducing declarations that can contain a block which |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1869 might be followed by variable declarations, e.g. like \"foo\" in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1870 \"class Foo { ... } foo;\". So if there is a block in a declaration |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1871 like that, it ends with the following ';' and not right away. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1872 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1873 The keywords on list are assumed to also be present on one of the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1874 `*-decl-kwds' lists." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1875 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1876 (c objc) '("struct" "union" "enum" "typedef") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1877 c++ '("class" "struct" "union" "enum" "typedef")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1878 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1879 (c-lang-defconst c-opt-block-decls-with-vars-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1880 ;; Regexp matching the `c-block-decls-with-vars' keywords, or nil in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1881 ;; languages without such constructs. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1882 t (and (c-lang-const c-block-decls-with-vars) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1883 (c-make-keywords-re t (c-lang-const c-block-decls-with-vars)))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1884 (c-lang-defvar c-opt-block-decls-with-vars-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1885 (c-lang-const c-opt-block-decls-with-vars-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1886 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1887 (c-lang-defconst c-postfix-decl-spec-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1888 "Keywords introducing extra declaration specifiers in the region |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1889 between the header and the body \(i.e. the \"K&R-region\") in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1890 declarations." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1891 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1892 java '("extends" "implements" "throws") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1893 idl '("context" "getraises" "manages" "primarykey" "raises" "setraises" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1894 "supports" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1895 ;; In CORBA PSDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1896 "as" "const" "implements" "of" "ref")) |
36920 | 1897 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1898 (c-lang-defconst c-nonsymbol-sexp-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1899 "Keywords that may be followed by a nonsymbol sexp before whatever |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1900 construct it's part of continues." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1901 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1902 (c c++ objc) '("extern")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1903 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1904 (c-lang-defconst c-type-list-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1905 "Keywords that may be followed by a comma separated list of type |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1906 identifiers, where each optionally can be prefixed by keywords. (Can |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1907 also be used for the special case when the list can contain only one |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1908 element.) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1909 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1910 Assumed to be mutually exclusive with `c-ref-list-kwds'. There's no |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1911 reason to put keywords on this list if they are on `c-type-prefix-kwds'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1912 There's also no reason to add keywords that prefixes a normal |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1913 declaration consisting of a type followed by a declarator (list), so |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1914 the keywords on `c-modifier-kwds' should normally not be listed here |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1915 either. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1916 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1917 Note: Use `c-typeless-decl-kwds' for keywords followed by a function |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1918 or variable identifier (that's being defined)." |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1919 t nil |
52607
28b12b0193f6
(c-type-list-kwds): If "operator" is followed by an identifier in C++
Martin Stjernholm <mast@lysator.liu.se>
parents:
52401
diff
changeset
|
1920 c++ '("operator") |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1921 objc '("@class") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1922 java '("import" "new" "extends" "implements" "throws") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1923 idl '("manages" "native" "primarykey" "supports" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1924 ;; In CORBA PSDL: |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1925 "as" "implements" "of" "scope") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1926 pike '("inherit")) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1927 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1928 (c-lang-defconst c-ref-list-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1929 "Keywords that may be followed by a comma separated list of |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1930 reference (i.e. namespace/scope/module) identifiers, where each |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1931 optionally can be prefixed by keywords. (Can also be used for the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1932 special case when the list can contain only one element.) Assumed to |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1933 be mutually exclusive with `c-type-list-kwds'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1934 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1935 Note: Use `c-typeless-decl-kwds' for keywords followed by a function |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1936 or variable identifier (that's being defined)." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1937 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1938 c++ '("namespace") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1939 java '("package") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1940 idl '("import" "module" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1941 ;; In CORBA CIDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1942 "composition") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1943 pike '("import")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1944 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1945 (c-lang-defconst c-colon-type-list-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1946 "Keywords that may be followed (not necessarily directly) by a colon |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1947 and then a comma separated list of type identifiers, where each |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1948 optionally can be prefixed by keywords. (Can also be used for the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1949 special case when the list can contain only one element.)" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1950 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1951 c++ '("class" "struct") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1952 idl '("component" "eventtype" "home" "interface" "valuetype" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1953 ;; In CORBA PSDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1954 "storagehome" "storagetype")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1955 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1956 (c-lang-defconst c-colon-type-list-re |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1957 "Regexp matched after the keywords in `c-colon-type-list-kwds' to skip |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1958 forward to the colon. The end of the match is assumed to be directly |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1959 after the colon, so the regexp should end with \":\". Must be a |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1960 regexp if `c-colon-type-list-kwds' isn't nil." |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1961 t (if (c-lang-const c-colon-type-list-kwds) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1962 ;; Disallow various common punctuation chars that can't come |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1963 ;; before the ":" that starts the inherit list after "class" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1964 ;; or "struct" in C++. (Also used as default for other |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1965 ;; languages.) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1966 "[^\]\[{}();,/#=:]*:")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1967 (c-lang-defvar c-colon-type-list-re (c-lang-const c-colon-type-list-re)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1968 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1969 (c-lang-defconst c-paren-nontype-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1970 "Keywords that may be followed by a parenthesis expression that doesn't |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1971 contain type identifiers." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1972 t nil |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1973 (c c++) '(;; GCC extension. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1974 "__attribute__" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1975 ;; MSVC extension. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1976 "__declspec")) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1977 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1978 (c-lang-defconst c-paren-type-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1979 "Keywords that may be followed by a parenthesis expression containing |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1980 type identifiers separated by arbitrary tokens." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1981 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1982 c++ '("throw") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1983 objc '("@defs") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1984 idl '("switch") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1985 pike '("array" "function" "int" "mapping" "multiset" "object" "program")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1986 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1987 (c-lang-defconst c-paren-any-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1988 t (delete-duplicates (append (c-lang-const c-paren-nontype-kwds) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1989 (c-lang-const c-paren-type-kwds)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1990 :test 'string-equal)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1991 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1992 (c-lang-defconst c-<>-type-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1993 "Keywords that may be followed by an angle bracket expression |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1994 containing type identifiers separated by \",\". The difference from |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1995 `c-<>-arglist-kwds' is that unknown names are taken to be types and |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1996 not other identifiers. `c-recognize-<>-arglists' is assumed to be set |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1997 if this isn't nil." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1998 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1999 objc '("id") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2000 idl '("sequence" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2001 ;; In CORBA PSDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2002 "ref")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2003 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2004 (c-lang-defconst c-<>-arglist-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2005 "Keywords that can be followed by a C++ style template arglist; see |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2006 `c-recognize-<>-arglists' for details. That language constant is |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2007 assumed to be set if this isn't nil." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2008 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2009 c++ '("template") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2010 idl '("fixed" "string" "wstring")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2011 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2012 (c-lang-defconst c-<>-sexp-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2013 ;; All keywords that can be followed by an angle bracket sexp. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2014 t (delete-duplicates (append (c-lang-const c-<>-type-kwds) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2015 (c-lang-const c-<>-arglist-kwds)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2016 :test 'string-equal)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2017 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2018 (c-lang-defconst c-opt-<>-sexp-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2019 ;; Adorned regexp matching keywords that can be followed by an angle |
52341
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
2020 ;; bracket sexp. Always set when `c-recognize-<>-arglists' is. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2021 t (if (c-lang-const c-recognize-<>-arglists) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2022 (c-make-keywords-re t (c-lang-const c-<>-sexp-kwds)))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2023 (c-lang-defvar c-opt-<>-sexp-key (c-lang-const c-opt-<>-sexp-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2024 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2025 (c-lang-defconst c-brace-id-list-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2026 "Keywords that may be followed by a brace block containing a comma |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2027 separated list of identifier definitions, i.e. like the list of |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2028 identifiers that follows the type in a normal declaration." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2029 t (c-lang-const c-brace-list-decl-kwds)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2030 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2031 (c-lang-defconst c-block-stmt-1-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2032 "Statement keywords followed directly by a substatement." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2033 t '("do" "else") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2034 c++ '("do" "else" "try") |
79958
d22f0fe0ef05
(c-block-stmt-1-kwds, c-block-stmt-2-kwds, c-simple-stmt-kwds): New
Alan Mackenzie <acm@muc.de>
parents:
79955
diff
changeset
|
2035 objc '("do" "else" "@finally" "@try") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2036 java '("do" "else" "finally" "try") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2037 idl nil) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2038 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2039 (c-lang-defconst c-block-stmt-1-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2040 ;; Regexp matching the start of any statement followed directly by a |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2041 ;; substatement (doesn't match a bare block, however). |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2042 t (c-make-keywords-re t (c-lang-const c-block-stmt-1-kwds))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2043 (c-lang-defvar c-block-stmt-1-key (c-lang-const c-block-stmt-1-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2044 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2045 (c-lang-defconst c-block-stmt-2-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2046 "Statement keywords followed by a paren sexp and then by a substatement." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2047 t '("for" "if" "switch" "while") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2048 c++ '("for" "if" "switch" "while" "catch") |
79958
d22f0fe0ef05
(c-block-stmt-1-kwds, c-block-stmt-2-kwds, c-simple-stmt-kwds): New
Alan Mackenzie <acm@muc.de>
parents:
79955
diff
changeset
|
2049 objc '("for" "if" "switch" "while" "@catch" "@synchronized") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2050 java '("for" "if" "switch" "while" "catch" "synchronized") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2051 idl nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2052 pike '("for" "if" "switch" "while" "foreach") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2053 awk '("for" "if" "while")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2054 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2055 (c-lang-defconst c-block-stmt-2-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2056 ;; Regexp matching the start of any statement followed by a paren sexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2057 ;; and then by a substatement. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2058 t (c-make-keywords-re t (c-lang-const c-block-stmt-2-kwds))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2059 (c-lang-defvar c-block-stmt-2-key (c-lang-const c-block-stmt-2-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2060 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2061 (c-lang-defconst c-block-stmt-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2062 ;; Union of `c-block-stmt-1-kwds' and `c-block-stmt-2-kwds'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2063 t (delete-duplicates (append (c-lang-const c-block-stmt-1-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2064 (c-lang-const c-block-stmt-2-kwds)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2065 :test 'string-equal)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2066 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2067 (c-lang-defconst c-opt-block-stmt-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2068 ;; Regexp matching the start of any statement that has a |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2069 ;; substatement (except a bare block). Nil in languages that |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2070 ;; don't have such constructs. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2071 t (if (or (c-lang-const c-block-stmt-1-kwds) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2072 (c-lang-const c-block-stmt-2-kwds)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2073 (c-make-keywords-re t |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2074 (append (c-lang-const c-block-stmt-1-kwds) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2075 (c-lang-const c-block-stmt-2-kwds))))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2076 (c-lang-defvar c-opt-block-stmt-key (c-lang-const c-opt-block-stmt-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2077 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2078 (c-lang-defconst c-simple-stmt-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2079 "Statement keywords followed by an expression or nothing." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2080 t '("break" "continue" "goto" "return") |
79958
d22f0fe0ef05
(c-block-stmt-1-kwds, c-block-stmt-2-kwds, c-simple-stmt-kwds): New
Alan Mackenzie <acm@muc.de>
parents:
79955
diff
changeset
|
2081 objc '("break" "continue" "goto" "return" "@throw") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2082 ;; Note: `goto' is not valid in Java, but the keyword is still reserved. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2083 java '("break" "continue" "goto" "return" "throw") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2084 idl nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2085 pike '("break" "continue" "return") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2086 awk '(;; Not sure about "delete", "exit", "getline", etc. ; ACM 2002/5/30 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2087 "break" "continue" "return" "delete" "exit" "getline" "next" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2088 "nextfile" "print" "printf")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2089 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2090 (c-lang-defconst c-simple-stmt-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2091 ;; Adorned regexp matching `c-simple-stmt-kwds'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2092 t (c-make-keywords-re t (c-lang-const c-simple-stmt-kwds))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2093 (c-lang-defvar c-simple-stmt-key (c-lang-const c-simple-stmt-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2094 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2095 (c-lang-defconst c-paren-stmt-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2096 "Statement keywords followed by a parenthesis expression that |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2097 nevertheless contains a list separated with ';' and not ','." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2098 t '("for") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2099 idl nil) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2100 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2101 (c-lang-defconst c-paren-stmt-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2102 ;; Adorned regexp matching `c-paren-stmt-kwds'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2103 t (c-make-keywords-re t (c-lang-const c-paren-stmt-kwds))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2104 (c-lang-defvar c-paren-stmt-key (c-lang-const c-paren-stmt-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2105 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2106 (c-lang-defconst c-asm-stmt-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2107 "Statement keywords followed by an assembler expression." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2108 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2109 (c c++) '("asm" "__asm__")) ;; Not standard, but common. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2110 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2111 (c-lang-defconst c-opt-asm-stmt-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2112 ;; Regexp matching the start of an assembler statement. Nil in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2113 ;; languages that don't support that. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2114 t (if (c-lang-const c-asm-stmt-kwds) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2115 (c-make-keywords-re t (c-lang-const c-asm-stmt-kwds)))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2116 (c-lang-defvar c-opt-asm-stmt-key (c-lang-const c-opt-asm-stmt-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2117 |
102168
4f3b9ebc200a
cc-engine.el (c-beginning-of-statement-1): Enhance to parse case clauses
Alan Mackenzie <acm@muc.de>
parents:
101271
diff
changeset
|
2118 (c-lang-defconst c-case-kwds |
4f3b9ebc200a
cc-engine.el (c-beginning-of-statement-1): Enhance to parse case clauses
Alan Mackenzie <acm@muc.de>
parents:
101271
diff
changeset
|
2119 "The keyword\(s) which introduce a \"case\" like construct. |
4f3b9ebc200a
cc-engine.el (c-beginning-of-statement-1): Enhance to parse case clauses
Alan Mackenzie <acm@muc.de>
parents:
101271
diff
changeset
|
2120 This construct is \"<keyword> <expression> :\"." |
4f3b9ebc200a
cc-engine.el (c-beginning-of-statement-1): Enhance to parse case clauses
Alan Mackenzie <acm@muc.de>
parents:
101271
diff
changeset
|
2121 t '("case") |
4f3b9ebc200a
cc-engine.el (c-beginning-of-statement-1): Enhance to parse case clauses
Alan Mackenzie <acm@muc.de>
parents:
101271
diff
changeset
|
2122 awk nil) |
4f3b9ebc200a
cc-engine.el (c-beginning-of-statement-1): Enhance to parse case clauses
Alan Mackenzie <acm@muc.de>
parents:
101271
diff
changeset
|
2123 |
4f3b9ebc200a
cc-engine.el (c-beginning-of-statement-1): Enhance to parse case clauses
Alan Mackenzie <acm@muc.de>
parents:
101271
diff
changeset
|
2124 (c-lang-defconst c-case-kwds-regexp |
4f3b9ebc200a
cc-engine.el (c-beginning-of-statement-1): Enhance to parse case clauses
Alan Mackenzie <acm@muc.de>
parents:
101271
diff
changeset
|
2125 ;; Adorned regexp matching any "case"-like keyword. |
4f3b9ebc200a
cc-engine.el (c-beginning-of-statement-1): Enhance to parse case clauses
Alan Mackenzie <acm@muc.de>
parents:
101271
diff
changeset
|
2126 t (c-make-keywords-re t (c-lang-const c-case-kwds))) |
4f3b9ebc200a
cc-engine.el (c-beginning-of-statement-1): Enhance to parse case clauses
Alan Mackenzie <acm@muc.de>
parents:
101271
diff
changeset
|
2127 (c-lang-defvar c-case-kwds-regexp (c-lang-const c-case-kwds-regexp)) |
4f3b9ebc200a
cc-engine.el (c-beginning-of-statement-1): Enhance to parse case clauses
Alan Mackenzie <acm@muc.de>
parents:
101271
diff
changeset
|
2128 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2129 (c-lang-defconst c-label-kwds |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2130 "Keywords introducing colon terminated labels in blocks." |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2131 t '("case" "default") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2132 awk nil) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2133 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2134 (c-lang-defconst c-label-kwds-regexp |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2135 ;; Adorned regexp matching any keyword that introduces a label. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2136 t (c-make-keywords-re t (c-lang-const c-label-kwds))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2137 (c-lang-defvar c-label-kwds-regexp (c-lang-const c-label-kwds-regexp)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2138 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2139 (c-lang-defconst c-before-label-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2140 "Keywords that might be followed by a label identifier." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2141 t '("goto") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2142 (java pike) (append '("break" "continue") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2143 (c-lang-const c-before-label-kwds)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2144 idl nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2145 awk nil) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2146 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2147 (c-lang-defconst c-constant-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2148 "Keywords for constants." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2149 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2150 (c c++) '("NULL" ;; Not a keyword, but practically works as one. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2151 "false" "true") ; Defined in C99. |
103117
49b361ba00e8
Enhancements for Objective-C:
Alan Mackenzie <acm@muc.de>
parents:
102168
diff
changeset
|
2152 objc '("nil" "Nil" "YES" "NO" "NS_DURING" "NS_HANDLER" "NS_ENDHANDLER") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2153 idl '("TRUE" "FALSE") |
78688
169408eb6887
(c-constant-kwds): Add java: null, true, false.
Glenn Morris <rgm@gnu.org>
parents:
78657
diff
changeset
|
2154 java '("true" "false" "null") ; technically "literals", not keywords |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2155 pike '("UNDEFINED")) ;; Not a keyword, but practically works as one. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2156 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2157 (c-lang-defconst c-primary-expr-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2158 "Keywords besides constants and operators that start primary expressions." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2159 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2160 c++ '("operator" "this") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2161 objc '("super" "self") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2162 java '("this") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2163 pike '("this")) ;; Not really a keyword, but practically works as one. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2164 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2165 (c-lang-defconst c-expr-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2166 ;; Keywords that can occur anywhere in expressions. Built from |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2167 ;; `c-primary-expr-kwds' and all keyword operators in `c-operators'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2168 t (delete-duplicates |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2169 (append (c-lang-const c-primary-expr-kwds) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2170 (c-filter-ops (c-lang-const c-operator-list) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2171 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2172 "\\`\\(\\w\\|\\s_\\)+\\'")) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2173 :test 'string-equal)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2174 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2175 (c-lang-defconst c-lambda-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2176 "Keywords that start lambda constructs, i.e. function definitions in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2177 expressions." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2178 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2179 pike '("lambda")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2180 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2181 (c-lang-defconst c-inexpr-block-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2182 "Keywords that start constructs followed by statement blocks which can |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2183 be used in expressions \(the gcc extension for this in C and C++ is |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2184 handled separately by `c-recognize-paren-inexpr-blocks')." |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2185 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2186 pike '("catch" "gauge")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2187 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2188 (c-lang-defconst c-inexpr-class-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2189 "Keywords that can start classes inside expressions." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2190 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2191 java '("new") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2192 pike '("class")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2193 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2194 (c-lang-defconst c-inexpr-brace-list-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2195 "Keywords that can start brace list blocks inside expressions. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2196 Note that Java specific rules are currently applied to tell this from |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2197 `c-inexpr-class-kwds'." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2198 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2199 java '("new")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2200 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2201 (c-lang-defconst c-opt-inexpr-brace-list-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2202 ;; Regexp matching the start of a brace list in an expression, or |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2203 ;; nil in languages that don't have such things. This should not |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2204 ;; match brace lists recognized through `c-special-brace-lists'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2205 t (and (c-lang-const c-inexpr-brace-list-kwds) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2206 (c-make-keywords-re t (c-lang-const c-inexpr-brace-list-kwds)))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2207 (c-lang-defvar c-opt-inexpr-brace-list-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2208 (c-lang-const c-opt-inexpr-brace-list-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2209 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2210 (c-lang-defconst c-decl-block-key |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2211 ;; Regexp matching keywords in any construct that contain another |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2212 ;; declaration level, i.e. that isn't followed by a function block |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2213 ;; or brace list. When the first submatch matches, it's an |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2214 ;; unambiguous construct, otherwise it's an ambiguous match that |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2215 ;; might also be the return type of a function declaration. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2216 t (let* ((decl-kwds (append (c-lang-const c-class-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2217 (c-lang-const c-other-block-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2218 (c-lang-const c-inexpr-class-kwds))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2219 (unambiguous (set-difference decl-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2220 (c-lang-const c-type-start-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2221 :test 'string-equal)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2222 (ambiguous (intersection decl-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2223 (c-lang-const c-type-start-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2224 :test 'string-equal))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2225 (if ambiguous |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2226 (concat (c-make-keywords-re t unambiguous) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2227 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2228 (c-make-keywords-re t ambiguous)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2229 (c-make-keywords-re t unambiguous)))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2230 (c-lang-defvar c-decl-block-key (c-lang-const c-decl-block-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2231 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2232 (c-lang-defconst c-bitfield-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2233 "Keywords that can introduce bitfields." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2234 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2235 (c c++ objc) '("char" "int" "long" "signed" "unsigned")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2236 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2237 (c-lang-defconst c-opt-bitfield-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2238 ;; Regexp matching the start of a bitfield (not uniquely), or nil in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2239 ;; languages without bitfield support. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2240 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2241 (c c++) (c-make-keywords-re t (c-lang-const c-bitfield-kwds))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2242 (c-lang-defvar c-opt-bitfield-key (c-lang-const c-opt-bitfield-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2243 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2244 (c-lang-defconst c-other-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2245 "Keywords not accounted for by any other `*-kwds' language constant." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2246 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2247 idl '("truncatable" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2248 ;; In CORBA CIDL: (These are declaration keywords that never |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2249 ;; can start a declaration.) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2250 "entity" "process" "service" "session" "storage")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2251 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2252 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2253 ;;; Constants built from keywords. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2254 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2255 ;; Note: No `*-kwds' language constants may be defined below this point. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2256 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2257 (eval-and-compile |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2258 (defconst c-kwds-lang-consts |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2259 ;; List of all the language constants that contain keyword lists. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2260 (let (list) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2261 (mapatoms (lambda (sym) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2262 (when (and (boundp sym) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2263 (string-match "-kwds\\'" (symbol-name sym))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2264 ;; Make the list of globally interned symbols |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2265 ;; instead of ones interned in `c-lang-constants'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2266 (setq list (cons (intern (symbol-name sym)) list)))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2267 c-lang-constants) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2268 list))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2269 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2270 (c-lang-defconst c-keywords |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2271 ;; All keywords as a list. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2272 t (delete-duplicates |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2273 (c-lang-defconst-eval-immediately |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2274 `(append ,@(mapcar (lambda (kwds-lang-const) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2275 `(c-lang-const ,kwds-lang-const)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2276 c-kwds-lang-consts) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2277 nil)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2278 :test 'string-equal)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2279 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2280 (c-lang-defconst c-keywords-regexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2281 ;; All keywords as an adorned regexp. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2282 t (c-make-keywords-re t (c-lang-const c-keywords))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2283 (c-lang-defvar c-keywords-regexp (c-lang-const c-keywords-regexp)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2284 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2285 (c-lang-defconst c-keyword-member-alist |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2286 ;; An alist with all the keywords in the cars. The cdr for each |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2287 ;; keyword is a list of the symbols for the `*-kwds' lists that |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2288 ;; contains it. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2289 t (let ((kwd-list-alist |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2290 (c-lang-defconst-eval-immediately |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2291 `(list ,@(mapcar (lambda (kwds-lang-const) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2292 `(cons ',kwds-lang-const |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2293 (c-lang-const ,kwds-lang-const))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2294 c-kwds-lang-consts)))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2295 lang-const kwd-list kwd |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2296 result-alist elem) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2297 (while kwd-list-alist |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2298 (setq lang-const (caar kwd-list-alist) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2299 kwd-list (cdar kwd-list-alist) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2300 kwd-list-alist (cdr kwd-list-alist)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2301 (while kwd-list |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2302 (setq kwd (car kwd-list) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2303 kwd-list (cdr kwd-list)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2304 (unless (setq elem (assoc kwd result-alist)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2305 (setq result-alist (cons (setq elem (list kwd)) result-alist))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2306 (unless (memq lang-const (cdr elem)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2307 (setcdr elem (cons lang-const (cdr elem)))))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2308 result-alist)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2309 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2310 (c-lang-defvar c-keywords-obarray |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2311 ;; An obarray containing all keywords as symbols. The property list |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2312 ;; of each symbol has a non-nil entry for the specific `*-kwds' |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2313 ;; lists it's a member of. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2314 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2315 ;; E.g. to see whether the string str contains a keyword on |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2316 ;; `c-class-decl-kwds', one can do like this: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2317 ;; (get (intern-soft str c-keyword-obarray) 'c-class-decl-kwds) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2318 ;; Which preferably is written using the associated functions in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2319 ;; cc-engine: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2320 ;; (c-keyword-member (c-keyword-sym str) 'c-class-decl-kwds) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2321 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2322 ;; The obarray is not stored directly as a language constant since |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2323 ;; the printed representation for obarrays used in .elc files isn't |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2324 ;; complete. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2325 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2326 (let* ((alist (c-lang-const c-keyword-member-alist)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2327 kwd lang-const-list |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2328 (obarray (make-vector (* (length alist) 2) 0))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2329 (while alist |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2330 (setq kwd (caar alist) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2331 lang-const-list (cdar alist) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2332 alist (cdr alist)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2333 (setplist (intern kwd obarray) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2334 ;; Emacs has an odd bug that causes `mapcan' to fail |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2335 ;; with unintelligible errors. (XEmacs works.) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2336 ;;(mapcan (lambda (lang-const) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2337 ;; (list lang-const t)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2338 ;; lang-const-list) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2339 (apply 'nconc (mapcar (lambda (lang-const) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2340 (list lang-const t)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2341 lang-const-list)))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2342 obarray)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2343 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2344 (c-lang-defconst c-regular-keywords-regexp |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2345 ;; Adorned regexp matching all keywords that should be fontified |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2346 ;; with the keywords face. I.e. that aren't types or constants. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2347 t (c-make-keywords-re t |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2348 (set-difference (c-lang-const c-keywords) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2349 (append (c-lang-const c-primitive-type-kwds) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2350 (c-lang-const c-constant-kwds)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2351 :test 'string-equal))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2352 (c-lang-defvar c-regular-keywords-regexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2353 (c-lang-const c-regular-keywords-regexp)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2354 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2355 (c-lang-defconst c-primary-expr-regexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2356 ;; Regexp matching the start of any primary expression, i.e. any |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2357 ;; literal, symbol, prefix operator, and '('. It doesn't need to |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2358 ;; exclude keywords; they are excluded afterwards unless the second |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2359 ;; submatch matches. If the first but not the second submatch |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2360 ;; matches then it is an ambiguous primary expression; it could also |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2361 ;; be a match of e.g. an infix operator. (The case with ambiguous |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2362 ;; keyword operators isn't handled.) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2363 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2364 t (let* ((prefix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2365 (c-filter-ops (c-lang-const c-operators) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2366 '(prefix) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2367 (lambda (op) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2368 ;; Filter out the special case prefix |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2369 ;; operators that are close parens. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2370 (not (string-match "\\s)" op))))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2371 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2372 (nonkeyword-prefix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2373 (c-filter-ops prefix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2374 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2375 "\\`\\(\\s.\\|\\s(\\|\\s)\\)+\\'")) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2376 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2377 (in-or-postfix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2378 (c-filter-ops (c-lang-const c-operators) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2379 '(postfix |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2380 postfix-if-paren |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2381 left-assoc |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2382 right-assoc |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2383 right-assoc-sequence) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2384 t)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2385 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2386 (unambiguous-prefix-ops (set-difference nonkeyword-prefix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2387 in-or-postfix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2388 :test 'string-equal)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2389 (ambiguous-prefix-ops (intersection nonkeyword-prefix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2390 in-or-postfix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2391 :test 'string-equal))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2392 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2393 (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2394 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2395 ;; Take out all symbol class operators from `prefix-ops' and make the |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2396 ;; first submatch from them together with `c-primary-expr-kwds'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2397 (c-make-keywords-re t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2398 (append (c-lang-const c-primary-expr-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2399 (set-difference prefix-ops nonkeyword-prefix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2400 :test 'string-equal))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2401 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2402 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2403 ;; Match all ambiguous operators. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2404 (c-make-keywords-re nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2405 (intersection nonkeyword-prefix-ops in-or-postfix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2406 :test 'string-equal)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2407 "\\)" |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2408 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2409 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2410 ;; Now match all other symbols. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2411 (c-lang-const c-symbol-start) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2412 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2413 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2414 ;; The chars that can start integer and floating point |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2415 ;; constants. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2416 "\\.?[0-9]" |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2417 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2418 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2419 ;; The nonambiguous operators from `prefix-ops'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2420 (c-make-keywords-re nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2421 (set-difference nonkeyword-prefix-ops in-or-postfix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2422 :test 'string-equal)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2423 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2424 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2425 ;; Match string and character literals. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2426 "\\s\"" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2427 (if (memq 'gen-string-delim c-emacs-features) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2428 "\\|\\s|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2429 "")))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2430 (c-lang-defvar c-primary-expr-regexp (c-lang-const c-primary-expr-regexp)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2431 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2432 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2433 ;;; Additional constants for parser-level constructs. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2434 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2435 (c-lang-defconst c-decl-prefix-re |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2436 "Regexp matching something that might precede a declaration, cast or |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2437 label, such as the last token of a preceding statement or declaration. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2438 This is used in the common situation where a declaration or cast |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2439 doesn't start with any specific token that can be searched for. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2440 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2441 The regexp should not match bob; that is done implicitly. It can't |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2442 require a match longer than one token. The end of the token is taken |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2443 to be at the end of the first submatch, which is assumed to always |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2444 match. It's undefined whether identifier syntax (see |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2445 `c-identifier-syntax-table') is in effect or not. This regexp is |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2446 assumed to be a superset of `c-label-prefix-re' if |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2447 `c-recognize-colon-labels' is set. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2448 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2449 Besides this, `c-decl-start-kwds' is used to find declarations. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2450 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2451 Note: This variable together with `c-decl-start-re' and |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2452 `c-decl-start-kwds' is only used to detect \"likely\" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2453 declaration/cast/label starts. I.e. they might produce more matches |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2454 but should not miss anything (or else it's necessary to use text |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2455 properties - see the next note). Wherever they match, the following |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2456 construct is analyzed to see if it indeed is a declaration, cast or |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2457 label. That analysis is not cheap, so it's important that not too |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2458 many false matches are triggered. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2459 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2460 Note: If a declaration/cast/label start can't be detected with this |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2461 variable, it's necessary to use the `c-type' text property with the |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2462 value `c-decl-end' on the last char of the last token preceding the |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2463 declaration. See the comment blurb at the start of cc-engine.el for |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2464 more info." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2465 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2466 ;; We match a sequence of characters to skip over things like \"};\" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2467 ;; more quickly. We match ")" in C for K&R region declarations, and |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2468 ;; in all languages except Java for when a cpp macro definition |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2469 ;; begins with a declaration. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2470 t "\\([\{\}\(\);,]+\\)" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2471 java "\\([\{\}\(;,]+\\)" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2472 ;; Match "<" in C++ to get the first argument in a template arglist. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2473 ;; In that case there's an additional check in `c-find-decl-spots' |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2474 ;; that it got open paren syntax. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2475 c++ "\\([\{\}\(\);,<]+\\)" |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2476 ;; Additionally match the protection directives in Objective-C. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2477 ;; Note that this doesn't cope with the longer directives, which we |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2478 ;; would have to match from start to end since they don't end with |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2479 ;; any easily recognized characters. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2480 objc (concat "\\([\{\}\(\);,]+\\|" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2481 (c-make-keywords-re nil (c-lang-const c-protection-kwds)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2482 "\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2483 ;; Pike is like C but we also match "[" for multiple value |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2484 ;; assignments and type casts. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2485 pike "\\([\{\}\(\)\[;,]+\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2486 (c-lang-defvar c-decl-prefix-re (c-lang-const c-decl-prefix-re) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2487 'dont-doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2488 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2489 (c-lang-defconst c-decl-start-re |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2490 "Regexp matching the start of any declaration, cast or label. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2491 It's used on the token after the one `c-decl-prefix-re' matched. This |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2492 regexp should not try to match those constructs accurately as it's |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2493 only used as a sieve to avoid spending more time checking other |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2494 constructs." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2495 t (c-lang-const c-identifier-start)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2496 (c-lang-defvar c-decl-start-re (c-lang-const c-decl-start-re)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2497 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2498 (c-lang-defconst c-decl-prefix-or-start-re |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2499 ;; Regexp matching something that might precede or start a |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2500 ;; declaration, cast or label. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2501 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2502 ;; If the first submatch matches, it's taken to match the end of a |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2503 ;; token that might precede such a construct, e.g. ';', '}' or '{'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2504 ;; It's built from `c-decl-prefix-re'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2505 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2506 ;; If the first submatch did not match, the match of the whole |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2507 ;; regexp is taken to be at the first token in the declaration. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2508 ;; `c-decl-start-re' is not checked in this case. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2509 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2510 ;; Design note: The reason the same regexp is used to match both |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2511 ;; tokens that precede declarations and start them is to avoid an |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2512 ;; extra regexp search from the previous declaration spot in |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2513 ;; `c-find-decl-spots'. Users of `c-find-decl-spots' also count on |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2514 ;; that it finds all declaration/cast/label starts in approximately |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2515 ;; linear order, so we can't do the searches in two separate passes. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2516 t (if (c-lang-const c-decl-start-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2517 (concat (c-lang-const c-decl-prefix-re) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2518 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2519 (c-make-keywords-re t (c-lang-const c-decl-start-kwds))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2520 (c-lang-const c-decl-prefix-re))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2521 (c-lang-defvar c-decl-prefix-or-start-re |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2522 (c-lang-const c-decl-prefix-or-start-re) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2523 'dont-doc) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2524 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2525 (c-lang-defconst c-cast-parens |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2526 ;; List containing the paren characters that can open a cast, or nil in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2527 ;; languages without casts. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2528 t (c-filter-ops (c-lang-const c-operators) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2529 '(prefix) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2530 "\\`\\s\(\\'" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2531 (lambda (op) (elt op 0)))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2532 (c-lang-defvar c-cast-parens (c-lang-const c-cast-parens)) |
36920 | 2533 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2534 (c-lang-defconst c-block-prefix-disallowed-chars |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2535 "List of syntactically relevant characters that never can occur before |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2536 the open brace in any construct that contains a brace block, e.g. in |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2537 the \"class Foo: public Bar\" part of: |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2538 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2539 class Foo: public Bar {int x();} a, *b; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2540 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2541 If parens can occur, the chars inside those aren't filtered with this |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2542 list. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2543 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2544 '<' and '>' should be disallowed even if angle bracket arglists can |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2545 occur. That since the search function needs to stop at them anyway to |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2546 ensure they are given paren syntax. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2547 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2548 This is used to skip backward from the open brace to find the region |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2549 in which to look for a construct like \"class\", \"enum\", |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2550 \"namespace\" or whatever. That skipping should be as tight as |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2551 possible for good performance." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2552 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2553 ;; Default to all chars that only occurs in nonsymbol tokens outside |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2554 ;; identifiers. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2555 t (set-difference |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2556 (c-lang-const c-nonsymbol-token-char-list) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2557 (c-filter-ops (append (c-lang-const c-identifier-ops) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2558 (list (cons nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2559 (c-lang-const c-after-id-concat-ops)))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2560 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2561 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2562 (lambda (op) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2563 (let ((pos 0) res) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2564 (while (string-match "\\(\\s.\\|\\s(\\|\\s)\\)" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2565 op pos) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2566 (setq res (cons (aref op (match-beginning 1)) res) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2567 pos (match-end 0))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2568 res)))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2569 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2570 ;; Allow cpp operatios (where applicable). |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2571 t (if (c-lang-const c-opt-cpp-prefix) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2572 (set-difference (c-lang-const c-block-prefix-disallowed-chars) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2573 '(?#)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2574 (c-lang-const c-block-prefix-disallowed-chars)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2575 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2576 ;; Allow ':' for inherit list starters. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2577 (c++ objc idl) (set-difference (c-lang-const c-block-prefix-disallowed-chars) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2578 '(?:)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2579 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2580 ;; Allow ',' for multiple inherits. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2581 (c++ java) (set-difference (c-lang-const c-block-prefix-disallowed-chars) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2582 '(?,)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2583 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2584 ;; Allow parentheses for anonymous inner classes in Java and class |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2585 ;; initializer lists in Pike. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2586 (java pike) (set-difference (c-lang-const c-block-prefix-disallowed-chars) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2587 '(?\( ?\))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2588 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2589 ;; Allow '"' for extern clauses (e.g. extern "C" {...}). |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2590 (c c++ objc) (set-difference (c-lang-const c-block-prefix-disallowed-chars) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2591 '(?\" ?'))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2592 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2593 (c-lang-defconst c-block-prefix-charset |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2594 ;; `c-block-prefix-disallowed-chars' as an inverted charset suitable |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2595 ;; for `c-syntactic-skip-backward'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2596 t (c-make-bare-char-alt (c-lang-const c-block-prefix-disallowed-chars) t)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2597 (c-lang-defvar c-block-prefix-charset (c-lang-const c-block-prefix-charset)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2598 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2599 (c-lang-defconst c-type-decl-prefix-key |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2600 "Regexp matching the declarator operators that might precede the |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2601 identifier in a declaration, e.g. the \"*\" in \"char *argv\". This |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2602 regexp should match \"(\" if parentheses are valid in declarators. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2603 The end of the first submatch is taken as the end of the operator. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2604 Identifier syntax is in effect when this is matched \(see |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2605 `c-identifier-syntax-table')." |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2606 t (if (c-lang-const c-type-modifier-kwds) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2607 (concat (regexp-opt (c-lang-const c-type-modifier-kwds) t) "\\>") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2608 ;; Default to a regexp that never matches. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2609 "\\<\\>") |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2610 ;; Check that there's no "=" afterwards to avoid matching tokens |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2611 ;; like "*=". |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2612 (c objc) (concat "\\(" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2613 "[*\(]" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2614 "\\|" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2615 (c-lang-const c-type-decl-prefix-key) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2616 "\\)" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2617 "\\([^=]\\|$\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2618 c++ (concat "\\(" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2619 "[*\(&]" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2620 "\\|" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2621 (concat "\\(" ; 2 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2622 ;; If this matches there's special treatment in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2623 ;; `c-font-lock-declarators' and |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2624 ;; `c-font-lock-declarations' that check for a |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2625 ;; complete name followed by ":: *". |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2626 (c-lang-const c-identifier-start) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2627 "\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2628 "\\|" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2629 (c-lang-const c-type-decl-prefix-key) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2630 "\\)" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2631 "\\([^=]\\|$\\)") |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2632 pike "\\(\\*\\)\\([^=]\\|$\\)") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2633 (c-lang-defvar c-type-decl-prefix-key (c-lang-const c-type-decl-prefix-key) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2634 'dont-doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2635 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2636 (c-lang-defconst c-type-decl-suffix-key |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2637 "Regexp matching the declarator operators that might follow after the |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2638 identifier in a declaration, e.g. the \"[\" in \"char argv[]\". This |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2639 regexp should match \")\" if parentheses are valid in declarators. If |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2640 it matches an open paren of some kind, the type declaration check |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2641 continues at the corresponding close paren, otherwise the end of the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2642 first submatch is taken as the end of the operator. Identifier syntax |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2643 is in effect when this is matched (see `c-identifier-syntax-table')." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2644 ;; Default to a regexp that matches `c-type-modifier-kwds' and a |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2645 ;; function argument list parenthesis. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2646 t (if (c-lang-const c-type-modifier-kwds) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2647 (concat "\\(\(\\|" |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2648 (regexp-opt (c-lang-const c-type-modifier-kwds) t) "\\>" |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2649 "\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2650 "\\(\(\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2651 (c c++ objc) (concat |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2652 "\\(" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2653 "[\)\[\(]" |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2654 (if (c-lang-const c-type-modifier-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2655 (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2656 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2657 ;; "throw" in `c-type-modifier-kwds' is followed |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2658 ;; by a parenthesis list, but no extra measures |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2659 ;; are necessary to handle that. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2660 (regexp-opt (c-lang-const c-type-modifier-kwds) t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2661 "\\>") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2662 "") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2663 "\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2664 (java idl) "\\([\[\(]\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2665 (c-lang-defvar c-type-decl-suffix-key (c-lang-const c-type-decl-suffix-key) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2666 'dont-doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2667 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2668 (c-lang-defconst c-after-suffixed-type-decl-key |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2669 "This regexp is matched after a declarator expression where |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2670 `c-type-decl-suffix-key' has matched. If it matches then the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2671 construct is taken as a declaration. It's typically used to match the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2672 beginning of a function body or whatever might occur after the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2673 function header in a function declaration or definition. It's |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2674 undefined whether identifier syntax (see `c-identifier-syntax-table') |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2675 is in effect or not. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2676 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2677 Note that it's used in cases like after \"foo (bar)\" so it should |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2678 only match when it's certain that it's a declaration, e.g \"{\" but |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2679 not \",\" or \";\"." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2680 t "{" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2681 ;; If K&R style declarations should be recognized then one could |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2682 ;; consider to match the start of any symbol since we want to match |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2683 ;; the start of the first declaration in the "K&R region". That |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2684 ;; could however produce false matches on code like "FOO(bar) x" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2685 ;; where FOO is a cpp macro, so it's better to leave it out and rely |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2686 ;; on the other heuristics in that case. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2687 t (if (c-lang-const c-postfix-spec-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2688 ;; Add on the keywords in `c-postfix-spec-kwds'. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2689 (concat (c-lang-const c-after-suffixed-type-decl-key) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2690 "\\|" |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2691 (c-make-keywords-re t (c-lang-const c-postfix-spec-kwds))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2692 (c-lang-const c-after-suffixed-type-decl-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2693 ;; Also match the colon that starts a base class initializer list in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2694 ;; C++. That can be confused with a function call before the colon |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2695 ;; in a ? : operator, but we count on that `c-decl-prefix-re' won't |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2696 ;; match before such a thing (as a declaration-level construct; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2697 ;; matches inside arglist contexts are already excluded). |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2698 c++ "[{:]") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2699 (c-lang-defvar c-after-suffixed-type-decl-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2700 (c-lang-const c-after-suffixed-type-decl-key) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2701 'dont-doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2702 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2703 (c-lang-defconst c-after-suffixed-type-maybe-decl-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2704 ;; Regexp that in addition to `c-after-suffixed-type-decl-key' |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2705 ;; matches ";" and ",". |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2706 t (concat "\\(" (c-lang-const c-after-suffixed-type-decl-key) "\\)" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2707 "\\|[;,]")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2708 (c-lang-defvar c-after-suffixed-type-maybe-decl-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2709 (c-lang-const c-after-suffixed-type-maybe-decl-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2710 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2711 (c-lang-defconst c-opt-type-concat-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2712 "Regexp matching operators that concatenate types, e.g. the \"|\" in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2713 \"int|string\" in Pike. The end of the first submatch is taken as the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2714 end of the operator. nil in languages without such operators. It's |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2715 undefined whether identifier syntax (see `c-identifier-syntax-table') |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2716 is in effect or not." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2717 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2718 pike "\\([|.&]\\)\\($\\|[^|.&]\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2719 (c-lang-defvar c-opt-type-concat-key (c-lang-const c-opt-type-concat-key) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2720 'dont-doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2721 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2722 (c-lang-defconst c-opt-type-suffix-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2723 "Regexp matching operators that might follow after a type, or nil in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2724 languages that don't have such operators. The end of the first |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2725 submatch is taken as the end of the operator. This should not match |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2726 things like C++ template arglists if `c-recognize-<>-arglists' is set. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2727 It's undefined whether identifier syntax (see `c-identifier-syntax-table') |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2728 is in effect or not." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2729 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2730 (c c++ objc pike) "\\(\\.\\.\\.\\)" |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2731 java (concat "\\(\\[" (c-lang-const c-simple-ws) "*\\]\\)")) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2732 (c-lang-defvar c-opt-type-suffix-key (c-lang-const c-opt-type-suffix-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2733 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2734 (c-lang-defvar c-known-type-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2735 ;; Regexp matching the known type identifiers. This is initialized |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2736 ;; from the type keywords and `*-font-lock-extra-types'. The first |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2737 ;; submatch is the one that matches the type. Note that this regexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2738 ;; assumes that symbol constituents like '_' and '$' have word |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2739 ;; syntax. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2740 (let* ((extra-types |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2741 (when (boundp (c-mode-symbol "font-lock-extra-types")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2742 (c-mode-var "font-lock-extra-types"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2743 (regexp-strings |
67278
cf00aa89f148
Relace a `mapcan' with an "apply (n-conc (mapcar ....... ))".
Alan Mackenzie <acm@muc.de>
parents:
67252
diff
changeset
|
2744 (apply 'nconc |
cf00aa89f148
Relace a `mapcan' with an "apply (n-conc (mapcar ....... ))".
Alan Mackenzie <acm@muc.de>
parents:
67252
diff
changeset
|
2745 (mapcar (lambda (re) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2746 (when (string-match "[][.*+?^$\\]" re) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2747 (list re))) |
67278
cf00aa89f148
Relace a `mapcan' with an "apply (n-conc (mapcar ....... ))".
Alan Mackenzie <acm@muc.de>
parents:
67252
diff
changeset
|
2748 extra-types))) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2749 (plain-strings |
67278
cf00aa89f148
Relace a `mapcan' with an "apply (n-conc (mapcar ....... ))".
Alan Mackenzie <acm@muc.de>
parents:
67252
diff
changeset
|
2750 (apply 'nconc |
cf00aa89f148
Relace a `mapcan' with an "apply (n-conc (mapcar ....... ))".
Alan Mackenzie <acm@muc.de>
parents:
67252
diff
changeset
|
2751 (mapcar (lambda (re) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2752 (unless (string-match "[][.*+?^$\\]" re) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2753 (list re))) |
67278
cf00aa89f148
Relace a `mapcan' with an "apply (n-conc (mapcar ....... ))".
Alan Mackenzie <acm@muc.de>
parents:
67252
diff
changeset
|
2754 extra-types)))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2755 (concat "\\<\\(" |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2756 (c-concat-separated |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2757 (append (list (c-make-keywords-re nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2758 (append (c-lang-const c-primitive-type-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2759 plain-strings))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2760 regexp-strings) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2761 "\\|") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2762 "\\)\\>"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2763 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2764 (c-lang-defconst c-special-brace-lists |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2765 "List of open- and close-chars that makes up a pike-style brace list, |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2766 i.e. for a ([ ]) list there should be a cons (?\\[ . ?\\]) in this |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2767 list." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2768 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2769 pike '((?{ . ?}) (?\[ . ?\]) (?< . ?>))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2770 (c-lang-defvar c-special-brace-lists (c-lang-const c-special-brace-lists)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2771 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2772 (c-lang-defconst c-recognize-knr-p |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2773 "Non-nil means K&R style argument declarations are valid." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2774 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2775 c t) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2776 (c-lang-defvar c-recognize-knr-p (c-lang-const c-recognize-knr-p)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2777 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2778 (c-lang-defconst c-recognize-typeless-decls |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2779 "Non-nil means function declarations without return type should be |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2780 recognized. That can introduce an ambiguity with parenthesized macro |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2781 calls before a brace block. This setting does not affect declarations |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2782 that are preceded by a declaration starting keyword, so |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2783 e.g. `c-typeless-decl-kwds' may still be used when it's set to nil." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2784 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2785 (c c++ objc) t) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2786 (c-lang-defvar c-recognize-typeless-decls |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2787 (c-lang-const c-recognize-typeless-decls)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2788 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2789 (c-lang-defconst c-recognize-<>-arglists |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2790 "Non-nil means C++ style template arglists should be handled. More |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2791 specifically, this means a comma separated list of types or |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2792 expressions surrounded by \"<\" and \">\". It's always preceded by an |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2793 identifier or one of the keywords on `c-<>-type-kwds' or |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2794 `c-<>-arglist-kwds'. If there's an identifier before then the whole |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2795 expression is considered to be a type." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2796 t (or (consp (c-lang-const c-<>-type-kwds)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2797 (consp (c-lang-const c-<>-arglist-kwds)))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2798 (c-lang-defvar c-recognize-<>-arglists (c-lang-const c-recognize-<>-arglists)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2799 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2800 (c-lang-defconst c-recognize-paren-inits |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2801 "Non-nil means that parenthesis style initializers exist, |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2802 i.e. constructs like |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2803 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2804 Foo bar (gnu); |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2805 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2806 in addition to the more classic |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2807 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2808 Foo bar = gnu;" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2809 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2810 c++ t) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2811 (c-lang-defvar c-recognize-paren-inits (c-lang-const c-recognize-paren-inits)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2812 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2813 (c-lang-defconst c-recognize-paren-inexpr-blocks |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2814 "Non-nil to recognize gcc style in-expression blocks, |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2815 i.e. compound statements surrounded by parentheses inside expressions." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2816 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2817 (c c++) t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2818 (c-lang-defvar c-recognize-paren-inexpr-blocks |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2819 (c-lang-const c-recognize-paren-inexpr-blocks)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2820 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2821 (c-lang-defconst c-opt-<>-arglist-start |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2822 ;; Regexp matching the start of angle bracket arglists in languages |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2823 ;; where `c-recognize-<>-arglists' is set. Does not exclude |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2824 ;; keywords outside `c-<>-arglist-kwds'. The first submatch is |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2825 ;; assumed to surround the preceding symbol. The whole match is |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2826 ;; assumed to end directly after the opening "<". |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2827 t (if (c-lang-const c-recognize-<>-arglists) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2828 (concat "\\(" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2829 (c-lang-const c-symbol-key) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2830 "\\)" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2831 (c-lang-const c-syntactic-ws) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2832 "<"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2833 (c-lang-defvar c-opt-<>-arglist-start (c-lang-const c-opt-<>-arglist-start)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2834 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2835 (c-lang-defconst c-opt-<>-arglist-start-in-paren |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2836 ;; Regexp that in addition to `c-opt-<>-arglist-start' matches close |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2837 ;; parens. The first submatch is assumed to surround |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2838 ;; `c-opt-<>-arglist-start'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2839 t (if (c-lang-const c-opt-<>-arglist-start) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2840 (concat "\\(" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2841 (c-lang-const c-opt-<>-arglist-start) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2842 "\\)\\|\\s\)"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2843 (c-lang-defvar c-opt-<>-arglist-start-in-paren |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2844 (c-lang-const c-opt-<>-arglist-start-in-paren)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2845 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2846 (c-lang-defconst c-opt-postfix-decl-spec-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2847 ;; Regexp matching the beginning of a declaration specifier in the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2848 ;; region between the header and the body of a declaration. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2849 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2850 ;; TODO: This is currently not used uniformly; c++-mode and |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2851 ;; java-mode each have their own ways of using it. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2852 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2853 c++ (concat ":?" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2854 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2855 "\\(virtual" (c-lang-const c-simple-ws) "+\\)?\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2856 (c-make-keywords-re nil (c-lang-const c-protection-kwds)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2857 "\\)" (c-lang-const c-simple-ws) "+" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2858 "\\(" (c-lang-const c-symbol-key) "\\)") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2859 java (c-make-keywords-re t (c-lang-const c-postfix-spec-kwds))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2860 (c-lang-defvar c-opt-postfix-decl-spec-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2861 (c-lang-const c-opt-postfix-decl-spec-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2862 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2863 (c-lang-defconst c-recognize-colon-labels |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2864 "Non-nil if generic labels ending with \":\" should be recognized. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2865 That includes labels in code and access keys in classes. This does |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2866 not apply to labels recognized by `c-label-kwds' and |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2867 `c-opt-extra-label-key'." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2868 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2869 (c c++ objc java pike) t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2870 (c-lang-defvar c-recognize-colon-labels |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2871 (c-lang-const c-recognize-colon-labels)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2872 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2873 (c-lang-defconst c-label-prefix-re |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2874 "Regexp like `c-decl-prefix-re' that matches any token that can precede |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2875 a generic colon label. Not used if `c-recognize-colon-labels' is |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2876 nil." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2877 t "\\([{};]+\\)") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2878 (c-lang-defvar c-label-prefix-re |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2879 (c-lang-const c-label-prefix-re)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2880 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2881 (c-lang-defconst c-nonlabel-token-key |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2882 "Regexp matching things that can't occur in generic colon labels, |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2883 neither in a statement nor in a declaration context. The regexp is |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2884 tested at the beginning of every sexp in a suspected label, |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2885 i.e. before \":\". Only used if `c-recognize-colon-labels' is set." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2886 t (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2887 ;; Don't allow string literals. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2888 "[\"']\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2889 ;; All keywords except `c-label-kwds' and `c-protection-kwds'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2890 (c-make-keywords-re t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2891 (set-difference (c-lang-const c-keywords) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2892 (append (c-lang-const c-label-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2893 (c-lang-const c-protection-kwds)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2894 :test 'string-equal))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2895 ;; Also check for open parens in C++, to catch member init lists in |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2896 ;; constructors. We normally allow it so that macros with arguments |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2897 ;; work in labels. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2898 c++ (concat "\\s\(\\|" (c-lang-const c-nonlabel-token-key))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2899 (c-lang-defvar c-nonlabel-token-key (c-lang-const c-nonlabel-token-key)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2900 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2901 (c-lang-defconst c-opt-extra-label-key |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2902 "Optional regexp matching labels. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2903 Normally, labels are detected according to `c-nonlabel-token-key', |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2904 `c-decl-prefix-re' and `c-nonlabel-decl-prefix-re'. This regexp can |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2905 be used if there are additional labels that aren't recognized that |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2906 way." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2907 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2908 objc (c-make-keywords-re t (c-lang-const c-protection-kwds))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2909 (c-lang-defvar c-opt-extra-label-key (c-lang-const c-opt-extra-label-key)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2910 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2911 (c-lang-defconst c-opt-friend-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2912 ;; Regexp describing friend declarations classes, or nil in |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2913 ;; languages that don't have such things. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2914 ;; |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2915 ;; TODO: Ought to use `c-prefix-spec-kwds-re' or similar, and the |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2916 ;; template skipping isn't done properly. This will disappear soon. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2917 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2918 c++ (concat "friend" (c-lang-const c-simple-ws) "+" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2919 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2920 (concat "template" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2921 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2922 "<.+>" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2923 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2924 "friend" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2925 (c-lang-const c-simple-ws) "+"))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2926 (c-lang-defvar c-opt-friend-key (c-lang-const c-opt-friend-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2927 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2928 (c-lang-defconst c-opt-method-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2929 ;; Special regexp to match the start of Objective-C methods. The |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2930 ;; first submatch is assumed to end after the + or - key. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2931 t nil |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2932 objc (concat |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2933 ;; TODO: Ought to use a better method than anchoring on bol. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2934 "^\\s *" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2935 "\\([+-]\\)" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2936 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2937 (concat "\\(" ; Return type. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2938 "([^\)]*)" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2939 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2940 "\\)?") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2941 "\\(" (c-lang-const c-symbol-key) "\\)")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2942 (c-lang-defvar c-opt-method-key (c-lang-const c-opt-method-key)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2943 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2944 (c-lang-defconst c-type-decl-end-used |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2945 ;; Must be set in buffers where the `c-type' text property might be |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2946 ;; used with the value `c-decl-end'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2947 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2948 ;; `c-decl-end' is used to mark the ends of labels and access keys |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2949 ;; to make interactive refontification work better. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2950 t (or (c-lang-const c-recognize-colon-labels) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2951 (and (c-lang-const c-label-kwds) t)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2952 ;; `c-decl-end' is used to mark the end of the @-style directives in |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2953 ;; Objective-C. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2954 objc t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2955 (c-lang-defvar c-type-decl-end-used (c-lang-const c-type-decl-end-used)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2956 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2957 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2958 ;;; Wrap up the `c-lang-defvar' system. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2959 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2960 ;; Compile in the list of language variables that has been collected |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
2961 ;; with the `c-lang-defvar' and `c-lang-setvar' macros. Note that the |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
2962 ;; first element of each is nil. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2963 (defconst c-lang-variable-inits (cc-eval-when-compile c-lang-variable-inits)) |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
2964 (defconst c-emacs-variable-inits (cc-eval-when-compile c-emacs-variable-inits)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2965 |
78354
d80d780fd6b4
Fix problem with modes derived from CC Mode: Move macro
Alan Mackenzie <acm@muc.de>
parents:
78234
diff
changeset
|
2966 ;; Make the `c-lang-setvar' variables buffer local in the current buffer. |
d80d780fd6b4
Fix problem with modes derived from CC Mode: Move macro
Alan Mackenzie <acm@muc.de>
parents:
78234
diff
changeset
|
2967 ;; These are typically standard emacs variables such as `comment-start'. |
d80d780fd6b4
Fix problem with modes derived from CC Mode: Move macro
Alan Mackenzie <acm@muc.de>
parents:
78234
diff
changeset
|
2968 (defmacro c-make-emacs-variables-local () |
d80d780fd6b4
Fix problem with modes derived from CC Mode: Move macro
Alan Mackenzie <acm@muc.de>
parents:
78234
diff
changeset
|
2969 `(progn |
d80d780fd6b4
Fix problem with modes derived from CC Mode: Move macro
Alan Mackenzie <acm@muc.de>
parents:
78234
diff
changeset
|
2970 ,@(mapcar (lambda (init) |
d80d780fd6b4
Fix problem with modes derived from CC Mode: Move macro
Alan Mackenzie <acm@muc.de>
parents:
78234
diff
changeset
|
2971 `(make-local-variable ',(car init))) |
d80d780fd6b4
Fix problem with modes derived from CC Mode: Move macro
Alan Mackenzie <acm@muc.de>
parents:
78234
diff
changeset
|
2972 (cdr c-emacs-variable-inits)))) |
d80d780fd6b4
Fix problem with modes derived from CC Mode: Move macro
Alan Mackenzie <acm@muc.de>
parents:
78234
diff
changeset
|
2973 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2974 (defun c-make-init-lang-vars-fun (mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2975 "Create a function that initializes all the language dependent variables |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2976 for the given mode. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2977 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2978 This function should be evaluated at compile time, so that the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2979 function it returns is byte compiled with all the evaluated results |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2980 from the language constants. Use the `c-init-language-vars' macro to |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2981 accomplish that conveniently." |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2982 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2983 (if (and (not load-in-progress) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2984 (boundp 'byte-compile-dest-file) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2985 (stringp byte-compile-dest-file)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2986 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2987 ;; No need to byte compile this lambda since the byte compiler is |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2988 ;; smart enough to detect the `funcall' construct in the |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2989 ;; `c-init-language-vars' macro below and compile it all straight |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2990 ;; into the function that contains `c-init-language-vars'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2991 `(lambda () |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2992 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2993 ;; This let sets up the context for `c-mode-var' and similar |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2994 ;; that could be in the result from `cl-macroexpand-all'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2995 (let ((c-buffer-is-cc-mode ',mode) |
69140
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
2996 current-var source-eval) |
78354
d80d780fd6b4
Fix problem with modes derived from CC Mode: Move macro
Alan Mackenzie <acm@muc.de>
parents:
78234
diff
changeset
|
2997 (c-make-emacs-variables-local) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2998 (condition-case err |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2999 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3000 (if (eq c-version-sym ',c-version-sym) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3001 (setq ,@(let ((c-buffer-is-cc-mode mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3002 (c-lang-const-expansion 'immediate)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3003 ;; `c-lang-const' will expand to the evaluated |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3004 ;; constant immediately in `cl-macroexpand-all' |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3005 ;; below. |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3006 (mapcan |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3007 (lambda (init) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3008 `(current-var ',(car init) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3009 ,(car init) ,(cl-macroexpand-all |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3010 (elt init 1)))) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3011 ;; Note: The following `append' copies the |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3012 ;; first argument. That list is small, so |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3013 ;; this doesn't matter too much. |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3014 (append (cdr c-emacs-variable-inits) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3015 (cdr c-lang-variable-inits))))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3016 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
3017 ;; This diagnostic message isn't useful for end |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
3018 ;; users, so it's disabled. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
3019 ;;(unless (get ',mode 'c-has-warned-lang-consts) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
3020 ;; (message ,(concat "%s compiled with CC Mode %s " |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
3021 ;; "but loaded with %s - evaluating " |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
3022 ;; "language constants from source") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
3023 ;; ',mode ,c-version c-version) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
3024 ;; (put ',mode 'c-has-warned-lang-consts t)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3025 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3026 (require 'cc-langs) |
69140
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
3027 (setq source-eval t) |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3028 (let ((init (append (cdr c-emacs-variable-inits) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3029 (cdr c-lang-variable-inits)))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3030 (while init |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3031 (setq current-var (caar init)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3032 (set (caar init) (eval (cadar init))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3033 (setq init (cdr init))))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3034 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3035 (error |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3036 (if current-var |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3037 (message "Eval error in the `c-lang-defvar' or `c-lang-setvar' for `%s'%s: %S" |
69140
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
3038 current-var |
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
3039 (if source-eval |
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
3040 (format "\ |
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
3041 (fallback source eval - %s compiled with CC Mode %s but loaded with %s)" |
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
3042 ',mode ,c-version c-version) |
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
3043 "") |
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
3044 err) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3045 (signal (car err) (cdr err))))))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3046 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3047 ;; Being evaluated from source. Always use the dynamic method to |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3048 ;; work well when `c-lang-defvar's in this file are reevaluated |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3049 ;; interactively. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3050 `(lambda () |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3051 (require 'cc-langs) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3052 (let ((c-buffer-is-cc-mode ',mode) |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3053 (init (append (cdr c-emacs-variable-inits) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3054 (cdr c-lang-variable-inits))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3055 current-var) |
78354
d80d780fd6b4
Fix problem with modes derived from CC Mode: Move macro
Alan Mackenzie <acm@muc.de>
parents:
78234
diff
changeset
|
3056 (c-make-emacs-variables-local) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3057 (condition-case err |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3058 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3059 (while init |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3060 (setq current-var (caar init)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3061 (set (caar init) (eval (cadar init))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3062 (setq init (cdr init))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3063 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3064 (error |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3065 (if current-var |
69140
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
3066 (message |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
3067 "Eval error in the `c-lang-defvar' or `c-lang-setver' for `%s' (source eval): %S" |
69140
3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
Alan Mackenzie <acm@muc.de>
parents:
68773
diff
changeset
|
3068 current-var err) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3069 (signal (car err) (cdr err))))))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3070 )) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3071 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3072 (defmacro c-init-language-vars (mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3073 "Initialize all the language dependent variables for the given mode. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3074 This macro is expanded at compile time to a form tailored for the mode |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3075 in question, so MODE must be a constant. Therefore MODE is not |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
3076 evaluated and should not be quoted." |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3077 `(funcall ,(c-make-init-lang-vars-fun mode))) |
36920 | 3078 |
19250 | 3079 |
36920 | 3080 (cc-provide 'cc-langs) |
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36920
diff
changeset
|
3081 |
93975
1e3a407766b9
Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93803
diff
changeset
|
3082 ;; arch-tag: 1ab57482-cfc2-4c5b-b628-3539c3098822 |
18720 | 3083 ;;; cc-langs.el ends here |