Also try to collapse references as much as it is possible with the
current design.
Change-Id: I1de55eac2d681a36f8b77d77968c4a06d19b6fac
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
The new stuff is mostly C++11 features (closures etc.).
Also fix a number of bugs uncovered along the way.
All tests succeed now, including the examples
from the specification.
Change-Id: I9b224b0dd82ad8f5b17d5f5d1809d1dea1a7a803
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
- Fix assertion macro.
- Make parse tree smaller by getting rid of nodes that serve no purpose.
- Add all examples from the ABI spec to the auto test.
Change-Id: Id63d8330e6380bfb7d56acd1d445f7b70a1f6e70
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Now all the parsing logic as well as the stringification is in the tree
nodes.
Change-Id: Ie8222729c14c0102d94045026fc61a75cd31cc63
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
So far, we converted the mangled to the demangled representation on the
fly while parsing. Because some demangled strings look different
depending on higher-level context, awkward string manipulations were
then necessary at some later point.
The new solution is much more easily maintainable, creating a tree with
a node for every rule in the grammar first and converting the complete
tree to the demangled string later.
Change-Id: I59088df259611d7cd78af47b81b6a21d628a787f
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
- Correctly decode conversion operators and add test cases.
- Adapt to change in the specification regarding template parameter
packs.
- Make #ifdef'ed code compile.
Change-Id: Ifea1408d08172f9aeccd5e64a1e4818cd632a0d0
Reviewed-by: hjk <qthjk@ovi.com>