Add the switch statement to AWK Mode.
This commit is contained in:
parent
13d49cbb26
commit
898169a2d8
3 changed files with 18 additions and 8 deletions
|
@ -1,5 +1,15 @@
|
|||
2011-12-13 Alan Mackenzie <acm@muc.de>
|
||||
|
||||
Add the switch statement to AWK Mode.
|
||||
|
||||
* progmodes/cc-awk (awk-font-lock-keywords): Add "switch", "case",
|
||||
"default" to the keywords regexp.
|
||||
|
||||
* progmodes/cc-langs (c-label-kwds): Let AWK take the same
|
||||
expression as the rest.
|
||||
(c-nonlabel-token-key): Allow string literals for AWK. Refactor
|
||||
for the other modes.
|
||||
|
||||
Large brace-block initialisation makes CC Mode slow: Fix.
|
||||
Tidy up and accelerate c-in-literal, etc. by using the
|
||||
c-parse-state
|
||||
|
|
|
@ -894,9 +894,9 @@ std\\(err\\|in\\|out\\)\\|user\\)\\)\\>\
|
|||
;; Keywords.
|
||||
(concat "\\<"
|
||||
(regexp-opt
|
||||
'("BEGIN" "END" "break" "continue" "delete" "do" "else"
|
||||
"exit" "for" "getline" "if" "in" "next" "nextfile"
|
||||
"return" "while")
|
||||
'("BEGIN" "END" "break" "case" "continue" "default" "delete"
|
||||
"do" "else" "exit" "for" "getline" "if" "in" "next"
|
||||
"nextfile" "return" "switch" "while")
|
||||
t) "\\>")
|
||||
|
||||
;; Builtins.
|
||||
|
|
|
@ -2242,8 +2242,7 @@ This construct is \"<keyword> <expression> :\"."
|
|||
|
||||
(c-lang-defconst c-label-kwds
|
||||
"Keywords introducing colon terminated labels in blocks."
|
||||
t '("case" "default")
|
||||
awk nil)
|
||||
t '("case" "default"))
|
||||
|
||||
(c-lang-defconst c-label-kwds-regexp
|
||||
;; Adorned regexp matching any keyword that introduces a label.
|
||||
|
@ -2998,18 +2997,19 @@ neither in a statement nor in a declaration context. The regexp is
|
|||
tested at the beginning of every sexp in a suspected label,
|
||||
i.e. before \":\". Only used if `c-recognize-colon-labels' is set."
|
||||
t (concat
|
||||
;; Don't allow string literals.
|
||||
"\"\\|"
|
||||
;; All keywords except `c-label-kwds' and `c-protection-kwds'.
|
||||
(c-make-keywords-re t
|
||||
(set-difference (c-lang-const c-keywords)
|
||||
(append (c-lang-const c-label-kwds)
|
||||
(c-lang-const c-protection-kwds))
|
||||
:test 'string-equal)))
|
||||
;; Don't allow string literals, except in AWK. Character constants are OK.
|
||||
(c objc java pike idl) (concat "\"\\|"
|
||||
(c-lang-const c-nonlabel-token-key))
|
||||
;; Also check for open parens in C++, to catch member init lists in
|
||||
;; constructors. We normally allow it so that macros with arguments
|
||||
;; work in labels.
|
||||
c++ (concat "\\s\(\\|" (c-lang-const c-nonlabel-token-key)))
|
||||
c++ (concat "\\s\(\\|\"\\|" (c-lang-const c-nonlabel-token-key)))
|
||||
(c-lang-defvar c-nonlabel-token-key (c-lang-const c-nonlabel-token-key))
|
||||
|
||||
(c-lang-defconst c-nonlabel-token-2-key
|
||||
|
|
Loading…
Add table
Reference in a new issue