-
大小: 650KB文件類型: .rar金幣: 1下載: 0 次發(fā)布日期: 2021-01-08
- 語言: C/C++
- 標簽:
資源簡介
使用lex和yacc
完成simpleC語言簡單語句的分析
編譯原理課程設(shè)計
代碼片段和文件信息
#include?“predef.h“
#include?“myparser.h“
#include?“analyze.h“
#include?
//
static?int?location?=?0;
static?Symtab?*?pTable;
static?FunEntry?*?pFun;
//traverse實現(xiàn)遍歷語法樹,由于遍歷時在不同情況下的操作不同,這里使用了函數(shù)指針變量
//來實現(xiàn)在遍歷的同時執(zhí)行不同的操作。
static?void?traverse(TreeNode?*?t?
?void?(*?preProc)?(TreeNode?*)
?void?(*?postProc)?(TreeNode?*))
{?
if?(t?!=?NULL)
{?
int?i;
preProc(t);
for?(i=0;?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個文件信息
評論
共有 條評論