给一个有if语句的file。
读到if关键词的时候,if开始,但是怎么判断这个if已经结束了呢?
比如
if(...)
return a;  //if在这行结束。
但是
if()
{
 ...
 if()
 {
 }
}  //就是这行结束。有好的方法/算法么?

解决方案 »

  1.   

    这个用栈来做的话, 好处理一些:
    1.
    if(...)
    return a;  //if在这行结束。
    这个好处理一些, 读取 ) 后, 再读下一个字符(如果是空格, 回车等空白字符, 继续读), 不是 { , 早继续读, 读到分号, 则 if 语句结束.2. 
    if()
    {
     ...
     if()
     {
     }
    }  //就是这行结束。a : 读到 ) 后, 再读下一个字符(如果是空格, 回车等空白字符, 继续读), 是 {, 则 { 入栈
    b : 重复步骤 a, 如果读到 } , 则弹出栈顶的 {, 如果栈空, 则说明 if 语句结束, 不空, 继续读, 重复步骤 a.基本这样可以实现.
      

  2.   

    if {}
    注意这个括号之间,括住的是statements。无所谓是不是被执行结束了。楼主的心思体会到这一点就不会发问了。