0
複雑な文法のためにC#でAST(抽象構文木)を実装していますが、この質問を簡単にするために、私は非常に単純な文法を使用します。C#でのパーサーとASTの印刷
はこの文法を考えてみましょう:
rules Expr ::= Term "+" Term
| Term ;
rules Term ::= Ident
| Integer ;
私はbnfcを使用してパーサ/レクサを生成し、私はコードの一部を解析することができますし、解析木を印刷することができますポイントになってきました。今度はそれをASTにマップし、抽象構文木を印刷したいと思います。 hereはこれまでサンプルプロジェクトで行ってきたことです。
現在、私はプログラムをテストすると、私のASTは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);
ここで、astはnullである。 C#での経験を持つ人がこれを使って進んでいくことができますか?の具体的なタイプの
return default(R);
:あなたのプロジェクトで
ありがとうございました...ご理解ください。私は何を返しますか? – 2D3D4D