如何在其他选项之前允许可选的换行符?

问题描述

我正在编写一个递归下降解析器,该解析器工作正常,并且支持if/else语句。但是,我想允许程序员在else之前加上换行符,即:

if x print("true!")
else print("false")

我尝试从迭代器中弹出所有换行符,将下一个非换行符放在顶部,然后检查它是否为else。这是可行的,但是如果下一个标记不是else,则会出现语法错误,因为程序在读取表达式后会跳过换行符。因为我已经跳过了换行符,所以失败了。

解决此问题的最佳方法是什么?在我当前的程序中,迭代器只能窥视一个元素,但不能再窥视(理想情况下,我不想更改该元素)。我考虑过要求每个表达式在其后手动跳过换行符,但是由于不是每个表达式都是一个语句(它可能是一个函数自变量),所以这是行不通的。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)