diff options
author | Armin Ronacher <armin.ronacher@active-4.com> | 2011-09-22 11:15:46 +0200 |
---|---|---|
committer | Armin Ronacher <armin.ronacher@active-4.com> | 2011-09-22 11:15:46 +0200 |
commit | e18d423f0adac717d8e6a8d6ed9fad5bca7f0933 (patch) | |
tree | f39a3e9c8b9ca9a9dd311a803284e9875330076a | |
parent | e3c56cb286cbfb52e6d6186ddefde3776a3e2589 (diff) | |
download | sphinx-e18d423f0adac717d8e6a8d6ed9fad5bca7f0933.tar.gz |
Added support for noexcept specifiers
-rw-r--r-- | sphinx/domains/cpp.py | 8 | ||||
-rw-r--r-- | tests/test_cpp_domain.py | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py index 9ec70f53..ecae79f6 100644 --- a/sphinx/domains/cpp.py +++ b/sphinx/domains/cpp.py @@ -426,13 +426,14 @@ class MemberObjDefExpr(NamedDefExpr): class FuncDefExpr(NamedDefExpr): def __init__(self, name, visibility, static, explicit, constexpr, rv, - signature, const, pure_virtual): + signature, const, noexcept, pure_virtual): NamedDefExpr.__init__(self, name, visibility, static) self.rv = rv self.signature = signature self.explicit = explicit self.constexpr = constexpr self.const = const + self.noexcept = noexcept self.pure_virtual = pure_virtual def get_id(self): @@ -456,6 +457,8 @@ class FuncDefExpr(NamedDefExpr): map(unicode, self.signature)))) if self.const: buf.append(u'const') + if self.noexcept: + buf.append(u'noexcept') if self.pure_virtual: buf.append(u'= 0') return u' '.join(buf) @@ -776,6 +779,7 @@ class DefinitionParser(object): args.append(ArgumentDefExpr(argtype, argname, default)) self.skip_ws() const = self.skip_word_and_ws('const') + noexcept = self.skip_word_and_ws('noexcept') if self.skip_string('='): self.skip_ws() if not (self.skip_string('0') or \ @@ -787,7 +791,7 @@ class DefinitionParser(object): pure_virtual = True else: pure_virtual = False - return args, const, pure_virtual + return args, const, noexcept, pure_virtual def _parse_visibility_static(self): visibility = 'public' diff --git a/tests/test_cpp_domain.py b/tests/test_cpp_domain.py index a4e80510..61ad91e7 100644 --- a/tests/test_cpp_domain.py +++ b/tests/test_cpp_domain.py @@ -54,6 +54,9 @@ def test_type_definitions(): x = 'constexpr int get_value()' assert unicode(parse('function', x)) == x + x = 'int get_value() const noexcept' + assert unicode(parse('function', x)) == x + def test_operators(): x = parse('function', 'void operator new [ ] ()') |