使用后缀语言进行前瞻

时间:2015-11-18 14:17:41

标签: c++ parsing

我们说我有像

这样的后缀语言
3 2 result +      // equivalent to result = 3 + 2
result 1 result + // equivalent to ++result

我应该如何为递归下降解析器实现前瞻(我在C ++中这样做)?

我不确定如何设计这样的解析算法,因为我无法从第一个令牌中推断出指令类型

1 个答案:

答案 0 :(得分:1)

我会说你根本不需要任何前瞻,只需要当前的代币。

将当前令牌推送到堆栈,当您到达行尾(可能是它自己的令牌)时,然后查看堆栈顶部以查看操作是什么(当然从堆栈)。然后弹出操作所需的操作数。如果在此之后堆栈中有更多条目,或者如果操作数不足,则表示您有错误。