[francis maes] Synopsis

2009/1/28 Akim Demaille <Akim.Demaille@lrde.epita.fr>:
Ca fait (entre autre) le parsing, l'anayse de scope / symbols, l'analyse de types et le calcul des expressions constantes.
Good news, I did not even remember Synopsis did all that.
Le parseur est (etrangement) lisible, et c'est facile d'etendre la grammaire (nouveaux mots clés, nouvelles constructions).
AspectC++ (PUMA) is maybe better on that.
L'analyse et la modification de l'AST se passe bien. ( => ideal pour faire du source-to-source ) C'est maintenu (dernière release: décembre 2008).
The directory of the parser, 9 months.
Pour les autres languages, il y avait des candidats intéressant, mais j'ai peur de tomber sur un truc soit trop peu connu, soit trop lent, et puis, il faut l'avouer j'aime bien le C++ :)
GCC < 3.4 - Bison GCC >= 3.4 - Recursive descendant, bad tree for rewriting GCCXML - No definition on the tree, just for documentation OpenWatcom - Hacked Yacc. Not standard. TXL - Nearly a joke OpenC++ - Not correct Elsa - Syntax definition is modular (GLR), but is dependent on a monolithic semantic pass (9kloc in one file). Puma (AspectC++) - The only one apart from Transformer showing a real example of extension. Semantic Design - Commercial, they will handle the part of the standard you need only if you pay for it. EDG C++ - Commercial. Recursive-descendant. Eclipse CDT - Recursive-descendant in Java. FOG - Yacc. Not correct. Synopsis - You know it. Ultimate++ - They claim to have a parser. Do not look for it, there is none. Keystone - Flex, BtYacc, TreeCC. Not tested. ANTLR C++ front-end - No disambiguation. On the website, it is said there is only this to do... of course it is thousands time harder that just rewriting the syntax definition. KDevelop C++ parser - Recursive-descendant. Clang - Recursive-descendant, far from being finished. No namespace for example. Just for testing for the moment. Transformers - We still need hands! I hope it helped. -- Valentin David valentin.david@gmail.com
participants (2)
-
Akim Demaille
-
Valentin David