Есть много вопросов о SO по поводу искажения имен и разбора по отношению к ABI , используемым gcc
и clang
. Многие из вопросов, связанных с устранением неполадок, связаны с попыткой получить семантику , встроенную в грамматику искажения, как в «Извлечение класса из разграниченного символа» . Повсюду решения основаны на эвристике, которая плохо обобщается.
Что меня интересует, так это надежный подход к устранению следующих проблем:
- Точно маркирует искаженное имя;
- Правильно ассоциирует семантику C ++ с каждым токеном;
- Разве не зависит от знания чего-либо о библиотеке, из которой извлечено искаженное имя; и
- Отображает полученный AST для удобства использования другими утилитами (например, YAML, JSON).
Мы знаем, # 1- # 3 можно выполнить, потому что LLVM реализует его . У кого-нибудь есть линия на полный набор инструментов для # 4?