mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2026-10-14 09:22:11 -05:00
C++, document base class grammar, and cleanup.
This commit is contained in:
1 parent
18c9872676
commit
bf25b48d78
2 files changed
+13
-11
No files matched your search
@@ -66,7 +66,7 @@ Bugs fixed
|
||||
transforming.
|
||||
* C++, fix parsing of 'signed char' and 'unsigned char' as types.
|
||||
* C++, add missing support for 'friend' functions.
|
||||
* C++, add support for virtual bases.
|
||||
* C++, add support for virtual bases (thanks to Rapptz).
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
+12
-10
@@ -209,11 +209,16 @@ from sphinx.util.docfields import Field, GroupedField
|
||||
|
||||
class_object:
|
||||
goal: a class declaration, but with specification of a base class
|
||||
TODO: what about templates? for now: skip
|
||||
grammar:
|
||||
nested-name
|
||||
| nested-name ":"
|
||||
'comma-separated list of nested-name optionally with visibility'
|
||||
| nested-name ":" base-specifier-list
|
||||
base-specifier-list ->
|
||||
base-specifier
|
||||
| base-specifier-list, base-specifier
|
||||
base-specifier ->
|
||||
base-type-specifier
|
||||
| "virtual" access-spe"cifier[opt] base-type-specifier
|
||||
| access-specifier[opt] "virtual"[opt] base-type-specifier
|
||||
Can start with a templateDeclPrefix.
|
||||
|
||||
enum_object:
|
||||
@@ -3011,17 +3016,14 @@ class DefinitionParser(object):
|
||||
if self.skip_string(':'):
|
||||
while 1:
|
||||
self.skip_ws()
|
||||
virtual = False
|
||||
if self.skip_string('virtual'):
|
||||
virtual = True
|
||||
self.skip_ws()
|
||||
visibility = 'private'
|
||||
virtual = False
|
||||
if self.skip_word_and_ws('virtual'):
|
||||
virtual = True
|
||||
if self.match(_visibility_re):
|
||||
visibility = self.matched_text
|
||||
self.skip_ws()
|
||||
if self.skip_string('virtual'):
|
||||
if virtual:
|
||||
self.fail('Duplicate virtual keyword found')
|
||||
if not virtual and self.skip_word_and_ws('virtual'):
|
||||
virtual = True
|
||||
baseName = self._parse_nested_name()
|
||||
bases.append(ASTBaseClass(baseName, visibility, virtual))
|
||||
|
||||
Reference in new issue
Block a user