資源簡介
編譯原理課程設計,改進書后附錄的pl0程序,c語言版:
1.擴充語句for(<語句>;<條件>;<語句>)<語句>
2.擴充語句if <條件> then <語句> else <語句>
3.擴充語句repeat <語句>;until <條件>
4.增加自增自減運算++和—和+=,-=運算
5.修改不等號#,為!=
6.增加一維數組,聲明格式:<ident>[<ident>/<number>:<ident>/<number>];
賦值格式:<ident>[<index>]:=<表達式>;
調用格式:<ident>[<index>]
包括源代碼,測試文件,課設報告,環境:vc6.0
代碼片段和文件信息
#include?
#include?
#include?“pl0.h“
#define?stacksize?500
int?main()
{
bool?nxtlev[symnum];
printf(“Input?pl/0?file?“);
scanf(“%s“?fname);
fin?=?fopen(fname?“r“);
if(fin)
{
printf(“List?object?code??(Y/N)“);
scanf(“%s“?fname);
listswitch?=?(fname[0]?==?‘y‘?||?fname[0]?==?‘Y‘);
printf(“List?symbol?table??(Y/N)“);
scanf(“%s“?fname);
tableswitch?=?(fname[0]?==?‘y‘?||?fname[0]?==?‘Y‘);
fa1?=?fopen(“fa1.tmp“?“w“);
fprintf(fa1?“Input?pl/0?file?“);
fprintf(fa1?“%s\n“?fname);
init();
err?=?0;
cc?=?cx?=?ll?=?0;
ch?=?‘?‘;
if(-1?!=?getsym())
{
fa?=?fopen(“fa.tmp“?“w“);
fas?=?fopen(“fas.tmp“?“w“);
addset(nxtlev?declbegsys?statbegsys?symnum);
nxtlev[period]?=?true;
if(-1?==?block(0?0?n
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????103??2009-07-17?04:56??final\Debug\6.txt
?????文件????????239??2009-07-17?05:14??final\Debug\7.txt
?????文件??????33384??2009-07-17?05:33??final\Debug\BuildLog.htm
?????文件????????927??2009-07-17?05:33??final\Debug\fa.tmp
?????文件????????329??2009-07-17?05:33??final\Debug\fa1.tmp
?????文件??????????9??2009-07-17?05:33??final\Debug\fa2.tmp
?????文件?????????53??2009-07-17?05:33??final\Debug\fas.tmp
?????文件?????????67??2009-07-17?05:33??final\Debug\mt.dep
?????文件??????74049??2009-07-17?05:33??final\Debug\pl0.obj
?????文件??????54272??2009-07-17?05:33??final\Debug\testarray.exe
?????文件????????663??2009-07-17?05:33??final\Debug\testarray.exe.em
?????文件????????728??2009-07-17?05:33??final\Debug\testarray.exe.em
?????文件????????621??2009-07-17?05:33??final\Debug\testarray.exe.intermediate.manifest
?????文件?????346208??2009-07-17?05:33??final\Debug\testarray.ilk
?????文件?????429056??2009-07-17?05:33??final\Debug\testarray.pdb
?????文件??????27648??2009-07-17?05:33??final\Debug\vc90.idb
?????文件??????53248??2009-07-17?05:33??final\Debug\vc90.pdb
?????文件??????28276??2009-07-17?05:33??final\pl0.c
?????文件???????4125??2009-07-17?05:23??final\pl0.h
?????文件?????????41??2008-06-03?10:48??final\test\1.txt
?????文件?????????84??2009-07-17?04:51??final\test\2.txt
?????文件?????????97??2008-06-10?08:42??final\test\3.txt
?????文件????????133??2009-07-17?04:48??final\test\4.txt
?????文件????????135??2008-06-10?13:06??final\test\5.txt
?????文件????????103??2009-07-17?04:56??final\test\6.txt
?????文件????????239??2009-07-17?05:14??final\test\7.txt
?????文件????????927??2009-07-17?05:23??final\test\fa.tmp
?????文件????????329??2009-07-17?05:14??final\test\fa1.tmp
?????文件??????????9??2009-07-17?05:14??final\test\fa2.tmp
?????文件?????????22??2009-07-17?05:14??final\test\fas.tmp
............此處省略13個文件信息
- 上一篇:操作系統信號量PV經典問題:讀者寫者
- 下一篇:五個簡單的C++課程設計
評論
共有 條評論