gpt4 book ai didi

ANTLR,如何在ANTLR中转换BNF、EBNF数据?

转载 作者:行者123 更新时间:2023-12-05 00:41:09 25 4
gpt4 key购买 nike

我必须生成 CSV 数据的解析器。不知何故,我设法为 CSV 数据编写了 BNF、EBNF,但我不知道如何将其转换为 ANTLR 语法(这是一个解析器生成器)。例如,在 EBNF 中我们这样写:

[{header entry}newline]newline

但是当我在 ANTLR 中编写它以生成解析器时,它给出了错误并且不带括号。我不是 ANTLR 专家,有人可以帮忙吗?

最佳答案

hi , i have to generate parser of CSV data ...



在我知道的大多数语言中,已经存在一个不错的 3rd 方 CSV 解析器。因此,您很有可能正在重新发明轮子。

For Example in EBNF we wrire [{header entry}newline]newline



ANTLR 中的等效项如下所示:
((header entry)* newline)? newline

换句话说:
                 | (E)BNF | ANTLR
-----------------+--------+------
'a' zero or once | [a] | a?
'a' zero or more | {a} | a*
'a' once or more | a {a} | a+

请注意,您可以使用括号对规则进行分组(子规则就是它们的名称):
'a' 'b'+

匹配项: ab , abb , abbb , ... , 尽管:
('a' 'b')+

匹配项: ab , abab , ababab , ...

关于ANTLR,如何在ANTLR中转换BNF、EBNF数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3230563/

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