On 04/15/2017 09:25 AM, Iain Buclaw wrote:
This patch removes `dlang_parse_symbol', and replaces it with
`dlang_parse_qualified' and `dlang_parse_mangle'.  All callers have
been updated to reflect as to whether we expect either a `MangleName'
or `QualifiedName' to be the next token we encounter, which matches
many clarifications that have been made in the specification.

This also removes the special case of matching `V' - or encoded
extern(Pascal) functions - and instead uses a more generic approach in
that if a `CallConvention' symbol was encountered whilst consuming
`QualifiedName', it*must*  be followed by another `QualifiedName',
otherwise we've reached the end of the matched rule.  It still defeats
the purpose of the aiming to having a context-free grammar, but at
least it's a little less evil than before.

---


05-d-demangle-qualified-name.patch


commit 8701a7e99b9146719881adcf019ecbebe836b755
Author: Iain Buclaw<ibuc...@gdcproject.org>
Date:   Sat Apr 15 11:54:27 2017 +0200

     libiberty/ChangeLog:
2017-04-15 Iain Buclaw<ibuc...@gdcproject.org> * d-demangle.c (dlang_parse_symbol): Remove function.
        (dlang_parse_qualified): New function.
        (dlang_parse_mangle): New function.
        (dlang_type): Update to call dlang_parse_qualified.
        (dlang_identifier): Update to call either dlang_parse_qualified or
        dlang_parse_mangle.
        (dlang_type_modifier_p): Remove function.
        (dlang_call_convention_p): Don't allow for type modifiers in mangle.
        (dlang_template_args): Update to call dlang_identifier.
        (dlang_demangle): Update to call dlang_parse_mangle.
        * testsuite/d-demangle-expected: Add tests.
OK for the trunk.

What's the state of patch 4/7? I got the distinct impression you wanted to update & repost that patch.
Jeff

Reply via email to