gpt4 book ai didi

c - BNF 文法中的递归

转载 作者:太空狗 更新时间:2023-10-29 15:38:31 27 4
gpt4 key购买 nike

好吧,我不确定我应该如何使用递归下降解析来编写一个函数来解析如下语法。事实上,我不确定我是否做对了......

BNF:

 A : B | A '!'
B : '[' ']'

伪代码:

f()
{
if(tok is B)
parse_b();
return somethingB
else if(????) how will I know if it's start of A or I don't need to?
x = f();
parse_c();
return somethingA
}

我正在这样做(没有检查以确定它是否是 A,但我觉得它有问题):

f()
{
if(tok is B)
parse_b();
return somethingB
else
x = f();
parse_c();
return somethingA
}

最佳答案

请参阅我在 details on how to build a recursive descent parser 上对另一个类似问题的回答.

特别是它解决了解析器的结构,以及如何通过检查语法规则(包括处理列表)来推导出它。

关于c - BNF 文法中的递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24275952/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com