我正在尝试为一个简化的编程语言创建一个解析器。我现在正处于练习的一部分,我们需要确保解析器的输出是输入C的转换。
所以像......
STARTMAIN a=b+2; return a ENDMAIN
......必须成为......
int main () { a=b+2; return a; }
到目前为止这么好,差不多。这项练习还要求在我们转换的同时,我们必须添加适当的缩进和(因为我必须在去年学习很难的方式)换行。
显而易见的是,每次{打开时,您都会增加一个计数器,然后在每个新行上添加相应的选项卡。但是,关闭括号('}')是一个不同的故事,因为您无法事先检测到它们,一旦解析它们,您不能通过删除最后打印的标签将它们放在左侧。
是否有解决方案,和/或检查和添加缩进的一致方法?
答案 0 :(得分:2)