首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#中的解析器和打印

C#中的解析器和打印
EN

Stack Overflow用户
提问于 2016-03-26 10:41:15
回答 1查看 739关注 0票数 0

我在C#中为一个复杂的语法实现了一个抽象语法树,然而,为了使这个问题变得简单,我将使用一个非常简单的语法。

考虑下面的语法:

代码语言:javascript
复制
rules Expr ::= Term "+" Term 
        | Term ;

rules Term ::= Ident
        | Integer ;

我使用了bnfc并生成了解析器/词法分析器,现在我可以解析一段代码并打印出解析树。现在我想把它映射到AST,并打印抽象语法树。here是我到目前为止在一个示例项目中所做的工作。

然而,目前当我测试程序时,我的AST返回为NULL。

代码语言:javascript
复制
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是空的。有C#经验的人能帮我走上正轨吗?

EN

回答 1

Stack Overflow用户

发布于 2016-03-26 13:34:47

在你的项目中,我注意到你的所有泛型访问方法最终返回相同的常量结果,而不管其他方法的主体在此之前做了什么:

代码语言:javascript
复制
return default(R);

对于引用类型的R的具体类型,这个"default(R)“返回值实际上总是null。

‘'HTH,

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36231040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档