summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmin Ronacher <armin.ronacher@active-4.com>2011-09-22 10:54:16 +0200
committerArmin Ronacher <armin.ronacher@active-4.com>2011-09-22 10:54:16 +0200
commitf45fd6f402626c68f56f161500ea47b8bd4415a3 (patch)
tree1e24f79f2f864a1f8392ae73eee5374d52861cd4
parenta005a0dc9696f56766259b7161a3ed3a12d7cd28 (diff)
downloadsphinx-f45fd6f402626c68f56f161500ea47b8bd4415a3.tar.gz
Small refactoring for how modifiers are parsed in the C++ domain.
-rw-r--r--sphinx/domains/cpp.py21
1 files changed, 10 insertions, 11 deletions
diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py
index 372decdc..d6a1055e 100644
--- a/sphinx/domains/cpp.py
+++ b/sphinx/domains/cpp.py
@@ -525,6 +525,12 @@ class DefinitionParser(object):
def skip_ws(self):
return self.match(_whitespace_re)
+ def skip_word_and_ws(self, word):
+ if self.skip_word(word):
+ self.skip_ws()
+ return True
+ return False
+
@property
def eof(self):
return self.pos >= self.end
@@ -765,9 +771,7 @@ class DefinitionParser(object):
args.append(ArgumentDefExpr(argtype, argname, default))
self.skip_ws()
- const = self.skip_word('const')
- if const:
- self.skip_ws()
+ const = self.skip_word_and_ws('const')
if self.skip_string('='):
self.skip_ws()
if not (self.skip_string('0') or \
@@ -782,7 +786,7 @@ class DefinitionParser(object):
return args, const, pure_virtual
def _parse_visibility_static(self):
- visibility = 'public'
+ visibility = 'public'
if self.match(_visibility_re):
visibility = self.matched_text
static = self.skip_word('static')
@@ -815,13 +819,8 @@ class DefinitionParser(object):
def parse_function(self):
visibility, static = self._parse_visibility_static()
- def _read_word(x):
- if self.skip_word(x):
- self.skip_ws()
- return True
- return False
- explicit = _read_word('explicit')
- constexpr = _read_word('constexpr')
+ explicit = self.skip_word_and_ws('explicit')
+ constexpr = self.skip_word_and_ws('constexpr')
rv = self._parse_type()
self.skip_ws()