Je suis en train d'implémenter un AST (Abstract Syntax Tree) en C# pour une grammaire complexe, cependant, pour simplifier cette question, je vais utiliser une grammaire très simple.Analyseur en C# et impression AST
Tenir compte cette grammaire:
rules Expr ::= Term "+" Term
| Term ;
rules Term ::= Ident
| Integer ;
Je l'ai utilisé bnfc et a généré l'analyseur/lexer et obtenu au point que je peux analyser un morceau de code et peut imprimer l'arbre d'analyse syntaxique. Maintenant, je veux le mapper à AST, et imprimer l'arbre de syntaxe abstraite. here est ce que j'ai fait jusqu'à présent dans un exemple de projet.
Cependant, actuellement, lorsque je teste le programme, mon AST revient comme NULL.
var astGen = new gplex.VisitSkeleton.ExprVisitor<Expr1, gplex.Absyn.Expr1>();
var ast = astGen.Visit((gplex.Absyn.Expr1)parse_tree, (gplex.Absyn.Expr1)parse_tree);
Ici, ast est nul. Est-ce que quelqu'un avec de l'expérience en C# peut m'aider à aller de l'avant avec ça?
Merci @YSharp ... aidez-moi à comprendre. Que ferais-je revenir alors? – 2D3D4D