有没有办法让LARK将错误的语法解释为纯文本?

问题描述 投票:0回答:1

我想创建(只是为了好玩)一个基于 LARK 的自定义 HTML 解析器。我希望它像浏览器中的解析器一样宽容,所以我为字符串定义了一个包罗万象的终端。我唯一的问题是,即使我已经定义了

STRING: /.+/

然后将其作为

start
的选项,它会错误地说,例如处理规则“STRING”时,
{
尚未关闭,或者处理规则“STRING”时遇到未终止的字符串文字。
它总是说处理规则“STRING”时发生错误,这告诉我 LARK 意识到它应该将它所看到的内容解释为“STRING”,但不知何故仍然出错。

将加号放在正则表达式的外部不会以任何方式改变行为。

html python-3.x parsing lark
1个回答
0
投票

我刚刚在我的变压器中发现了问题。
语法正确地将其捕获为“STRING”,但随后我的转换器只是对其进行

eval()
解释转义序列并删除引号。因为 Python 的
eval()
遵循 Python 的而不是我的语法,所以它引发了错误。在变压器中以不同的方式处理字符串可以消除错误。

© www.soinside.com 2019 - 2024. All rights reserved.