diff options
| author | Martin Stjernholm <mast@lysator.liu.se> | 2003-08-26 11:52:40 +0000 | 
|---|---|---|
| committer | Martin Stjernholm <mast@lysator.liu.se> | 2003-08-26 11:52:40 +0000 | 
| commit | 846f50401494cce1217180bea16d71056308cfdc (patch) | |
| tree | 44910e406e72e5288868f019d2d0f2e76ddc6fa6 /lisp/progmodes/cc-langs.el | |
| parent | a02a0f3d299d7b5a9589a315c11e41722a954351 (diff) | |
| download | emacs-846f50401494cce1217180bea16d71056308cfdc.tar.gz | |
(c-lineup-math): Don't align the operators "!=", "<=" and ">=" as assignment
operators.
(c-assignment-operators): New language constant that only contains the
assignment operators.
(c-assignment-op-regexp): New language variable used by c-lineup-math'.
Diffstat (limited to 'lisp/progmodes/cc-langs.el')
| -rw-r--r-- | lisp/progmodes/cc-langs.el | 34 | 
1 files changed, 28 insertions, 6 deletions
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index 0a55be956bb..bee72dde46c 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el @@ -544,6 +544,15 @@ submatch surrounds the directive name."  	   '("defined"))    pike '("defined" "efun" "constant")) +(c-lang-defconst c-assignment-operators +  "List of all assignment operators." +  t    '("=" "*=" "/=" "%=" "+=" "-=" ">>=" "<<=" "&=" "^=" "|=") +  java (append (c-lang-const c-assignment-operators) +	       '(">>>=")) +  c++  (append (c-lang-const c-assignment-operators) +	       '("and_eq" "or_eq" "xor_eq")) +  idl  nil) +  (c-lang-defconst c-operators    "List describing all operators, along with their precedence and  associativity.  The order in the list corresponds to the precedence of @@ -686,11 +695,7 @@ since CC Mode treats every identifier as an expression."        (right-assoc-sequence "?" ":")        ;; Assignment. -      (right-assoc "=" "*=" "/=" "%=" "+=" "-=" ">>=" "<<=" "&=" "^=" "|=" -		   ,@(when (c-major-mode-is 'java-mode) -		       '(">>>=")) -		   ,@(when (c-major-mode-is 'c++-mode) -		       '("and_eq" "or_eq" "xor_eq"))) +      (right-assoc ,@(c-lang-const c-assignment-operators))        ;; Exception.        ,@(when (c-major-mode-is 'c++-mode) @@ -788,6 +793,23 @@ operators."  (c-lang-defvar c-nonsymbol-token-regexp    (c-lang-const c-nonsymbol-token-regexp)) +(c-lang-defconst c-assignment-op-regexp +  ;; Regexp matching all assignment operators and only them.  The +  ;; beginning of the first submatch is used to detect the end of the +  ;; token, along with the end of the whole match. +  t (if (c-lang-const c-assignment-operators) +	(concat +	 ;; Need special case for "=" since it's a prefix of "==". +	 "=\\([^=]\\|$\\)" +	 "\\|" +	 (c-make-keywords-re nil +	   (set-difference (c-lang-const c-assignment-operators) +			   '("=") +			   :test 'string-equal))) +      "\\<\\>")) +(c-lang-defvar c-assignment-op-regexp +  (c-lang-const c-assignment-op-regexp)) +  (c-lang-defconst c-<-op-cont-regexp    ;; Regexp matching the second and subsequent characters of all    ;; multicharacter tokens that begin with "<". @@ -1441,7 +1463,7 @@ assumed to be set if this isn't nil."  (c-lang-defconst c-opt-<>-sexp-key    ;; Adorned regexp matching keywords that can be followed by an angle -  ;; bracket sexp. +  ;; bracket sexp.  Always set when `c-recognize-<>-arglists' is.    t (if (c-lang-const c-recognize-<>-arglists)  	(c-make-keywords-re t (c-lang-const c-<>-sexp-kwds))))  (c-lang-defvar c-opt-<>-sexp-key (c-lang-const c-opt-<>-sexp-key))  | 
