gpt4 book ai didi

grammar - 使用一元 + 和 - 的算术表达式的明确语法

转载 作者:行者123 更新时间:2023-12-02 10:46:36 26 4
gpt4 key购买 nike

我刚刚开始自学《编译器设计》的龙书。我正在研究一个问题,要求为包含二进制 +、-、*、/和一元 +、- 的表达式设计语法

我想出了以下内容

E -> E+T | E-T | T
T -> T*P | T/P | P
P -> +S | -S | S
S -> id | constant | (E)

但是,它有一个明显的缺陷。根据这个语法,表达式像

1--3

是有效的,这在我所知道的所有编程语言中都是一个错误。不过,像这样的表达方式

1+-+3
and
1- -3

必须有效。如何设计这样的语法呢?

最佳答案

我相信您的问题在于标记化。您将 1--3 标识为错误,因为您认为它应该解析为 1 --3 而不是 1 - -3,后者是完全有效的。所以我认为你的问题出现是因为当你标记你得到的字符串时:

['1', '-', '-' , '3']

而不是:

['1', '--', '3']

关于grammar - 使用一元 + 和 - 的算术表达式的明确语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6697282/

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