gpt4 book ai didi

c - 如何区分 '-' 运算符和分词器的负数

转载 作者:太空狗 更新时间:2023-10-29 17:19:39 25 4
gpt4 key购买 nike

我正在创建一个中缀表达式解析器,因此我必须创建一个分词器。它运行良好,除了一件事:我现在不知道如何区分负数和“-”运算符。

例如,如果我有:

23 / -23

标记应该是23/-23,但是如果我有这样的表达式

23-22

那么标记应该是23-22

我找到了一个肮脏的解决方法,如果我遇到一个“-”后跟一个数字,我会查看前一个字符,如果这个字符是数字或 ')',我会将“-”视为运算符而不是一个数字。除了有点丑之外,它不适用于像

这样的表达式
--56

从哪里得到以下标记:--56 从哪里得到 --56

有什么建议吗?

最佳答案

在第一个示例中,标记应为 23/-23

然后解决方案是根据关联性和优先级规则评估标记。 - 不能绑定(bind)到 / 但它可以绑定(bind)到 23,例如。

如果遇到--56,则拆分为-,-,56,规则取关心问题。不需要特殊情况。

关于c - 如何区分 '-' 运算符和分词器的负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26529711/

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