资源简介
使用lex和yacc
完成simpleC语言简单语句的分析
编译原理课程设计
代码片段和文件信息
#include “predef.h“
#include “myparser.h“
#include “analyze.h“
#include
//
static int location = 0;
static Symtab * pTable;
static FunEntry * pFun;
//traverse实现遍历语法树,由于遍历时在不同情况下的操作不同,这里使用了函数指针变量
//来实现在遍历的同时执行不同的操作。
static void traverse(TreeNode * t
void (* preProc) (TreeNode *)
void (* postProc) (TreeNode *))
{
if (t != NULL)
{
int i;
preProc(t);
for (i=0; i < MAXCHILDREN; i++)
traverse(t->child[i] preProc postProc);
postProc(t);
traverse(t->sibling preProc postProc);
}
}
//定位到需要的变量表中
static void adjustVal(TreeNode * t)
{
if (t == NULL) return;
else if (t->nodekind == Dec) {
switch (t->kind.dec)
{
case FunDefK:
pFun = Lookup_Fun(t->attr.name);
break;
case CompK:
pTable = t->attr.table;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14549 2008-01-02 15:19 MyComplier\analyze.c
文件 777 2007-12-27 13:20 MyComplier\analyze.h
文件 26611 2008-01-02 15:19 MyComplier\Debug\analyze.obj
文件 0 2008-01-02 15:19 MyComplier\Debug\analyze.sbr
文件 181248 2008-01-05 13:29 MyComplier\Debug\MyComplier.bsc
文件 248516 2008-01-02 15:21 MyComplier\Debug\MyComplier.pch
文件 12506 2008-01-02 15:17 MyComplier\Debug\mylexer.obj
文件 0 2008-01-02 15:17 MyComplier\Debug\mylexer.sbr
文件 59652 2008-01-02 15:17 MyComplier\Debug\myparser.obj
文件 0 2008-01-02 15:17 MyComplier\Debug\myparser.sbr
文件 258114 2008-01-05 13:29 MyComplier\Debug\SimpleC.exe
文件 278864 2008-01-05 13:29 MyComplier\Debug\SimpleC.ilk
文件 30678 2008-01-05 13:29 MyComplier\Debug\SimpleC.obj
文件 664576 2008-01-05 13:29 MyComplier\Debug\SimpleC.pdb
文件 0 2008-01-05 13:29 MyComplier\Debug\SimpleC.sbr
文件 41984 2008-01-05 13:29 MyComplier\Debug\vc60.idb
文件 53248 2008-01-05 13:29 MyComplier\Debug\vc60.pdb
文件 4834 2007-12-27 20:04 MyComplier\MyComplier.dsp
文件 528 2007-12-24 09:37 MyComplier\MyComplier.dsw
文件 66560 2008-01-05 13:32 MyComplier\MyComplier.ncb
文件 57856 2008-01-05 13:32 MyComplier\MyComplier.opt
文件 1593 2008-01-05 13:29 MyComplier\MyComplier.plg
文件 13846 2008-01-02 15:17 MyComplier\mylexer.c
文件 1286 2008-01-02 15:17 MyComplier\mylexer.h
文件 2852 2007-12-28 11:06 MyComplier\mylexer.l
文件 14524 2008-01-02 15:17 MyComplier\mylexer.v
文件 42610 2008-01-02 15:17 MyComplier\myparser.c
文件 1788 2008-01-02 15:17 MyComplier\myparser.h
文件 32616 2008-01-02 15:17 MyComplier\myparser.v
文件 11191 2008-01-02 15:17 MyComplier\myparser.y
............此处省略13个文件信息
评论
共有 条评论