问题描述
我正在编写一个递归下降解析器,该解析器工作正常,并且支持if/else
语句。但是,我想允许程序员在else
之前加上换行符,即:
if x print("true!")
else print("false")
我尝试从迭代器中弹出所有换行符,将下一个非换行符放在顶部,然后检查它是否为else
。这是可行的,但是如果下一个标记不是else
,则会出现语法错误,因为程序在读取表达式后会跳过换行符。因为我已经跳过了换行符,所以失败了。
解决此问题的最佳方法是什么?在我当前的程序中,迭代器只能窥视一个元素,但不能再窥视(理想情况下,我不想更改该元素)。我考虑过要求每个表达式在其后手动跳过换行符,但是由于不是每个表达式都是一个语句(它可能是一个函数自变量),所以这是行不通的。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)