首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BNFC不解析单个函数

BNFC不解析单个函数
EN

Stack Overflow用户
提问于 2020-06-24 17:18:21
回答 1查看 17关注 0票数 0

我有以下BNFC代码:

代码语言:javascript
复制
GFDefC. GoalForm ::= Constraint ;
GFDefT. GoalForm ::= True ;
GFDefA. GoalForm ::= GoalForm "," GoalForm ;
GFDefO. GoalForm ::= GoalForm ";" GoalForm ;

ConFr. Constraint ::= Var "#" Term ;

TVar. Term ::= UnVar;
TFun. Term ::= Fun ;

FDef. Fun  ::= FunId "(" [Arg] ")" ;
ADecl. Arg ::= Term ;
separator Arg "," ;

...

但是,不会分析以下内容

fun(X)

当它解析下面的代码时

x # fun(Y)

因此,总而言之,它将函数解析为约束的一部分,而不是单独解析。它应该会同时解析这两个参数。

有谁能指出原因吗?

EN

回答 1

Stack Overflow用户

发布于 2020-07-02 10:49:04

你应该正确设置你的entrypoints

在成功解析x # fun(Y)时,我假设您已经将entrypoints设置为Constraint,并使用生成的pConstraint函数解析表达式。然后,您可以将Constraint的规则更改为

代码语言:javascript
复制
ConNoVar. Constraint ::= Term ;
ConFr.    Constraint ::= Var "#" Term ;

或者,您可以在entrypoints中添加Term并调用pTerm来解析您的函数项。

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

https://stackoverflow.com/questions/62551664

复制
相关文章

相似问题

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