It was much easier to get Mercurial working at my company than I would
have thought!

So I made:

  https://bitbucket.org/michaeljones/sphinx

With a couple of fixes. I sent a pull request but I'm not sure it
worked as it said "Sending to 0 people"

Cheers,
Michael


On Thu, Nov 18, 2010 at 7:59 AM, Michael Jones <m.pricejo...@gmail.com> wrote:
> Hi,
>
> I think that if I use the cpp domain function (or member) directive to
> match a class destructor like:
>
>   .. cpp:function:: mynamespace::MyClass::~MyClass()
>
> or
>
>   .. cpp:member:: mynamespace::MyClass::~MyClass()
>
> I get an error like:
>
>   /path/to/simpletest/source/index.rst:26: WARNING: Invalid
> definition: expected name [error at 22]
>  mynamespace::MyClass::~MyClass()
>
> My I might be doing it all wrong, but I think this is because of the
> following regex:
>
> http://bitbucket.org/birkenfeld/sphinx/src/d2f55686ba48/sphinx/domains/cpp.py#cl-26
>
> which reads:
>
>  _identifier_re = re.compile(r'\b(~?[a-zA-Z_][a-zA-Z0-9_]*)\b')
>
> which tries to optionally match the "~" at the start of a word, but
> when there is a "~" the "\b" is no longer at the start of a word
> boundary, as words are only [a-zA-Z0-9_], which is why I think it
> fails for me. The following python sessions shows an investigation and
> possible solution.
>
>>>> import re
>>>> _identifier_re = re.compile(r'\b(~?[a-zA-Z_][a-zA-Z0-9_]*)\b')
>>>> function = "MyClass::function"
>>>> constructor = "MyClass::MyClass"
>>>> destructor = "MyClass::~MyClass"
>>>> print function[9]
> f
>>>> print constructor[9]
> M
>>>> print destructor[9]
> ~
>>>> _identifier_re.match( function, 9 ).group(1)
> 'function'
>>>> _identifier_re.match( constructor, 9 ).group(1)
> 'MyClass'
>>>> _identifier_re.match( destructor, 9 ).group(1)
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
> AttributeError: 'NoneType' object has no attribute 'group'
>>>> new_identifier_re = re.compile(r'(~?\b[a-zA-Z_][a-zA-Z0-9_]*)\b')
>>>> new_identifier_re.match( function, 9 )
> <_sre.SRE_Match object at 0x7ffcb18902d8>
>>>> new_identifier_re.match( function, 9 ).group(1)
> 'function'
>>>> new_identifier_re.match( constructor, 9 ).group(1)
> 'MyClass'
>>>> new_identifier_re.match( destructor, 9 ).group(1)
> '~MyClass'
>
> Not confident enough with regexes to know if that is the best
> solution, but hopefully worth considering.
>
> Sorry to not fork and patch on bitbucket but my main computer access
> is behind a company proxy and I'm not sure how to setup hg around
> that.
>
> Cheers,
> Michael
>

-- 
You received this message because you are subscribed to the Google Groups 
"sphinx-dev" group.
To post to this group, send email to sphinx-...@googlegroups.com.
To unsubscribe from this group, send email to 
sphinx-dev+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sphinx-dev?hl=en.

Reply via email to