如何验证条件语句是否正确写入?

时间:2017-03-24 14:16:36

标签: compiler-errors compiler-construction

我有这样的有效结构

start if 
    start if 
    start end
start else
    start if 
        start if 
        end if
    end if
start end

如何验证非结构化语句?(语法错误,即如果正确则不能结束启动)

任何算法或逻辑都是一种帮助。

1 个答案:

答案 0 :(得分:0)

使用像Stack这样的数据结构。如果你看到一些东西开始,或者开始其他推送到堆栈。如果你看到从堆栈弹出结束。然后检查违反结构的条件。例如,尝试从空堆栈中弹出(意味着您刚刚看到并结束语句而没有任何启动),这应该被视为违规。请注意,还有更多,但这应该是一个很好的例子,让您可以自己开始考虑它们。

以上是有效的算法,通过调整解决了上述许多问题。我建议阅读有关反向抛光符号的内容,它非常相似。