Mercurial > emacs
annotate lisp/progmodes/cc-langs.el @ 91073:4bc33ffdda1a
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 902-908)
- Update from CVS
- Merge from emacs--rel--22
* emacs--rel--22 (patch 131-137)
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 261-262)
- Update from CVS
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-278
author | Miles Bader <miles@gnu.org> |
---|---|
date | Sat, 27 Oct 2007 09:12:07 +0000 |
parents | bdb3fe0ba9fa |
children | 606f2d163a64 |
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, |
75347 | 4 ;; 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 |
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 |
18720 | 10 ;; 1987 Dave Detlefs and Stewart Clamen |
11 ;; 1985 Richard M. Stallman | |
24282 | 12 ;; Maintainer: bug-cc-mode@gnu.org |
18720 | 13 ;; Created: 22-Apr-1997 (split from cc-mode.el) |
20141 | 14 ;; Version: See cc-mode.el |
18720 | 15 ;; Keywords: c languages oop |
16 | |
17 ;; This file is part of GNU Emacs. | |
18 | |
19 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
20 ;; it under the terms of the GNU General Public License as published by | |
78234
c1ec1c8a8d2e
Switch license to GPLv3 or later.
Glenn Morris <rgm@gnu.org>
parents:
77081
diff
changeset
|
21 ;; the Free Software Foundation; either version 3, or (at your option) |
18720 | 22 ;; any later version. |
23 | |
24 ;; GNU Emacs is distributed in the hope that it will be useful, | |
25 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
26 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
27 ;; GNU General Public License for more details. | |
28 | |
29 ;; You should have received a copy of the GNU General Public License | |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
30 ;; along with this program; see the file COPYING. If not, write to |
64085 | 31 ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
32 ;; Boston, MA 02110-1301, USA. | |
18720 | 33 |
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36920
diff
changeset
|
34 ;;; Commentary: |
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36920
diff
changeset
|
35 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
36 ;; 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
|
37 ;; 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
|
38 ;; 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
|
39 ;; this: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
40 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
41 ;; 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
|
42 ;; 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
|
43 ;; cc-mode.el) is byte compiled. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
44 ;; 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
|
45 ;; `*-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
|
46 ;; 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
|
47 ;; 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
|
48 ;; 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
|
49 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
50 ;;; 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
|
51 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
52 ;; 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
|
53 ;; 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
|
54 ;; 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
|
55 ;; 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
|
56 ;; code can be shared. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
57 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
58 ;; 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
|
59 ;; 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
|
60 ;; 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
|
61 ;; 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
|
62 ;; the code at runtime. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
63 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
64 ;; 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
|
65 ;; 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
|
66 ;; 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
|
67 ;; 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
|
68 ;; 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
|
69 ;; 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
|
70 ;; 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
|
71 ;; 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
|
72 ;; 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
|
73 ;; 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
|
74 ;; 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
|
75 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
76 ;; 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
|
77 ;; 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
|
78 ;; 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
|
79 ;; 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
|
80 ;; 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
|
81 ;; 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
|
82 ;; 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
|
83 ;; 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
|
84 ;; 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
|
85 ;; 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
|
86 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
87 ;; 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
|
88 ;; 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
|
89 ;; 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
|
90 ;; 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
|
91 ;; 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
|
92 ;; 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
|
93 ;; 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
|
94 ;; 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
|
95 ;; 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
|
96 ;; 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
|
97 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
98 ;; 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
|
99 ;; <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
|
100 ;; 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
|
101 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
102 ;;; Using language variables: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
103 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
104 ;; 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
|
105 ;; 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
|
106 ;; `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
|
107 ;; 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
|
108 ;; 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
|
109 ;; 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
|
110 ;; 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
|
111 ;; `c-init-language-vars' macro. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
112 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
113 ;; 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
|
114 ;; 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
|
115 ;; language constants are requested. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
116 |
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36920
diff
changeset
|
117 ;;; Code: |
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36920
diff
changeset
|
118 |
26817 | 119 (eval-when-compile |
120 (let ((load-path | |
36920 | 121 (if (and (boundp 'byte-compile-dest-file) |
122 (stringp byte-compile-dest-file)) | |
123 (cons (file-name-directory byte-compile-dest-file) load-path) | |
26817 | 124 load-path))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
125 (load "cc-bytecomp" nil t))) |
26817 | 126 |
36920 | 127 (cc-require 'cc-defs) |
128 (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
|
129 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
130 |
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
|
131 ;; 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
|
132 (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
|
133 |
18720 | 134 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
135 ;;; 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
|
136 |
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
|
137 (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
|
138 ;; 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
|
139 ;; `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
|
140 ;; 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
|
141 ;; 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
|
142 ;; `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
|
143 (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
|
144 (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
|
145 (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
|
146 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
|
147 (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
|
148 (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
|
149 (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
|
150 c-emacs-variable-inits-tail c-emacs-variable-inits)) |
36920 | 151 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
152 (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
|
153 "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
|
154 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
|
155 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
|
156 `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
|
157 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
158 `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
|
159 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
|
160 the evaluated constant value at compile time." |
36920 | 161 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
162 (when (and (not doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
163 (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
|
164 (eq (nth 1 val) var) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
165 (not (nth 2 val))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
166 ;; 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
|
167 ;; 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
|
168 ;; 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
|
169 (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
|
170 'variable-documentation))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
171 (or (stringp doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
172 (setq doc nil)) |
18720 | 173 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
174 (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
|
175 (if elem |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
176 (setcdr elem (list val doc)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
177 (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
|
178 (setq c-lang-variable-inits-tail (cdr c-lang-variable-inits-tail)))) |
18720 | 179 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
180 ;; 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
|
181 `',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
|
182 |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
183 (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
|
184 "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
|
185 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
|
186 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
|
187 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
|
188 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
|
189 |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
190 `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
|
191 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
|
192 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
|
193 (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
|
194 (if elem |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
195 (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
|
196 (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
|
197 (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
|
198 |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
199 ;; 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
|
200 `',var) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
201 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
202 (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
|
203 ; (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
|
204 ; ' |
60304f6ae360
* progmodes/cc-awk.el, cc-defs.el, cc-fonts.el, cc-langs.el,
Alan Mackenzie <acm@muc.de>
parents:
70025
diff
changeset
|
205 (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
|
206 (&define name def-form &optional stringp)) ;) |
18720 | 207 |
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
|
208 (eval-and-compile |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
209 ;; 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
|
210 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
211 (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
|
212 ;; Extract a subset of the operators in the list OPS in a DWIM:ey |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
213 ;; way. The return value is a plain list of operators: |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
214 ;; |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
215 ;; 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
|
216 ;; 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
|
217 ;; |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
218 ;; 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
|
219 ;; 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
|
220 ;; (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
|
221 ;; 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
|
222 ;; 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
|
223 ;; |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
224 ;; 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
|
225 ;; 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
|
226 ;; 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
|
227 ;; 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
|
228 ;; removed using `equal'. |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
229 ;; |
b9690e9e273d
(c-operators, c-filter-ops): Amend doc-string and comments.
Alan Mackenzie <acm@muc.de>
parents:
75027
diff
changeset
|
230 ;; `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
|
231 ;; the whole procedure. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
232 (unless (listp (car-safe ops)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
233 (setq ops (list ops))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
234 (cond ((eq opgroup-filter t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
235 (setq opgroup-filter (lambda (opgroup) t))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
236 ((not (functionp opgroup-filter)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
237 (setq opgroup-filter `(lambda (opgroup) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
238 (memq opgroup ',opgroup-filter))))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
239 (cond ((eq op-filter t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
240 (setq op-filter (lambda (op) t))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
241 ((stringp op-filter) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
242 (setq op-filter `(lambda (op) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
243 (string-match ,op-filter op))))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
244 (unless xlate |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
245 (setq xlate 'identity)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
246 (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
|
247 (delete-duplicates |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
248 (mapcan (lambda (opgroup) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
249 (when (if (symbolp (car opgroup)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
250 (when (funcall opgroup-filter (car opgroup)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
251 (setq opgroup (cdr opgroup)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
252 t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
253 t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
254 (mapcan (lambda (op) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
255 (when (funcall op-filter op) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
256 (let ((res (funcall xlate op))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
257 (if (listp res) res (list res))))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
258 opgroup))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
259 ops) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
260 :test 'equal)))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
261 |
18720 | 262 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
263 ;;; 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
|
264 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
265 (c-lang-defconst c-mode-menu |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
266 ;; 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
|
267 ;; 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
|
268 t `(["Comment Out Region" comment-region |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
269 (c-fn-region-is-active-p)] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
270 ["Uncomment Region" (comment-region (region-beginning) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
271 (region-end) '(4)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
272 (c-fn-region-is-active-p)] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
273 ["Indent Expression" c-indent-exp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
274 (memq (char-after) '(?\( ?\[ ?\{))] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
275 ["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
|
276 ["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
|
277 "----" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
278 ["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
|
279 ["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
|
280 ,@(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
|
281 ;; 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
|
282 `(["Up Conditional" c-up-conditional t] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
283 ["Backward Conditional" c-backward-conditional t] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
284 ["Forward Conditional" c-forward-conditional t] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
285 "----" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
286 ["Macro Expand Region" c-macro-expand |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
287 (c-fn-region-is-active-p)] |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
288 ["Backslashify" c-backslash-region |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
289 (c-fn-region-is-active-p)])) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
290 "----" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
291 ("Toggle..." |
68773
dc49655f57ae
Update copyright for 2006.
Nick Roberts <nickrob@snap.net.nz>
parents:
67278
diff
changeset
|
292 ["Syntactic indentation" c-toggle-syntactic-indentation |
dc49655f57ae
Update copyright for 2006.
Nick Roberts <nickrob@snap.net.nz>
parents:
67278
diff
changeset
|
293 :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
|
294 ["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
|
295 :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
|
296 ["Auto newline" c-toggle-auto-newline |
68773
dc49655f57ae
Update copyright for 2006.
Nick Roberts <nickrob@snap.net.nz>
parents:
67278
diff
changeset
|
297 :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
|
298 ["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
|
299 :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
|
300 ["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
|
301 :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
|
302 c-subword-mode)]))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
303 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
304 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
305 ;;; Syntax tables. |
18720 | 306 |
307 (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
|
308 "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
|
309 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
|
310 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
|
311 \"/*\" \"*/\" comments." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
312 |
18720 | 313 (modify-syntax-entry ?_ "_" table) |
314 (modify-syntax-entry ?\\ "\\" table) | |
315 (modify-syntax-entry ?+ "." table) | |
316 (modify-syntax-entry ?- "." table) | |
317 (modify-syntax-entry ?= "." table) | |
318 (modify-syntax-entry ?% "." table) | |
319 (modify-syntax-entry ?< "." table) | |
320 (modify-syntax-entry ?> "." table) | |
321 (modify-syntax-entry ?& "." table) | |
322 (modify-syntax-entry ?| "." table) | |
19300
b07fa43938cc
(c-mode-base-map, c++-mode-map):
Richard M. Stallman <rms@gnu.org>
parents:
19250
diff
changeset
|
323 (modify-syntax-entry ?\' "\"" table) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
324 (modify-syntax-entry ?\240 "." table) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
325 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
326 ;; 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
|
327 ;; 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
|
328 ;; 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
|
329 ;; default. |
18720 | 330 (cond |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
331 ;; XEmacs |
18720 | 332 ((memq '8-bit c-emacs-features) |
333 (modify-syntax-entry ?/ ". 1456" table) | |
19300
b07fa43938cc
(c-mode-base-map, c++-mode-map):
Richard M. Stallman <rms@gnu.org>
parents:
19250
diff
changeset
|
334 (modify-syntax-entry ?* ". 23" table)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
335 ;; Emacs |
18720 | 336 ((memq '1-bit c-emacs-features) |
337 (modify-syntax-entry ?/ ". 124b" table) | |
19300
b07fa43938cc
(c-mode-base-map, c++-mode-map):
Richard M. Stallman <rms@gnu.org>
parents:
19250
diff
changeset
|
338 (modify-syntax-entry ?* ". 23" table)) |
18720 | 339 ;; incompatible |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
340 (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
|
341 |
19300
b07fa43938cc
(c-mode-base-map, c++-mode-map):
Richard M. Stallman <rms@gnu.org>
parents:
19250
diff
changeset
|
342 (modify-syntax-entry ?\n "> b" table) |
b07fa43938cc
(c-mode-base-map, c++-mode-map):
Richard M. Stallman <rms@gnu.org>
parents:
19250
diff
changeset
|
343 ;; 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
|
344 (modify-syntax-entry ?\^m "> b" table)) |
b07fa43938cc
(c-mode-base-map, c++-mode-map):
Richard M. Stallman <rms@gnu.org>
parents:
19250
diff
changeset
|
345 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
346 (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
|
347 "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
|
348 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
|
349 t `(lambda () |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
350 (let ((table (make-syntax-table))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
351 (c-populate-syntax-table table) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
352 ;; Mode specific syntaxes. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
353 ,(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
|
354 ;; 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
|
355 ;; its compiler directives as single keyword tokens. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
356 ;; 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
|
357 ;; 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
|
358 `(modify-syntax-entry ?@ "_" table)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
359 ((c-major-mode-is 'pike-mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
360 `(modify-syntax-entry ?@ "." table))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
361 table))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
362 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
363 (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
|
364 ;; 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
|
365 ;; 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
|
366 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
|
367 |
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
|
368 (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
|
369 ;; 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
|
370 ;; 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
|
371 ;; 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
|
372 ;; 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
|
373 ;; '<' 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
|
374 ;; 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
|
375 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
376 c++ `(lambda () |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
377 (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
|
378 (modify-syntax-entry ?< "(>" table) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
379 (modify-syntax-entry ?> ")<" table) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
380 table))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
381 (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
|
382 (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
|
383 (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
|
384 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
385 (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
|
386 "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
|
387 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
|
388 and keywords as words. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
389 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
390 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
|
391 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
|
392 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
|
393 ;; 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
|
394 ;; 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
|
395 ;; 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
|
396 ;; machine generated identifiers. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
397 t '((?_ . "w") (?$ . "w")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
398 objc (append '((?@ . "w")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
399 (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
|
400 awk '((?_ . "w"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
401 (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
|
402 (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
|
403 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
404 (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
|
405 (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
|
406 (mods c-identifier-syntax-modifications) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
407 mod) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
408 (while mods |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
409 (setq mod (car mods) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
410 mods (cdr mods)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
411 (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
|
412 table) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
413 "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
|
414 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
|
415 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
|
416 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
417 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
418 ;;; Lexer-level syntax (identifiers, tokens etc). |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
419 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
420 (c-lang-defconst c-symbol-start |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
421 "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
|
422 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
|
423 operator at the top level." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
424 t (concat "[" c-alpha "_]") |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
425 objc (concat "[" c-alpha "@]") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
426 pike (concat "[" c-alpha "_`]")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
427 (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
|
428 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
429 (c-lang-defconst c-symbol-chars |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
430 "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
|
431 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
|
432 ;; 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
|
433 ;; 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
|
434 t (concat c-alnum "_$") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
435 objc (concat c-alnum "_$@")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
436 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
437 (c-lang-defconst c-symbol-key |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
438 "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
|
439 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
|
440 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
|
441 "[" (c-lang-const c-symbol-chars) "]*") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
442 pike (concat |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
443 ;; 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
|
444 ;; covered by the other alternative. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
445 (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
|
446 "\\|" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
447 (c-make-keywords-re nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
448 (c-lang-const c-overloadable-operators)))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
449 (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
|
450 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
451 (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
|
452 ;; 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
|
453 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
|
454 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
455 (c-lang-defconst c-nonsymbol-chars |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
456 "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
|
457 negation of `c-symbol-chars'." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
458 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
|
459 (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
|
460 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
461 (c-lang-defconst c-nonsymbol-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
462 "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
|
463 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
|
464 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
|
465 ;; 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
|
466 ;; `c-symbol-key'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
467 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
|
468 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
469 (c-lang-defconst c-identifier-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
470 "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
|
471 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
|
472 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
|
473 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
|
474 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
|
475 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
476 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
|
477 t nil |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
478 c++ '((prefix "~" "??-" "compl") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
479 (right-assoc "::") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
480 (prefix "::")) |
56646
b7446b6f097d
Updated CC Mode to 5.30.9.
Martin Stjernholm <mast@lysator.liu.se>
parents:
52607
diff
changeset
|
481 ;; 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
|
482 ;; 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
|
483 ;; 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
|
484 ;; 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
|
485 ;; `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
|
486 ;; 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
|
487 java '((left-assoc ".")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
488 idl '((left-assoc "::") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
489 (prefix "::")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
490 pike '((left-assoc "::") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
491 (prefix "::") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
492 (left-assoc "."))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
493 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
494 (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
|
495 ;; 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
|
496 ;; 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
|
497 ;; don't have such things. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
498 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
499 ;; 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
|
500 ;; considered internal - change `c-identifier-ops' instead. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
501 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
|
502 '(left-assoc right-assoc) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
503 t))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
504 (when ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
505 (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
|
506 (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
|
507 (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
|
508 'dont-doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
509 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
510 (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
|
511 ;; 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
|
512 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
|
513 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
514 (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
|
515 ;; 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
|
516 ;; 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
|
517 ;; nil in languages without such things. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
518 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
|
519 '(prefix) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
520 t))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
521 (when ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
522 (c-make-keywords-re 'appendable ops)))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
523 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
524 (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
|
525 "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
|
526 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
|
527 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
528 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
|
529 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
|
530 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
531 ;; '~' for destructors in C++, '*' for member pointers. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
532 c++ '("~" "*") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
533 ;; 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
|
534 ;; 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
|
535 ;; "foo.*bar" but we don't bother.) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
536 java '("*")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
537 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
538 (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
|
539 ;; Regexp that must match the token after |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
540 ;; `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
|
541 ;; 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
|
542 ;; 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
|
543 ;; 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
|
544 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
545 ;; 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
|
546 ;; 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
|
547 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
|
548 (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
|
549 (concat "\\|" (c-make-keywords-re 'appendable |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
550 (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
|
551 ""))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
552 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
553 (c-lang-defconst c-identifier-start |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
554 "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
|
555 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
|
556 matches." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
557 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
|
558 (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
|
559 (concat "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
560 (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
|
561 ""))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
562 (c-lang-defvar c-identifier-start (c-lang-const c-identifier-start)) |
18720 | 563 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
564 (c-lang-defconst c-identifier-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
565 "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
|
566 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
|
567 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
|
568 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
|
569 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
|
570 ;; 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
|
571 ;; 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
|
572 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
|
573 (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
574 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
575 (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
|
576 (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
|
577 "\\)?") |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
578 "") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
579 "\\(" (c-lang-const c-symbol-key) "\\)" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
580 (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
|
581 (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
582 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
583 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
584 (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
|
585 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
586 (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
|
587 (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
588 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
589 (c-make-keywords-re 'appendable |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
590 (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
|
591 (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
592 ;; For flexibility, consider the symbol match |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
593 ;; optional if we've hit a |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
594 ;; `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
|
595 ;; also necessary to handle the "*" that can |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
596 ;; end import declaration identifiers in Java. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
597 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
598 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
599 "\\(" (c-lang-const c-symbol-key) "\\)" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
600 "\\)?") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
601 "\\|" |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
602 "\\(" (c-lang-const c-symbol-key) "\\)" |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
603 "\\)") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
604 (concat "\\(" (c-lang-const c-symbol-key) "\\)")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
605 "\\)*") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
606 ""))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
607 (c-lang-defvar c-identifier-key (c-lang-const c-identifier-key)) |
18720 | 608 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
609 (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
|
610 ;; 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
|
611 ;; 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
|
612 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
613 ;; 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
|
614 ;; 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
|
615 ;; 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
|
616 ;; 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
|
617 ;; matched. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
618 t nil) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
619 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
620 (c-lang-defconst c-string-escaped-newlines |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
621 "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
|
622 literals." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
623 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
624 (c c++ objc pike) t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
625 (c-lang-defvar c-string-escaped-newlines |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
626 (c-lang-const c-string-escaped-newlines)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
627 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
628 (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
|
629 "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
|
630 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
|
631 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
|
632 literal are multiline." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
633 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
634 pike ?#) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
635 (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
|
636 (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
|
637 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
638 (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
|
639 "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
|
640 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
|
641 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
|
642 ;; 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
|
643 ;; 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
|
644 t "\\s *#\\s *" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
645 (java awk) nil) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
646 (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
|
647 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
648 (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
|
649 "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
|
650 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
|
651 submatch surrounds the directive name." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
652 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
|
653 (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
|
654 "\\([" c-alnum "]+\\)")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
655 ;; 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
|
656 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
|
657 "\\([" c-alnum "]+\\|!\\)")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
658 (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
|
659 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
660 (c-lang-defconst c-cpp-message-directives |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
661 "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
|
662 string message." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
663 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
|
664 '("error")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
665 pike '("error" "warning")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
666 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
667 (c-lang-defconst c-cpp-include-directives |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
668 "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
|
669 file name in angle brackets or quotes." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
670 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
|
671 '("include")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
672 objc '("include" "import")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
673 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
674 (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
|
675 "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
|
676 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
|
677 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
|
678 "define")) |
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-opt-cpp-macro-define-start |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
681 ;; Regexp matching everything up to the macro body of a cpp define, |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
682 ;; or the end of the logical line if there is none. Set if |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
683 ;; c-opt-cpp-macro-define is. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
684 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
|
685 (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
|
686 (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
|
687 "[ \t]+\\(\\sw\\|_\\)+\\(\([^\)]*\)\\)?" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
688 "\\([ \t]\\|\\\\\n\\)*"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
689 (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
|
690 (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
|
691 |
75027
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
692 (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
|
693 ;; 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
|
694 ;; 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
|
695 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
|
696 (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
|
697 (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
|
698 "[ \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
|
699 (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
|
700 (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
|
701 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
702 (c-lang-defconst c-cpp-expr-directives |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
703 "List if cpp directives (without the prefix) that are followed by an |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
704 expression." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
705 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
|
706 '("if" "elif"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
707 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
708 (c-lang-defconst c-cpp-expr-functions |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
709 "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
|
710 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
|
711 '("defined")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
712 pike '("defined" "efun" "constant")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
713 |
52341
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
714 (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
|
715 "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
|
716 t '("=" "*=" "/=" "%=" "+=" "-=" ">>=" "<<=" "&=" "^=" "|=") |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
717 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
|
718 '(">>>=")) |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
719 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
|
720 '("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
|
721 idl nil) |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
722 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
723 (c-lang-defconst c-operators |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
724 "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
|
725 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
|
726 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
|
727 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
|
728 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
|
729 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
|
730 The operator group types are: |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
731 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
732 'prefix Unary prefix operators. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
733 'postfix Unary postfix operators. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
734 'postfix-if-paren |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
735 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
|
736 parenthesis syntax. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
737 '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
|
738 '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
|
739 'right-assoc-sequence |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
740 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
|
741 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
|
742 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
|
743 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
|
744 order between them is therefore significant. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
745 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
746 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
|
747 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
|
748 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
|
749 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
|
750 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
|
751 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
752 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
|
753 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
|
754 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
|
755 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
756 ;; 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
|
757 ;; 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
|
758 ;; preparation for future work. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
759 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
760 t `(;; Preprocessor. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
761 ,@(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
|
762 `((prefix "#" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
763 ,@(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
|
764 '("%:" "??="))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
765 (left-assoc "##" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
766 ,@(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
|
767 '("%:%:" "??=??="))))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
768 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
769 ;; Primary. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
770 ,@(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
|
771 ,@(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
|
772 `((postfix-if-paren "<" ">"))) ; Templates. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
773 ((c-major-mode-is 'pike-mode) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
774 `((prefix "global" "predef"))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
775 ((c-major-mode-is 'java-mode) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
776 `((prefix "super")))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
777 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
778 ;; Postfix. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
779 ,@(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
|
780 ;; The following need special treatment. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
781 `((prefix "dynamic_cast" "static_cast" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
782 "reinterpret_cast" "const_cast" "typeid"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
783 (left-assoc "." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
784 ,@(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
|
785 '("->"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
786 (postfix "++" "--" "[" "]" "(" ")" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
787 ,@(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
|
788 '("<:" ":>" "??(" "??)"))) |
26817 | 789 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
790 ;; Unary. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
791 (prefix "++" "--" "+" "-" "!" "~" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
792 ,@(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
|
793 ,@(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
|
794 '("*" "&" "sizeof" "??-")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
795 ,@(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
|
796 '("@selector" "@protocol" "@encode")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
797 ;; The following need special treatment. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
798 ,@(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
|
799 '("new" "delete")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
800 ((c-major-mode-is 'java-mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
801 '("new")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
802 ((c-major-mode-is 'pike-mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
803 '("class" "lambda" "catch" "throw" "gauge"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
804 "(" ")" ; Cast. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
805 ,@(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
|
806 '("[" "]"))) ; Type cast. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
807 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
808 ;; Member selection. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
809 ,@(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
|
810 `((left-assoc ".*" "->*"))) |
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 ;; Multiplicative. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
813 (left-assoc "*" "/" "%") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
814 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
815 ;; Additive. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
816 (left-assoc "+" "-") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
817 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
818 ;; Shift. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
819 (left-assoc "<<" ">>" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
820 ,@(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
|
821 '(">>>"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
822 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
823 ;; Relational. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
824 (left-assoc "<" ">" "<=" ">=" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
825 ,@(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
|
826 '("instanceof"))) |
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 ;; Equality. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
829 (left-assoc "==" "!=" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
830 ,@(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
|
831 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
832 ;; Bitwise and. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
833 (left-assoc "&" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
834 ,@(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
|
835 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
836 ;; Bitwise exclusive or. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
837 (left-assoc "^" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
838 ,@(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
|
839 '("??'")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
840 ,@(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
|
841 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
842 ;; Bitwise or. |
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 ,@(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
|
845 '("??!")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
846 ,@(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
|
847 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
848 ;; Logical and. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
849 (left-assoc "&&" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
850 ,@(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
|
851 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
852 ;; Logical or. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
853 (left-assoc "||" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
854 ,@(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
|
855 '("??!??!")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
856 ,@(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
|
857 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
858 ;; Conditional. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
859 (right-assoc-sequence "?" ":") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
860 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
861 ;; Assignment. |
52341
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
862 (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
|
863 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
864 ;; Exception. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
865 ,@(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
|
866 '((prefix "throw"))) |
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 ;; Sequence. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
869 (left-assoc ",")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
870 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
871 ;; 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
|
872 ;; set than the other languages. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
873 idl `(;; Preprocessor. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
874 (prefix "#") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
875 (left-assoc "##") |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
876 ;; Primary. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
877 ,@(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
|
878 ;; Unary. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
879 (prefix "+" "-" "~") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
880 ;; Multiplicative. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
881 (left-assoc "*" "/" "%") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
882 ;; Additive. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
883 (left-assoc "+" "-") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
884 ;; Shift. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
885 (left-assoc "<<" ">>") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
886 ;; And. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
887 (left-assoc "&") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
888 ;; Xor. |
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 ;; Or. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
891 (left-assoc "|"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
892 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
893 (c-lang-defconst c-operator-list |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
894 ;; 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
|
895 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
|
896 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
897 (c-lang-defconst c-overloadable-operators |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
898 "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
|
899 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
|
900 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
901 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
|
902 "+" "-" "*" "/" "%" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
903 "^" "??'" "xor" "&" "bitand" "|" "??!" "bitor" "~" "??-" "compl" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
904 "!" "=" "<" ">" "+=" "-=" "*=" "/=" "%=" "^=" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
905 "??'=" "xor_eq" "&=" "and_eq" "|=" "??!=" "or_eq" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
906 "<<" ">>" ">>=" "<<=" "==" "!=" "not_eq" "<=" ">=" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
907 "&&" "and" "||" "??!??!" "or" "++" "--" "," "->*" "->" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
908 "()" "[]" "<::>" "??(??)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
909 ;; These work like identifiers in Pike. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
910 pike '("`+" "`-" "`&" "`|" "`^" "`<<" "`>>" "`*" "`/" "`%" "`~" |
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 "``-" "``&" "``|" "``^" "``<<" "``>>" "``*" "``/" "``%" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
913 "`+=")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
914 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
915 (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
|
916 ;; 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
|
917 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
918 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
|
919 (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
|
920 (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
|
921 |
75027
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
922 (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
|
923 "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
|
924 `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
|
925 \"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
|
926 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
|
927 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
|
928 identifier is listed in `c-overloadable-operators'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
929 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
930 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
|
931 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
932 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
|
933 (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
|
934 (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
|
935 |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
936 ;; 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
|
937 ;; 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
|
938 ;; some release very shortly in the future. ACM, 2006-04-14. |
9f636bd65206
Update CC Mode to version 5.31.4. The detailed changes are those
Alan Mackenzie <acm@muc.de>
parents:
74581
diff
changeset
|
939 (defalias '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
|
940 (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
|
941 "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
|
942 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
943 (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
|
944 "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
|
945 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
|
946 operators." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
947 t '("{" "}" "(" ")" "[" "]" ";" ":" "," "=" "/*" "*/" "//") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
948 (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
|
949 "::" "...") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
950 (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
|
951 (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
|
952 c++ (append '("&" "<%" "%>" "<:" ":>" "%:" "%:%:") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
953 (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
|
954 objc (append '("#" "##" ; Used by cpp. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
955 "+" "-") (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
|
956 idl (append '("#" "##") ; Used by cpp. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
957 (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
|
958 pike (append '("..") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
959 (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
|
960 (c-lang-const c-overloadable-operators)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
961 awk '("{" "}" "(" ")" "[" "]" ";" "," "=" "/")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
962 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
963 (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
|
964 ;; 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
|
965 ;; classes. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
966 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
|
967 (c-lang-const c-operator-list)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
968 :test 'string-equal)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
969 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
970 (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
|
971 ;; 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
|
972 ;; 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
|
973 ;; parenthesis and string delimiter chars. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
974 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
|
975 ;; 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
|
976 ;; 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
|
977 (let (list (char 32)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
978 (while (< char 127) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
979 (or (memq (char-syntax char) '(?w ?_ ?< ?> ?\ )) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
980 (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
|
981 (setq char (1+ char))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
982 list))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
983 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
984 (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
|
985 ;; 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
|
986 ;; 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
|
987 ;; a float. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
988 t (c-make-keywords-re nil |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
989 (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
|
990 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
991 "\\`\\(\\s.\\|\\s\(\\|\\s\)\\)+\\'"))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
992 (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
|
993 (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
|
994 |
52341
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
995 (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
|
996 ;; 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
|
997 ;; 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
|
998 ;; 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
|
999 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
|
1000 (concat |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1001 ;; 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
|
1002 "=\\([^=]\\|$\\)" |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1003 "\\|" |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1004 (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
|
1005 (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
|
1006 '("=") |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1007 :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
|
1008 "\\<\\>")) |
6a060e586596
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
Martin Stjernholm <mast@lysator.liu.se>
parents:
51946
diff
changeset
|
1009 (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
|
1010 (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
|
1011 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1012 (c-lang-defconst c-<>-multichar-token-regexp |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1013 ;; 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
|
1014 ;; than one char. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1015 t (c-make-keywords-re nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1016 (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
|
1017 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1018 ".[<>]\\|[<>]."))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1019 (c-lang-defvar c-<>-multichar-token-regexp |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1020 (c-lang-const c-<>-multichar-token-regexp)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1021 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1022 (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
|
1023 ;; 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
|
1024 ;; multicharacter tokens that begin with "<". |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1025 t (c-make-keywords-re nil |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1026 (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
|
1027 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1028 "\\`<." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1029 (lambda (op) (substring op 1))))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1030 (c-lang-defvar c-<-op-cont-regexp (c-lang-const c-<-op-cont-regexp)) |
18720 | 1031 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1032 (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
|
1033 ;; 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
|
1034 ;; multicharacter tokens that begin with ">". |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1035 t (c-make-keywords-re nil |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1036 (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
|
1037 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1038 "\\`>." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1039 (lambda (op) (substring op 1))))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1040 (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
|
1041 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1042 (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
|
1043 ;; 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
|
1044 ;; 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
|
1045 ;; 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
|
1046 ;; 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
|
1047 t "^;{}?:" |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1048 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
|
1049 (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
|
1050 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1051 (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
|
1052 ;; 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
|
1053 t "^;,{}?:" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1054 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
|
1055 (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
|
1056 (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
|
1057 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1058 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1059 ;;; Syntactic whitespace. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1060 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1061 (c-lang-defconst c-simple-ws |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1062 "Regexp matching an ordinary whitespace character. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1063 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
|
1064 ;; "\\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
|
1065 t "\\(\\s \\|[\n\r]\\)") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1066 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1067 (c-lang-defconst c-simple-ws-depth |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1068 ;; 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
|
1069 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
|
1070 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1071 (c-lang-defconst c-line-comment-starter |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1072 "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
|
1073 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
|
1074 `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
|
1075 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1076 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
|
1077 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
|
1078 properly." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1079 t "//" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1080 awk "#") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1081 (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
|
1082 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1083 (c-lang-defconst c-block-comment-starter |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1084 "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
|
1085 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
|
1086 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
|
1087 this one is assumed to be set. |
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 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
|
1090 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
|
1091 properly." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1092 t "/*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1093 awk nil) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1094 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1095 (c-lang-defconst c-block-comment-ender |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1096 "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
|
1097 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1098 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
|
1099 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
|
1100 properly." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1101 t "*/" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1102 awk nil) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1103 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1104 (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
|
1105 ;; 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
|
1106 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
|
1107 (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
|
1108 (c-lang-const c-block-comment-starter))))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1109 (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
|
1110 (concat re "\\|\\s!") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1111 re))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1112 (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
|
1113 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1114 ;;;; Added by ACM, 2003/9/18. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1115 (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
|
1116 ;; 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
|
1117 ;; language) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1118 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
|
1119 (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
|
1120 "\\<\\>")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1121 (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
|
1122 (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
|
1123 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1124 (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
|
1125 ;; 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
|
1126 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
|
1127 "\\|" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1128 (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
|
1129 "\"|" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1130 "\""))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1131 (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
|
1132 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1133 (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
|
1134 "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
|
1135 t "\\<\\>" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1136 ;; 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
|
1137 (c c++ objc) "/\\*[*!]" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1138 java "/\\*\\*" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1139 pike "/[/*]!") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1140 (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
|
1141 (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
|
1142 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1143 (c-lang-defconst comment-start |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1144 "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
|
1145 `comment-start' is initialized from this." |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1146 ;; 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
|
1147 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
|
1148 (c-lang-const c-block-comment-starter)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1149 " ") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1150 ;; 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
|
1151 ;; comments aren't entirely portable. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1152 c "/* ") |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
1153 (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
|
1154 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1155 (c-lang-defconst comment-end |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1156 "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
|
1157 `comment-end' is initialized from this." |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1158 ;; 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
|
1159 ;; 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
|
1160 t (if (string-match (concat "\\`\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1161 (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
|
1162 "\\)") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1163 (c-lang-const comment-start)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1164 (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
|
1165 "")) |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
1166 (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
|
1167 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1168 (c-lang-defconst comment-start-skip |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1169 "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
|
1170 `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
|
1171 ;; 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
|
1172 ;; 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
|
1173 t (concat "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1174 (c-concat-separated |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1175 (mapcar (lambda (cs) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1176 (when cs |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1177 (concat (regexp-quote cs) "+"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1178 (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
|
1179 (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 "\\)\\s *")) |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
1182 (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
|
1183 |
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
|
1184 (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
|
1185 ;; 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
|
1186 ;; 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
|
1187 t (concat "\\s \\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1188 (c-make-keywords-re nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1189 (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
|
1190 (c-lang-const c-block-comment-starter) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1191 (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
|
1192 "#")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1193 '("\n" "\r"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1194 "\\|\\\\[\n\r]" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1195 (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
|
1196 "\\|\\s!"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1197 (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
|
1198 |
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
|
1199 (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
|
1200 ;; 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
|
1201 t (concat "\\s \\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1202 (c-make-keywords-re nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1203 (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
|
1204 (list |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1205 (string |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1206 (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
|
1207 (1- (length |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1208 (c-lang-const c-block-comment-ender))))))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1209 '("\n" "\r"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1210 (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
|
1211 "\\|\\s!"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1212 (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
|
1213 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1214 (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
|
1215 ;; 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
|
1216 ;; 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
|
1217 ;; 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
|
1218 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
|
1219 (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1220 (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
|
1221 ;; 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
|
1222 ;; but c-block-comment-ender. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1223 (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
|
1224 (cond ((= (length end) 1) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1225 (concat "[^" end "\n\r]*")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1226 ((= (length end) 2) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1227 (concat "[^" (substring end 0 1) "\n\r]*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1228 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1229 (regexp-quote (substring end 0 1)) "+" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1230 "[^" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1231 ;; 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
|
1232 (cond ((= (elt end 0) (elt end 1)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1233 (concat (substring end 0 1) "\n\r")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1234 ((= (elt end 1) ?\]) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1235 (concat (substring end 1 2) "\n\r" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1236 (substring end 0 1))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1237 (t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1238 (concat (substring end 0 1) "\n\r" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1239 (substring end 1 2)))) |
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 "[^" (substring end 0 1) "\n\r]*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1242 "\\)*")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1243 (t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1244 (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
|
1245 (length end)))))))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1246 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1247 (c-lang-defconst c-block-comment-regexp |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1248 ;; 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
|
1249 ;; 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
|
1250 ;; 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
|
1251 ;; 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
|
1252 ;; 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
|
1253 ;; 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
|
1254 ;; level. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1255 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
|
1256 (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1257 (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
|
1258 (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
|
1259 (cond ((= (length end) 1) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1260 (regexp-quote end)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1261 ((= (length end) 2) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1262 (concat (regexp-quote (substring end 0 1)) "+" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1263 (regexp-quote (substring end 1 2)))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1264 (t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1265 (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
|
1266 (length end)))))))) |
18720 | 1267 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1268 (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
|
1269 ;; 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
|
1270 ;; 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
|
1271 ;; `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
|
1272 ;; directives as syntactic whitespace. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1273 t (c-concat-separated |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1274 (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
|
1275 (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
|
1276 "[^\n\r]*[\n\r]")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1277 (c-lang-const c-block-comment-regexp) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1278 "\\\\[\n\r]" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1279 (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
|
1280 "\\s!\\S!*\\s!")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1281 "\\|")) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1282 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1283 (c-lang-defconst c-syntactic-ws |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1284 ;; 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
|
1285 ;; 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
|
1286 ;; 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
|
1287 ;; 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
|
1288 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
|
1289 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1290 (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
|
1291 (c-lang-const c-simple-ws) "*") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1292 "\\)*")) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1293 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1294 (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
|
1295 ;; 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
|
1296 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
|
1297 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1298 (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
|
1299 ;; 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
|
1300 ;; 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
|
1301 ;; 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
|
1302 ;; 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
|
1303 t (concat "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1304 (c-lang-const c-simple-ws) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1305 "\\|" |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1306 (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
|
1307 "\\)+")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1308 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1309 (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
|
1310 ;; 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
|
1311 t (regexp-opt-depth (c-lang-const c-nonempty-syntactic-ws))) |
19250 | 1312 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1313 (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
|
1314 ;; 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
|
1315 ;; 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
|
1316 ;; 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
|
1317 ;; a \| operator at the top level. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1318 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
|
1319 (concat "\\s *\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1320 (c-lang-const c-block-comment-regexp) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1321 "\\s *\\)*") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1322 "\\s *")) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1323 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1324 (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
|
1325 ;; 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
|
1326 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
|
1327 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1328 (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
|
1329 ;; 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
|
1330 ;; 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
|
1331 ;; significant text here. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1332 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
|
1333 ;; 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
|
1334 ;; 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
|
1335 ;; 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
|
1336 ;; where line comments start with '#'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1337 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1338 (c-concat-separated |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1339 (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
|
1340 (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
|
1341 (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
|
1342 (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
|
1343 "$")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1344 "\\\\$" |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1345 "$") |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1346 "\\|") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1347 "\\)")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1348 (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
|
1349 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1350 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1351 ;;; 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
|
1352 (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
|
1353 "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
|
1354 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
|
1355 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
|
1356 don't have EOL terminated statements. " |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1357 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1358 awk 'c-awk-at-vsemi-p) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1359 (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
|
1360 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1361 (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
|
1362 "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
|
1363 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
|
1364 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
|
1365 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
|
1366 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
|
1367 EOL terminated statements." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1368 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1369 awk 'c-awk-vsemi-status-unknown-p) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1370 (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
|
1371 (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
|
1372 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1373 |
77081
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1374 ;;; 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
|
1375 |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1376 ;; 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
|
1377 ;; 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
|
1378 ;; `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
|
1379 ;; 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
|
1380 ;; 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
|
1381 (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
|
1382 "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
|
1383 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
|
1384 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
|
1385 (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
|
1386 (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
|
1387 |
e8bd3e011b64
Changes to make `narrow-to-defun' and `mark-defun' work properly in CC
Alan Mackenzie <acm@muc.de>
parents:
75347
diff
changeset
|
1388 (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
|
1389 "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
|
1390 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
|
1391 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
|
1392 (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
|
1393 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1394 ;;; In-comment text handling. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1395 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1396 (c-lang-defconst c-paragraph-start |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1397 "Regexp to append to `paragraph-start'." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1398 t "$" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1399 java "\\(@[a-zA-Z]+\\>\\|$\\)" ; For Javadoc. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1400 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
|
1401 (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
|
1402 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1403 (c-lang-defconst c-paragraph-separate |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1404 "Regexp to append to `paragraph-separate'." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1405 t "$" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1406 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
|
1407 (c-lang-defvar c-paragraph-separate (c-lang-const c-paragraph-separate)) |
24282 | 1408 |
36920 | 1409 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1410 ;;; Keyword lists. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1411 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1412 ;; 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
|
1413 ;; 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
|
1414 ;; `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
|
1415 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1416 (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
|
1417 "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
|
1418 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
|
1419 keyword face. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1420 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1421 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
|
1422 `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
|
1423 `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
|
1424 will be handled. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1425 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1426 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
|
1427 `*-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
|
1428 the appropriate place for that." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1429 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
|
1430 "unsigned" "void") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1431 c (append |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1432 '("_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
|
1433 (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
|
1434 c++ (append |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1435 '("bool" "wchar_t") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1436 (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
|
1437 ;; 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
|
1438 objc (append |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1439 '("id" "Class" "SEL" "IMP" "BOOL") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1440 (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
|
1441 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
|
1442 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
|
1443 "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
|
1444 ;; In CORBA PSDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1445 "ref" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1446 ;; 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
|
1447 ;; 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
|
1448 ;; doesn't matter that much. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1449 "unsigned" "strong") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1450 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
|
1451 ;; used as a builtin type. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1452 "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
|
1453 "object" "program" "string" "this_program" "void")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1454 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1455 (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
|
1456 ;; 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
|
1457 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
|
1458 (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
|
1459 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1460 (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
|
1461 "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
|
1462 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
|
1463 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1464 (c c++) '("long" "short" "signed" "unsigned") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1465 idl '("long" "unsigned" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1466 ;; In CORBA PSDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1467 "strong")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1468 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1469 (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
|
1470 "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
|
1471 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
|
1472 declarations. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1473 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1474 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
|
1475 `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
|
1476 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
|
1477 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1478 c '("struct" "union" "enum") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1479 c++ (append '("class" "typename") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1480 (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
|
1481 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1482 (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
|
1483 ;; 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
|
1484 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
|
1485 (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
|
1486 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1487 (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
|
1488 "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
|
1489 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
|
1490 `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
|
1491 not the type face." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1492 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1493 c '("const" "restrict" "volatile") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1494 c++ '("const" "volatile" "throw") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1495 objc '("const" "volatile")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1496 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1497 (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
|
1498 ;; 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
|
1499 ;; languages without such keywords. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1500 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
|
1501 (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
|
1502 (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
|
1503 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1504 (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
|
1505 ;; 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
|
1506 ;; `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
|
1507 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
|
1508 (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
|
1509 (c-make-keywords-re t |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1510 (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
|
1511 (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
|
1512 (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
|
1513 (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
|
1514 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1515 (c-lang-defconst c-type-start-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1516 ;; 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
|
1517 ;; or a complete type). |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1518 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
|
1519 (c-lang-const c-type-prefix-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1520 (c-lang-const c-type-modifier-kwds)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1521 :test 'string-equal)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1522 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1523 (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
|
1524 "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
|
1525 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
|
1526 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1527 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
|
1528 `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
|
1529 `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
|
1530 will be handled. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1531 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1532 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
|
1533 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
|
1534 `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
|
1535 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1536 c '("struct" "union") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1537 c++ '("class" "struct" "union") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1538 objc '("struct" "union" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1539 "@interface" "@implementation" "@protocol") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1540 java '("class" "interface") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1541 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
|
1542 "union" "valuetype" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1543 ;; In CORBA PSDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1544 "storagehome" "storagetype" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1545 ;; In CORBA CIDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1546 "catalog" "executor" "manages" "segment") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1547 pike '("class")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1548 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1549 (c-lang-defconst c-class-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1550 ;; 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
|
1551 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
|
1552 (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
|
1553 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1554 (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
|
1555 "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
|
1556 any) is a brace list. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1557 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1558 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
|
1559 `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
|
1560 `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
|
1561 will be handled." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1562 t '("enum") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1563 (java awk) nil) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1564 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1565 (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
|
1566 ;; 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
|
1567 ;; block is a brace list. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1568 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
|
1569 (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
|
1570 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1571 (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
|
1572 "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
|
1573 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
|
1574 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
|
1575 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
|
1576 `foo-open', `foo-close', and `infoo' symbols. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1577 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1578 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
|
1579 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
|
1580 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
|
1581 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
|
1582 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
|
1583 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
|
1584 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
|
1585 `c-class-decl-kwds'. |
51714
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 t nil |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1592 (c objc) '("extern") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1593 c++ '("namespace" "extern") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1594 idl '("module" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1595 ;; In CORBA CIDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1596 "composition")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1597 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1598 (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
|
1599 ;; 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
|
1600 ;; another declaration level. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1601 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
|
1602 (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
|
1603 |
78657
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1604 (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
|
1605 (mapcar |
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1606 (lambda (elt) |
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1607 (cons elt |
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1608 (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
|
1609 'inextern-lang |
d9f04596fa48
(c-other-decl-block-key-in-symbols-alist): new language variable.
Alan Mackenzie <acm@muc.de>
parents:
78354
diff
changeset
|
1610 (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
|
1611 (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
|
1612 "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
|
1613 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
|
1614 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1615 (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
|
1616 "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
|
1617 declared are types. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1618 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1619 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
|
1620 `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
|
1621 `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
|
1622 will be handled." |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1623 ;; 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
|
1624 ;; (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
|
1625 ;; {...}"). |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1626 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
|
1627 (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
|
1628 ;; Languages that have a "typedef" construct. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1629 (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
|
1630 '("typedef")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1631 ;; 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
|
1632 ;; 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
|
1633 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
|
1634 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1635 (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
|
1636 "Keywords introducing declarations where the \(first) identifier |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1637 \(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
|
1638 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1639 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
|
1640 `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
|
1641 `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
|
1642 will be handled." |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1643 ;; 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
|
1644 ;; (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
|
1645 ;; {...}"). |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1646 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
|
1647 (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
|
1648 ;; 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
|
1649 ;; `c-type-list-kwds' for IDL. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1650 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
|
1651 '("factory" "finder" "native" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1652 ;; In CORBA PSDL: |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1653 "key" "stores" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1654 ;; In CORBA CIDL: |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1655 "facet")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1656 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
|
1657 '("constant"))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1658 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1659 (c-lang-defconst c-modifier-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1660 "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
|
1661 \(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
|
1662 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
|
1663 sense. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1664 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1665 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
|
1666 `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
|
1667 `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
|
1668 will be handled." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1669 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1670 (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
|
1671 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
|
1672 (c-lang-const c-modifier-kwds)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1673 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
|
1674 ;; 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
|
1675 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
|
1676 "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
|
1677 "public" "publishes" "readonly" "typeid" "typeprefix" "uses" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1678 ;; In CORBA PSDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1679 "primary" "state" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1680 ;; In CORBA CIDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1681 "bindsTo" "delegatesTo" "implements" "proxy" "storedOn") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1682 ;; 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
|
1683 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
|
1684 "static" "strictfp" "synchronized" "transient" "volatile") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1685 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
|
1686 "public" "static" "variant")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1687 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1688 (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
|
1689 "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
|
1690 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
|
1691 `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
|
1692 `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
|
1693 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1694 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
|
1695 `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
|
1696 `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
|
1697 will be handled." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1698 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1699 objc '("@class" "@end" "@defs") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1700 java '("import" "package") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1701 pike '("import" "inherit")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1702 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1703 (c-lang-defconst c-decl-start-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1704 "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
|
1705 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
|
1706 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
|
1707 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1708 ;; 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
|
1709 pike '("class")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1710 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1711 (c-lang-defconst c-decl-hangon-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1712 "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
|
1713 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
|
1714 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
|
1715 correctly. Typical cases are compiler extensions like |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1716 \"__attribute__\" or \"__declspec\": |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1717 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1718 __declspec(noreturn) void foo(); |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1719 class __declspec(dllexport) classname {...}; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1720 void foo() __attribute__((noreturn)); |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1721 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1722 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
|
1723 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
|
1724 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
|
1725 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
|
1726 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
|
1727 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
|
1728 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
|
1729 `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
|
1730 `c-<>-type-kwds', or `c-<>-arglist-kwds'." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1731 ;; 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
|
1732 ;; 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
|
1733 ;; 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
|
1734 ;; 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
|
1735 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1736 ;; 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
|
1737 ;; 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
|
1738 ;; 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
|
1739 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1740 (c c++) '(;; GCC extension. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1741 "__attribute__" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1742 ;; MSVC extension. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1743 "__declspec")) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1744 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1745 (c-lang-defconst c-decl-hangon-key |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1746 ;; Adorned regexp matching `c-decl-hangon-kwds'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1747 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
|
1748 (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
|
1749 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1750 (c-lang-defconst c-prefix-spec-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1751 ;; 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
|
1752 ;; 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
|
1753 ;; 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
|
1754 ;; 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
|
1755 ;; 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
|
1756 ;; prefixes. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1757 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
|
1758 (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
|
1759 (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
|
1760 (c-lang-const c-typedef-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1761 (c-lang-const c-typeless-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1762 (c-lang-const c-modifier-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1763 (c-lang-const c-other-decl-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1764 (c-lang-const c-decl-start-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1765 (c-lang-const c-decl-hangon-kwds)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1766 :test 'string-equal)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1767 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1768 (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
|
1769 ;; Adorned regexp of `c-prefix-spec-kwds'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1770 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
|
1771 (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
|
1772 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1773 (c-lang-defconst c-specifier-key |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1774 ;; Adorned regexp of the keywords in `c-prefix-spec-kwds' that |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1775 ;; aren't ambiguous with types or type prefixes. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1776 t (c-make-keywords-re t |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1777 (set-difference (c-lang-const c-prefix-spec-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1778 (c-lang-const c-type-start-kwds) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1779 :test 'string-equal))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1780 (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
|
1781 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1782 (c-lang-defconst c-postfix-spec-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1783 ;; 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
|
1784 ;; 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
|
1785 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
|
1786 (c-lang-const c-decl-hangon-kwds))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1787 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1788 (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
|
1789 ;; 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
|
1790 ;; start of a declaration. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1791 t (c-make-keywords-re t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1792 (set-difference (c-lang-const c-keywords) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1793 (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
|
1794 (c-lang-const c-prefix-spec-kwds)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1795 :test 'string-equal))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1796 (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
|
1797 (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
|
1798 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1799 (c-lang-defconst c-protection-kwds |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1800 "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
|
1801 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1802 c++ '("private" "protected" "public") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1803 objc '("@private" "@protected" "@public")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1804 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1805 (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
|
1806 "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
|
1807 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
|
1808 \"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
|
1809 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
|
1810 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1811 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
|
1812 `*-decl-kwds' lists." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1813 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1814 (c objc) '("struct" "union" "enum" "typedef") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1815 c++ '("class" "struct" "union" "enum" "typedef")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1816 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1817 (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
|
1818 ;; 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
|
1819 ;; languages without such constructs. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1820 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
|
1821 (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
|
1822 (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
|
1823 (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
|
1824 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1825 (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
|
1826 "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
|
1827 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
|
1828 declarations." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1829 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1830 java '("extends" "implements" "throws") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1831 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
|
1832 "supports" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1833 ;; In CORBA PSDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1834 "as" "const" "implements" "of" "ref")) |
36920 | 1835 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1836 (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
|
1837 "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
|
1838 construct it's part of continues." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1839 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1840 (c c++ objc) '("extern")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1841 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1842 (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
|
1843 "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
|
1844 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
|
1845 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
|
1846 element.) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1847 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1848 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
|
1849 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
|
1850 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
|
1851 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
|
1852 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
|
1853 either. |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1854 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1855 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
|
1856 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
|
1857 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
|
1858 c++ '("operator") |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1859 objc '("@class") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1860 java '("import" "new" "extends" "implements" "throws") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1861 idl '("manages" "native" "primarykey" "supports" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1862 ;; In CORBA PSDL: |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1863 "as" "implements" "of" "scope") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1864 pike '("inherit")) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1865 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1866 (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
|
1867 "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
|
1868 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
|
1869 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
|
1870 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
|
1871 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
|
1872 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1873 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
|
1874 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
|
1875 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1876 c++ '("namespace") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1877 java '("package") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1878 idl '("import" "module" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1879 ;; In CORBA CIDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1880 "composition") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1881 pike '("import")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1882 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1883 (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
|
1884 "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
|
1885 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
|
1886 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
|
1887 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
|
1888 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1889 c++ '("class" "struct") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1890 idl '("component" "eventtype" "home" "interface" "valuetype" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1891 ;; In CORBA PSDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1892 "storagehome" "storagetype")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1893 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1894 (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
|
1895 "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
|
1896 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
|
1897 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
|
1898 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
|
1899 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
|
1900 ;; 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
|
1901 ;; 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
|
1902 ;; 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
|
1903 ;; languages.) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1904 "[^\]\[{}();,/#=:]*:")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1905 (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
|
1906 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1907 (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
|
1908 "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
|
1909 contain type identifiers." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1910 t nil |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1911 (c c++) '(;; GCC extension. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1912 "__attribute__" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1913 ;; MSVC extension. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1914 "__declspec")) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1915 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1916 (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
|
1917 "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
|
1918 type identifiers separated by arbitrary tokens." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1919 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1920 c++ '("throw") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1921 objc '("@defs") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1922 idl '("switch") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1923 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
|
1924 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1925 (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
|
1926 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
|
1927 (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
|
1928 :test 'string-equal)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1929 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1930 (c-lang-defconst c-<>-type-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1931 "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
|
1932 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
|
1933 `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
|
1934 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
|
1935 if this isn't nil." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1936 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1937 objc '("id") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1938 idl '("sequence" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1939 ;; In CORBA PSDL: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1940 "ref")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1941 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1942 (c-lang-defconst c-<>-arglist-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1943 "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
|
1944 `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
|
1945 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
|
1946 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1947 c++ '("template") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1948 idl '("fixed" "string" "wstring")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1949 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1950 (c-lang-defconst c-<>-sexp-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1951 ;; 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
|
1952 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
|
1953 (c-lang-const c-<>-arglist-kwds)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1954 :test 'string-equal)) |
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-opt-<>-sexp-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1957 ;; 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
|
1958 ;; 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
|
1959 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
|
1960 (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
|
1961 (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
|
1962 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1963 (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
|
1964 "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
|
1965 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
|
1966 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
|
1967 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
|
1968 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1969 (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
|
1970 "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
|
1971 t '("do" "else") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1972 c++ '("do" "else" "try") |
84389
dcd4f2cd850a
Support new keywords added to objective-c frontend of gcc.
Masatake YAMATO <jet@gyve.org>
parents:
78688
diff
changeset
|
1973 objc '("do" "else" "@finally" "@try") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1974 java '("do" "else" "finally" "try") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1975 idl nil) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1976 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1977 (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
|
1978 ;; 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
|
1979 ;; 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
|
1980 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
|
1981 (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
|
1982 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1983 (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
|
1984 "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
|
1985 t '("for" "if" "switch" "while") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1986 c++ '("for" "if" "switch" "while" "catch") |
84389
dcd4f2cd850a
Support new keywords added to objective-c frontend of gcc.
Masatake YAMATO <jet@gyve.org>
parents:
78688
diff
changeset
|
1987 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
|
1988 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
|
1989 idl nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1990 pike '("for" "if" "switch" "while" "foreach") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1991 awk '("for" "if" "while")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1992 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1993 (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
|
1994 ;; 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
|
1995 ;; and then by a substatement. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
1996 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
|
1997 (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
|
1998 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
1999 (c-lang-defconst c-block-stmt-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2000 ;; 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
|
2001 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
|
2002 (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
|
2003 :test 'string-equal)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2004 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2005 (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
|
2006 ;; 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
|
2007 ;; 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
|
2008 ;; don't have such constructs. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2009 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
|
2010 (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
|
2011 (c-make-keywords-re t |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2012 (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
|
2013 (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
|
2014 (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
|
2015 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2016 (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
|
2017 "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
|
2018 t '("break" "continue" "goto" "return") |
84389
dcd4f2cd850a
Support new keywords added to objective-c frontend of gcc.
Masatake YAMATO <jet@gyve.org>
parents:
78688
diff
changeset
|
2019 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
|
2020 ;; 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
|
2021 java '("break" "continue" "goto" "return" "throw") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2022 idl nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2023 pike '("break" "continue" "return") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2024 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
|
2025 "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
|
2026 "nextfile" "print" "printf")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2027 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2028 (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
|
2029 ;; 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
|
2030 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
|
2031 (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
|
2032 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2033 (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
|
2034 "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
|
2035 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
|
2036 t '("for") |
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-paren-stmt-key |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2040 ;; 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
|
2041 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
|
2042 (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
|
2043 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2044 (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
|
2045 "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
|
2046 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2047 (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
|
2048 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2049 (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
|
2050 ;; 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
|
2051 ;; languages that don't support that. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2052 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
|
2053 (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
|
2054 (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
|
2055 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2056 (c-lang-defconst c-label-kwds |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2057 "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
|
2058 t '("case" "default") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2059 awk nil) |
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-label-kwds-regexp |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2062 ;; 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
|
2063 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
|
2064 (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
|
2065 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2066 (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
|
2067 "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
|
2068 t '("goto") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2069 (java pike) (append '("break" "continue") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2070 (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
|
2071 idl nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2072 awk nil) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2073 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2074 (c-lang-defconst c-constant-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2075 "Keywords for constants." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2076 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2077 (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
|
2078 "false" "true") ; Defined in C99. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2079 objc '("nil" "Nil") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2080 idl '("TRUE" "FALSE") |
78688
169408eb6887
(c-constant-kwds): Add java: null, true, false.
Glenn Morris <rgm@gnu.org>
parents:
78657
diff
changeset
|
2081 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
|
2082 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
|
2083 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2084 (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
|
2085 "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
|
2086 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2087 c++ '("operator" "this") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2088 objc '("super" "self") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2089 java '("this") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2090 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
|
2091 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2092 (c-lang-defconst c-expr-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2093 ;; 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
|
2094 ;; `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
|
2095 t (delete-duplicates |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2096 (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
|
2097 (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
|
2098 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2099 "\\`\\(\\w\\|\\s_\\)+\\'")) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2100 :test 'string-equal)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2101 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2102 (c-lang-defconst c-lambda-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2103 "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
|
2104 expressions." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2105 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2106 pike '("lambda")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2107 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2108 (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
|
2109 "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
|
2110 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
|
2111 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
|
2112 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2113 pike '("catch" "gauge")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2114 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2115 (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
|
2116 "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
|
2117 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2118 java '("new") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2119 pike '("class")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2120 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2121 (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
|
2122 "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
|
2123 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
|
2124 `c-inexpr-class-kwds'." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2125 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2126 java '("new")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2127 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2128 (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
|
2129 ;; 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
|
2130 ;; 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
|
2131 ;; 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
|
2132 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
|
2133 (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
|
2134 (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
|
2135 (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
|
2136 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2137 (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
|
2138 ;; 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
|
2139 ;; 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
|
2140 ;; 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
|
2141 ;; 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
|
2142 ;; 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
|
2143 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
|
2144 (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
|
2145 (c-lang-const c-inexpr-class-kwds))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2146 (unambiguous (set-difference decl-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2147 (c-lang-const c-type-start-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2148 :test 'string-equal)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2149 (ambiguous (intersection decl-kwds |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2150 (c-lang-const c-type-start-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2151 :test 'string-equal))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2152 (if ambiguous |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2153 (concat (c-make-keywords-re t unambiguous) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2154 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2155 (c-make-keywords-re t ambiguous)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2156 (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
|
2157 (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
|
2158 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2159 (c-lang-defconst c-bitfield-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2160 "Keywords that can introduce bitfields." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2161 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2162 (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
|
2163 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2164 (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
|
2165 ;; 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
|
2166 ;; languages without bitfield support. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2167 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2168 (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
|
2169 (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
|
2170 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2171 (c-lang-defconst c-other-kwds |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2172 "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
|
2173 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2174 idl '("truncatable" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2175 ;; 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
|
2176 ;; can start a declaration.) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2177 "entity" "process" "service" "session" "storage")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2178 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2179 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2180 ;;; Constants built from keywords. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2181 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2182 ;; 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
|
2183 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2184 (eval-and-compile |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2185 (defconst c-kwds-lang-consts |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2186 ;; 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
|
2187 (let (list) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2188 (mapatoms (lambda (sym) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2189 (when (and (boundp sym) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2190 (string-match "-kwds\\'" (symbol-name sym))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2191 ;; 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
|
2192 ;; 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
|
2193 (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
|
2194 c-lang-constants) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2195 list))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2196 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2197 (c-lang-defconst c-keywords |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2198 ;; All keywords as a list. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2199 t (delete-duplicates |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2200 (c-lang-defconst-eval-immediately |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2201 `(append ,@(mapcar (lambda (kwds-lang-const) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2202 `(c-lang-const ,kwds-lang-const)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2203 c-kwds-lang-consts) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2204 nil)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2205 :test 'string-equal)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2206 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2207 (c-lang-defconst c-keywords-regexp |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2208 ;; All keywords as an adorned regexp. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2209 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
|
2210 (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
|
2211 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2212 (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
|
2213 ;; 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
|
2214 ;; 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
|
2215 ;; contains it. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2216 t (let ((kwd-list-alist |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2217 (c-lang-defconst-eval-immediately |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2218 `(list ,@(mapcar (lambda (kwds-lang-const) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2219 `(cons ',kwds-lang-const |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2220 (c-lang-const ,kwds-lang-const))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2221 c-kwds-lang-consts)))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2222 lang-const kwd-list kwd |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2223 result-alist elem) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2224 (while kwd-list-alist |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2225 (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
|
2226 kwd-list (cdar kwd-list-alist) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2227 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
|
2228 (while kwd-list |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2229 (setq kwd (car kwd-list) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2230 kwd-list (cdr kwd-list)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2231 (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
|
2232 (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
|
2233 (unless (memq lang-const (cdr elem)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2234 (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
|
2235 result-alist)) |
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-defvar c-keywords-obarray |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2238 ;; 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
|
2239 ;; 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
|
2240 ;; lists it's a member of. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2241 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2242 ;; 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
|
2243 ;; `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
|
2244 ;; (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
|
2245 ;; 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
|
2246 ;; cc-engine: |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2247 ;; (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
|
2248 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2249 ;; 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
|
2250 ;; 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
|
2251 ;; complete. |
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 (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
|
2254 kwd lang-const-list |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2255 (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
|
2256 (while alist |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2257 (setq kwd (caar alist) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2258 lang-const-list (cdar alist) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2259 alist (cdr alist)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2260 (setplist (intern kwd obarray) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2261 ;; 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
|
2262 ;; with unintelligible errors. (XEmacs works.) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2263 ;;(mapcan (lambda (lang-const) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2264 ;; (list lang-const t)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2265 ;; lang-const-list) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2266 (apply 'nconc (mapcar (lambda (lang-const) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2267 (list lang-const t)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2268 lang-const-list)))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2269 obarray)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2270 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2271 (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
|
2272 ;; 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
|
2273 ;; 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
|
2274 t (c-make-keywords-re t |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2275 (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
|
2276 (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
|
2277 (c-lang-const c-constant-kwds)) |
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 (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
|
2280 (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
|
2281 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2282 (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
|
2283 ;; 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
|
2284 ;; 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
|
2285 ;; 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
|
2286 ;; 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
|
2287 ;; 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
|
2288 ;; 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
|
2289 ;; keyword operators isn't handled.) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2290 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2291 t (let* ((prefix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2292 (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
|
2293 '(prefix) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2294 (lambda (op) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2295 ;; Filter out the special case prefix |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2296 ;; operators that are close parens. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2297 (not (string-match "\\s)" op))))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2298 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2299 (nonkeyword-prefix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2300 (c-filter-ops prefix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2301 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2302 "\\`\\(\\s.\\|\\s(\\|\\s)\\)+\\'")) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2303 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2304 (in-or-postfix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2305 (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
|
2306 '(postfix |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2307 postfix-if-paren |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2308 left-assoc |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2309 right-assoc |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2310 right-assoc-sequence) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2311 t)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2312 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2313 (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
|
2314 in-or-postfix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2315 :test 'string-equal)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2316 (ambiguous-prefix-ops (intersection nonkeyword-prefix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2317 in-or-postfix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2318 :test 'string-equal))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2319 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2320 (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2321 "\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2322 ;; 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
|
2323 ;; 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
|
2324 (c-make-keywords-re t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2325 (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
|
2326 (set-difference prefix-ops nonkeyword-prefix-ops |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2327 :test 'string-equal))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2328 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2329 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2330 ;; Match all ambiguous operators. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2331 (c-make-keywords-re nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2332 (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
|
2333 :test 'string-equal)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2334 "\\)" |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2335 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2336 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2337 ;; Now match all other symbols. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2338 (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
|
2339 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2340 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2341 ;; 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
|
2342 ;; constants. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2343 "\\.?[0-9]" |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2344 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2345 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2346 ;; The nonambiguous operators from `prefix-ops'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2347 (c-make-keywords-re nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2348 (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
|
2349 :test 'string-equal)) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2350 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2351 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2352 ;; Match string and character literals. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2353 "\\s\"" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2354 (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
|
2355 "\\|\\s|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2356 "")))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2357 (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
|
2358 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2359 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2360 ;;; Additional constants for parser-level constructs. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2361 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2362 (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
|
2363 "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
|
2364 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
|
2365 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
|
2366 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
|
2367 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2368 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
|
2369 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
|
2370 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
|
2371 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
|
2372 `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
|
2373 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
|
2374 `c-recognize-colon-labels' is set. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2375 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2376 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
|
2377 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2378 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
|
2379 `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
|
2380 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
|
2381 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
|
2382 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
|
2383 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
|
2384 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
|
2385 many false matches are triggered. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2386 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2387 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
|
2388 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
|
2389 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
|
2390 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
|
2391 more info." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2392 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2393 ;; 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
|
2394 ;; 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
|
2395 ;; 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
|
2396 ;; begins with a declaration. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2397 t "\\([\{\}\(\);,]+\\)" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2398 java "\\([\{\}\(;,]+\\)" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2399 ;; 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
|
2400 ;; 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
|
2401 ;; that it got open paren syntax. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2402 c++ "\\([\{\}\(\);,<]+\\)" |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2403 ;; 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
|
2404 ;; 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
|
2405 ;; 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
|
2406 ;; any easily recognized characters. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2407 objc (concat "\\([\{\}\(\);,]+\\|" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2408 (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
|
2409 "\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2410 ;; 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
|
2411 ;; assignments and type casts. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2412 pike "\\([\{\}\(\)\[;,]+\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2413 (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
|
2414 'dont-doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2415 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2416 (c-lang-defconst c-decl-start-re |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2417 "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
|
2418 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
|
2419 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
|
2420 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
|
2421 constructs." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2422 t (c-lang-const c-identifier-start)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2423 (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
|
2424 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2425 (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
|
2426 ;; 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
|
2427 ;; declaration, cast or label. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2428 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2429 ;; 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
|
2430 ;; 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
|
2431 ;; 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
|
2432 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2433 ;; 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
|
2434 ;; 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
|
2435 ;; `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
|
2436 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2437 ;; 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
|
2438 ;; 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
|
2439 ;; 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
|
2440 ;; `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
|
2441 ;; 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
|
2442 ;; 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
|
2443 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
|
2444 (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
|
2445 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2446 (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
|
2447 (c-lang-const c-decl-prefix-re))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2448 (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
|
2449 (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
|
2450 'dont-doc) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2451 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2452 (c-lang-defconst c-cast-parens |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2453 ;; 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
|
2454 ;; languages without casts. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2455 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
|
2456 '(prefix) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2457 "\\`\\s\(\\'" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2458 (lambda (op) (elt op 0)))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2459 (c-lang-defvar c-cast-parens (c-lang-const c-cast-parens)) |
36920 | 2460 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2461 (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
|
2462 "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
|
2463 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
|
2464 the \"class Foo: public Bar\" part of: |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2465 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2466 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
|
2467 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2468 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
|
2469 list. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2470 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2471 '<' 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
|
2472 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
|
2473 ensure they are given paren syntax. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2474 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2475 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
|
2476 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
|
2477 \"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
|
2478 possible for good performance." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2479 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2480 ;; 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
|
2481 ;; identifiers. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2482 t (set-difference |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2483 (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
|
2484 (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
|
2485 (list (cons nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2486 (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
|
2487 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2488 t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2489 (lambda (op) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2490 (let ((pos 0) res) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2491 (while (string-match "\\(\\s.\\|\\s(\\|\\s)\\)" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2492 op pos) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2493 (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
|
2494 pos (match-end 0))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2495 res)))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2496 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2497 ;; Allow cpp operatios (where applicable). |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2498 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
|
2499 (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
|
2500 '(?#)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2501 (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
|
2502 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2503 ;; Allow ':' for inherit list starters. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2504 (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
|
2505 '(?:)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2506 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2507 ;; Allow ',' for multiple inherits. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2508 (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
|
2509 '(?,)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2510 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2511 ;; 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
|
2512 ;; initializer lists in Pike. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2513 (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
|
2514 '(?\( ?\))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2515 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2516 ;; 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
|
2517 (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
|
2518 '(?\" ?'))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2519 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2520 (c-lang-defconst c-block-prefix-charset |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2521 ;; `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
|
2522 ;; for `c-syntactic-skip-backward'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2523 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
|
2524 (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
|
2525 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2526 (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
|
2527 "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
|
2528 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
|
2529 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
|
2530 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
|
2531 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
|
2532 `c-identifier-syntax-table')." |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2533 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
|
2534 (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
|
2535 ;; 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
|
2536 "\\<\\>") |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2537 ;; 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
|
2538 ;; like "*=". |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2539 (c objc) (concat "\\(" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2540 "[*\(]" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2541 "\\|" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2542 (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
|
2543 "\\)" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2544 "\\([^=]\\|$\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2545 c++ (concat "\\(" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2546 "[*\(&]" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2547 "\\|" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2548 (concat "\\(" ; 2 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2549 ;; 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
|
2550 ;; `c-font-lock-declarators' and |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2551 ;; `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
|
2552 ;; complete name followed by ":: *". |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2553 (c-lang-const c-identifier-start) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2554 "\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2555 "\\|" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2556 (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
|
2557 "\\)" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2558 "\\([^=]\\|$\\)") |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2559 pike "\\(\\*\\)\\([^=]\\|$\\)") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2560 (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
|
2561 'dont-doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2562 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2563 (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
|
2564 "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
|
2565 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
|
2566 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
|
2567 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
|
2568 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
|
2569 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
|
2570 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
|
2571 ;; 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
|
2572 ;; function argument list parenthesis. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2573 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
|
2574 (concat "\\(\(\\|" |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2575 (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
|
2576 "\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2577 "\\(\(\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2578 (c c++ objc) (concat |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2579 "\\(" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2580 "[\)\[\(]" |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2581 (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
|
2582 (concat |
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 ;; "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
|
2585 ;; 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
|
2586 ;; are necessary to handle that. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2587 (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
|
2588 "\\>") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2589 "") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2590 "\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2591 (java idl) "\\([\[\(]\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2592 (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
|
2593 'dont-doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2594 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2595 (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
|
2596 "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
|
2597 `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
|
2598 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
|
2599 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
|
2600 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
|
2601 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
|
2602 is in effect or not. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2603 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2604 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
|
2605 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
|
2606 not \",\" or \";\"." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2607 t "{" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2608 ;; 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
|
2609 ;; 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
|
2610 ;; 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
|
2611 ;; 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
|
2612 ;; 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
|
2613 ;; 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
|
2614 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
|
2615 ;; 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
|
2616 (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
|
2617 "\\|" |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2618 (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
|
2619 (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
|
2620 ;; 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
|
2621 ;; 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
|
2622 ;; 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
|
2623 ;; 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
|
2624 ;; 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
|
2625 c++ "[{:]") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2626 (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
|
2627 (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
|
2628 'dont-doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2629 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2630 (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
|
2631 ;; 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
|
2632 ;; matches ";" and ",". |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2633 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
|
2634 "\\|[;,]")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2635 (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
|
2636 (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
|
2637 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2638 (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
|
2639 "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
|
2640 \"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
|
2641 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
|
2642 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
|
2643 is in effect or not." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2644 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2645 pike "\\([|.&]\\)\\($\\|[^|.&]\\)") |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2646 (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
|
2647 'dont-doc) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2648 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2649 (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
|
2650 "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
|
2651 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
|
2652 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
|
2653 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
|
2654 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
|
2655 is in effect or not." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2656 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2657 (c c++ objc pike) "\\(\\.\\.\\.\\)" |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2658 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
|
2659 (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
|
2660 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2661 (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
|
2662 ;; 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
|
2663 ;; 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
|
2664 ;; 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
|
2665 ;; 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
|
2666 ;; syntax. |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2667 (let* ((extra-types |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2668 (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
|
2669 (c-mode-var "font-lock-extra-types"))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2670 (regexp-strings |
67278
cf00aa89f148
Relace a `mapcan' with an "apply (n-conc (mapcar ....... ))".
Alan Mackenzie <acm@muc.de>
parents:
67252
diff
changeset
|
2671 (apply 'nconc |
cf00aa89f148
Relace a `mapcan' with an "apply (n-conc (mapcar ....... ))".
Alan Mackenzie <acm@muc.de>
parents:
67252
diff
changeset
|
2672 (mapcar (lambda (re) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2673 (when (string-match "[][.*+?^$\\]" re) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2674 (list re))) |
67278
cf00aa89f148
Relace a `mapcan' with an "apply (n-conc (mapcar ....... ))".
Alan Mackenzie <acm@muc.de>
parents:
67252
diff
changeset
|
2675 extra-types))) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2676 (plain-strings |
67278
cf00aa89f148
Relace a `mapcan' with an "apply (n-conc (mapcar ....... ))".
Alan Mackenzie <acm@muc.de>
parents:
67252
diff
changeset
|
2677 (apply 'nconc |
cf00aa89f148
Relace a `mapcan' with an "apply (n-conc (mapcar ....... ))".
Alan Mackenzie <acm@muc.de>
parents:
67252
diff
changeset
|
2678 (mapcar (lambda (re) |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2679 (unless (string-match "[][.*+?^$\\]" re) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2680 (list re))) |
67278
cf00aa89f148
Relace a `mapcan' with an "apply (n-conc (mapcar ....... ))".
Alan Mackenzie <acm@muc.de>
parents:
67252
diff
changeset
|
2681 extra-types)))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2682 (concat "\\<\\(" |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2683 (c-concat-separated |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2684 (append (list (c-make-keywords-re nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2685 (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
|
2686 plain-strings))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2687 regexp-strings) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2688 "\\|") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2689 "\\)\\>"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2690 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2691 (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
|
2692 "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
|
2693 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
|
2694 list." |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2695 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2696 pike '((?{ . ?}) (?\[ . ?\]) (?< . ?>))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2697 (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
|
2698 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2699 (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
|
2700 "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
|
2701 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2702 c t) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2703 (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
|
2704 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2705 (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
|
2706 "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
|
2707 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
|
2708 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
|
2709 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
|
2710 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
|
2711 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2712 (c c++ objc) t) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2713 (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
|
2714 (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
|
2715 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2716 (c-lang-defconst c-recognize-<>-arglists |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2717 "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
|
2718 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
|
2719 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
|
2720 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
|
2721 `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
|
2722 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
|
2723 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
|
2724 (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
|
2725 (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
|
2726 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2727 (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
|
2728 "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
|
2729 i.e. constructs like |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2730 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2731 Foo bar (gnu); |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2732 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2733 in addition to the more classic |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2734 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2735 Foo bar = gnu;" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2736 t nil |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2737 c++ t) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2738 (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
|
2739 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2740 (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
|
2741 "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
|
2742 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
|
2743 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2744 (c c++) t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2745 (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
|
2746 (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
|
2747 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2748 (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
|
2749 ;; 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
|
2750 ;; 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
|
2751 ;; 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
|
2752 ;; 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
|
2753 ;; 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
|
2754 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
|
2755 (concat "\\(" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2756 (c-lang-const c-symbol-key) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2757 "\\)" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2758 (c-lang-const c-syntactic-ws) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2759 "<"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2760 (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
|
2761 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2762 (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
|
2763 ;; 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
|
2764 ;; 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
|
2765 ;; `c-opt-<>-arglist-start'. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2766 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
|
2767 (concat "\\(" |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2768 (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
|
2769 "\\)\\|\\s\)"))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2770 (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
|
2771 (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
|
2772 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2773 (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
|
2774 ;; 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
|
2775 ;; 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
|
2776 ;; |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2777 ;; 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
|
2778 ;; 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
|
2779 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2780 c++ (concat ":?" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2781 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2782 "\\(virtual" (c-lang-const c-simple-ws) "+\\)?\\(" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2783 (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
|
2784 "\\)" (c-lang-const c-simple-ws) "+" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2785 "\\(" (c-lang-const c-symbol-key) "\\)") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2786 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
|
2787 (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
|
2788 (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
|
2789 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2790 (c-lang-defconst c-recognize-colon-labels |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2791 "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
|
2792 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
|
2793 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
|
2794 `c-opt-extra-label-key'." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2795 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2796 (c c++ objc java pike) t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2797 (c-lang-defvar c-recognize-colon-labels |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2798 (c-lang-const c-recognize-colon-labels)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2799 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2800 (c-lang-defconst c-label-prefix-re |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2801 "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
|
2802 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
|
2803 nil." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2804 t "\\([{};]+\\)") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2805 (c-lang-defvar c-label-prefix-re |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2806 (c-lang-const c-label-prefix-re)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2807 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2808 (c-lang-defconst c-nonlabel-token-key |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2809 "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
|
2810 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
|
2811 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
|
2812 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
|
2813 t (concat |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2814 ;; Don't allow string literals. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2815 "[\"']\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2816 ;; 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
|
2817 (c-make-keywords-re t |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2818 (set-difference (c-lang-const c-keywords) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2819 (append (c-lang-const c-label-kwds) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2820 (c-lang-const c-protection-kwds)) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2821 :test 'string-equal))) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2822 ;; 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
|
2823 ;; 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
|
2824 ;; work in labels. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2825 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
|
2826 (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
|
2827 |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2828 (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
|
2829 "Optional regexp matching labels. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2830 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
|
2831 `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
|
2832 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
|
2833 way." |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2834 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2835 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
|
2836 (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
|
2837 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2838 (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
|
2839 ;; 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
|
2840 ;; 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
|
2841 ;; |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2842 ;; 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
|
2843 ;; 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
|
2844 t nil |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2845 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
|
2846 "\\|" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2847 (concat "template" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2848 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2849 "<.+>" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2850 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2851 "friend" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2852 (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
|
2853 (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
|
2854 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2855 (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
|
2856 ;; 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
|
2857 ;; 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
|
2858 t nil |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2859 objc (concat |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2860 ;; 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
|
2861 "^\\s *" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2862 "\\([+-]\\)" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2863 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2864 (concat "\\(" ; Return type. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2865 "([^\)]*)" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2866 (c-lang-const c-simple-ws) "*" |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2867 "\\)?") |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2868 "\\(" (c-lang-const c-symbol-key) "\\)")) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2869 (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
|
2870 |
67252
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2871 (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
|
2872 ;; 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
|
2873 ;; used with the value `c-decl-end'. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2874 ;; |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2875 ;; `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
|
2876 ;; to make interactive refontification work better. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2877 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
|
2878 (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
|
2879 ;; `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
|
2880 ;; Objective-C. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2881 objc t) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2882 (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
|
2883 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2884 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2885 ;;; 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
|
2886 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2887 ;; 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
|
2888 ;; 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
|
2889 ;; 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
|
2890 (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
|
2891 (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
|
2892 |
78354
d80d780fd6b4
Fix problem with modes derived from CC Mode: Move macro
Alan Mackenzie <acm@muc.de>
parents:
78234
diff
changeset
|
2893 ;; 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
|
2894 ;; 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
|
2895 (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
|
2896 `(progn |
d80d780fd6b4
Fix problem with modes derived from CC Mode: Move macro
Alan Mackenzie <acm@muc.de>
parents:
78234
diff
changeset
|
2897 ,@(mapcar (lambda (init) |
d80d780fd6b4
Fix problem with modes derived from CC Mode: Move macro
Alan Mackenzie <acm@muc.de>
parents:
78234
diff
changeset
|
2898 `(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
|
2899 (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
|
2900 |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2901 (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
|
2902 "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
|
2903 for the given mode. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2904 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2905 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
|
2906 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
|
2907 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
|
2908 accomplish that conveniently." |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2909 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2910 (if (and (not load-in-progress) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2911 (boundp 'byte-compile-dest-file) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2912 (stringp byte-compile-dest-file)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2913 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2914 ;; 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
|
2915 ;; 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
|
2916 ;; `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
|
2917 ;; 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
|
2918 `(lambda () |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2919 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2920 ;; 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
|
2921 ;; 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
|
2922 (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
|
2923 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
|
2924 (c-make-emacs-variables-local) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2925 (condition-case err |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2926 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2927 (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
|
2928 (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
|
2929 (c-lang-const-expansion 'immediate)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2930 ;; `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
|
2931 ;; constant immediately in `cl-macroexpand-all' |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2932 ;; below. |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
2933 (mapcan |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
2934 (lambda (init) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
2935 `(current-var ',(car init) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
2936 ,(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
|
2937 (elt init 1)))) |
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
2938 ;; 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
|
2939 ;; 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
|
2940 ;; 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
|
2941 (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
|
2942 (cdr c-lang-variable-inits))))) |
51714
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 ;; 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
|
2945 ;; users, so it's disabled. |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2946 ;;(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
|
2947 ;; (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
|
2948 ;; "but loaded with %s - evaluating " |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2949 ;; "language constants from source") |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2950 ;; ',mode ,c-version c-version) |
04d2abb755d9
Update CC Mode to release 5.31.
Alan Mackenzie <acm@muc.de>
parents:
64699
diff
changeset
|
2951 ;; (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
|
2952 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2953 (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
|
2954 (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
|
2955 (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
|
2956 (cdr c-lang-variable-inits)))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2957 (while init |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2958 (setq current-var (caar init)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2959 (set (caar init) (eval (cadar init))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2960 (setq init (cdr init))))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2961 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2962 (error |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2963 (if current-var |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
2964 (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
|
2965 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
|
2966 (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
|
2967 (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
|
2968 (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
|
2969 ',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
|
2970 "") |
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
|
2971 err) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2972 (signal (car err) (cdr err))))))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2973 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2974 ;; 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
|
2975 ;; 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
|
2976 ;; interactively. |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2977 `(lambda () |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2978 (require 'cc-langs) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2979 (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
|
2980 (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
|
2981 (cdr c-lang-variable-inits))) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2982 current-var) |
78354
d80d780fd6b4
Fix problem with modes derived from CC Mode: Move macro
Alan Mackenzie <acm@muc.de>
parents:
78234
diff
changeset
|
2983 (c-make-emacs-variables-local) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2984 (condition-case err |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2985 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2986 (while init |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2987 (setq current-var (caar init)) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2988 (set (caar init) (eval (cadar init))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2989 (setq init (cdr init))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2990 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2991 (error |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2992 (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
|
2993 (message |
72031
2b53c13e6121
* progmodes/cc-langs.el (c-emacs-variable-inits): new variable.
Alan Mackenzie <acm@muc.de>
parents:
71754
diff
changeset
|
2994 "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
|
2995 current-var err) |
51714
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2996 (signal (car err) (cdr err))))))) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2997 )) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2998 |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
2999 (defmacro c-init-language-vars (mode) |
bc91cbf50c24
Updated CC Mode to version 5.30.
Martin Stjernholm <mast@lysator.liu.se>
parents:
50983
diff
changeset
|
3000 "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
|
3001 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
|
3002 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
|
3003 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
|
3004 `(funcall ,(c-make-init-lang-vars-fun mode))) |
36920 | 3005 |
19250 | 3006 |
36920 | 3007 (cc-provide 'cc-langs) |
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36920
diff
changeset
|
3008 |
52401 | 3009 ;;; arch-tag: 1ab57482-cfc2-4c5b-b628-3539c3098822 |
18720 | 3010 ;;; cc-langs.el ends here |