gpt4 book ai didi

c++ - JSON 词法分析器应该贪婪吗?

转载 作者:行者123 更新时间:2023-11-30 01:33:21 25 4
gpt4 key购买 nike

我正在用 C++ 构建一个玩具 JSON 解析器,只是为了学习经验。
在构建词法分析器时,我遇到了一个难题:词法分析器应该是贪婪的吗?如果是这样,这是在哪里定义的?我在 JSON 中都找不到任何指令或 ECMA-404 .

特别是,在尝试标记以下内容(无效数字)时:
0.x123

我的词法分析器是否应该尝试将其解析为无效数字“0.x123”(贪婪行为)或无效数字“0.x”后跟有效数字“123”(但最终将其解析为无效序列代币)?

此外,在对字符串进行分词时,词法分析器是否应该负责检查字符串是否有效(例如,如果反斜杠后仅跟允许的转义字符),还是我应该在不同的语义分析步骤中检查此约束?我想这更像是一种架构偏好,但我很好奇您的意见。

最佳答案

无效就是无效。如果您无法解析它,请尽早退出并引发错误。

这里不需要贪心,因为您只会浪费时间处理对情况影响为零的数据。

关于c++ - JSON 词法分析器应该贪婪吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58632884/

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