J'essaye de concevoir un compilateur pour un langage comme C# dans ANTLR. Mais je ne comprends pas parfaitement le bon ordre des étapes à suivre.ANTLR, ordre des étapes
Voilà comment je vois:
- D'abord, je définis les jetons Lexer
- ensuite les règles de grammaire (avec des règles de réécriture pour construire AST) avec des actions qui rassemblent des informations sur les déclarations de classes et méthodes (pour que je peut résoudre les invocations de méthode à l'étape suivante)
- Enfin, je crée une "grammaire arborescente" qui traverse l'arborescence AST et appelle des règles qui génèrent les opcodes du langage machine (virtuel).
Est-ce correct? La deuxième étape consiste-t-elle à lire les déclarations des méthodes et à construire AST?
Comment puis-je résoudre les déclarations de méthodes surchargées sans construction AST? (backpatching?)