Chinaunix首页 | 论坛 | 博客
  • 博客访问: 741079
  • 博文数量: 251
  • 博客积分: 10367
  • 博客等级: 上将
  • 技术积分: 2750
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-10 14:43
文章分类

全部博文(251)

文章存档

2009年(2)

2008年(86)

2007年(163)

分类: C/C++

2008-06-09 00:01:56

有一个函数需要说明

TreeNode * stmt_sequence(void)
{
     TreeNode * t = statement();
     TreeNode * p = t;
     while ((token!=ENDFILE) && (token!=END) &&
           (token!=ELSE) && (token!=UNTIL))
/*
 * if-stmt -> if exp then stmt-sequence [ else stmt-sequence ] end
 * 可见stmt-sequence后面可能跟else , end ,然而这并不是 stmt_sequence 函数  *  该管的事,须由if_stmt函数来检测
 * 所以 有 (token!=END) && (token!=ELSE),其它 ( (token!=UNTIL) ) 同理
 */

     {
          TreeNode * q;
          match(SEMI);
          q = statement();
          if (q!=NULL) {
               if (t==NULL) t = p = q;
               else /* now p cannot be NULL either */
               {
                    p->sibling = q;
                    p = q;
               }
          }
     }
     return t;
}


语法分析
文件:syntax.rar
大小:15KB
下载:下载
语义分析
文件:analyze.rar
大小:19KB
下载:下载

阅读(1321) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~