]> git.eshelyaron.com Git - emacs.git/commitdiff
Add three C++20 coroutine keywords, co_await, co_yield, and co_return
authorCarl Lei <me@xecycle.info>
Sun, 24 May 2020 11:52:24 +0000 (11:52 +0000)
committerAlan Mackenzie <acm@muc.de>
Sun, 24 May 2020 11:52:24 +0000 (11:52 +0000)
* lisp/progmodes/cc-langs.el (c-operators): Add co_await and co_yield to the
C++ value of "Exception" keywords.
(c-return-kwds): Create a C++ value containing co_return.
(c-simple-stmt-kwds): Add co_return to the C++ value.

Copyright-paperwork-exempt: yes.

lisp/progmodes/cc-langs.el

index 17ffea59ff0d453522497ac5fb173cd75d7b723d..2369cb034288b0f4ab22118e3f7f5676c084f443 100644 (file)
@@ -1174,7 +1174,7 @@ since CC Mode treats every identifier as an expression."
 
       ;; Exception.
       ,@(when (c-major-mode-is 'c++-mode)
-         '((prefix "throw")))
+         '((prefix "throw" "co_await" "co_yield")))
 
       ;; Sequence.
       (left-assoc ","))
@@ -2040,6 +2040,7 @@ the appropriate place for that."
 (c-lang-defconst c-return-kwds
   "Keywords which return a value to the calling function."
   t '("return")
+  c++ '("return" "co_return")
   idl nil)
 
 (c-lang-defconst c-return-key
@@ -2822,6 +2823,7 @@ Keywords here should also be in `c-block-stmt-1-kwds'."
 (c-lang-defconst c-simple-stmt-kwds
   "Statement keywords followed by an expression or nothing."
   t    '("break" "continue" "goto" "return")
+  c++    '("break" "continue" "goto" "return" "co_return")
   objc '("break" "continue" "goto" "return" "@throw")
   ;; Note: `goto' is not valid in Java, but the keyword is still reserved.
   java '("break" "continue" "goto" "return" "throw")