Welcome![Sign In][Sign Up]
Location:
Search - pl0.h

Search list

[ELanguagepl0.rar

Description: PL/0语言可以看成PASCAL语言的子集,它的编译程序是一个编译解释执行系统。PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机无关。 文件说明: PL.htm---PL/0语言基本原理 pl0.h---定义 PL0.cpp---实现 testPl0.cpp---使用方法举例 testPas.txt---一个LP/0语言源程序
Platform: | Size: 597066 | Author: | Hits:

[ELanguagepl0.h

Description: 这是PL0.h,与前面的plo.c放在一起才能运行
Platform: | Size: 2066 | Author: 刘杨 | Hits:

[ELanguagepl/0

Description: /*PL/0编译系统C版本头文件pl0.h*/ /* typedef enum { false, true } bool; */ #define norw 13 /*关键字个数*/ #define txmax 100 /*名字表容量*/ #define nmax 14 /*number的最大位数*/ #define al 10 /*符号的最大长度*/ #define amax 2047 /*地址上界*/ #define levmax 3 /*最大允许过程嵌套声明层数[0,levmax]*/ #define cxmax 200 /*最多的虚拟机代码数*/ /*符号*/ enum symbol{ nul, ident, number, plus, minus, times, slash, oddsym, eql, neq, lss, leq, gtr, geq, lparen, rparen, comma, semicolon, period, becomes, beginsym, endsym, ifsym, thensym, whilesym, writesym, readsym, dosym, callsym, constsym, varsym, procsym, }; #define symnum 32 /*名字表中的类型*/ enum object{ constant, variable, procedur, }; /*虚拟机代码*/ enum fct{ lit, opr, lod, sto, cal, inte, jmp, jpc, }; #define fctnum 8 /*虚拟机结构代码*/ struct instruction { /*454*/ enum fct f; // 虚拟机代码指令 int l; //引用层与声明层的层次差 int a; //根据f的不同而不同 }; FILE * fas; //输出名字表 FILE * fa; //输出虚拟机代码 FILE * fa1; //输出源文件及其各行对应的首地址 FILE * fa2; //输出结果 bool listswitch; //显示虚拟机代码与否 bool tableswitch; //显示名字与否 char ch; //获取字符的缓冲区,getch使用 enum symbol sym; //当前的符号 char id[al+1]; //当前ident,多出的一个字节用于存放0 int num; //当前number int cc,ll; //getch使用的计数器,cc表示当前字符(ch)的位置 int cx; //虚拟机代码指针,取值范围[0,cxmax-1] char line[81]; //读取行缓冲区 char a[al+1]; //临时符号,多出的一个字节用于存放0 struct instruction code[cxmax]; //存放虚拟机代码的数组 char word[norw][al]; //保留字 enum symbol wsym[norw]; //保留字对应的符号值 enum symbol ssym[256]; //单字符的符号值 char mnemonic[fctnum][5]; //虚拟机代码指令名称 bool declbegsys[symnum]; //表示声明开始的符号集合 bool statbegsys[symnum]; //表示语句开始的符号集合 bool facbegsys[symnum]; //表示因子开始的符号集合 //名字表结构 struct tablestruct { char name[al]; //名字 enum object kind; //类型:const,var,array or procedure int val; //数值,仅const使用 int level; //所须层,仅const不能用 int adr; //地址,仅const不能用 int size; //需要分配的数据空间,仅procedure使用 }; struct tablestruct table[txmax]; //名字表 FILE * fin; FILE * fout; char fname[al]; int err; //错误计数器 //当函数中发生fatal error时,返回-1告知调用它的函数,最终退出程序 #define getsymdo if(-1==getsym()) return -1 #define getchdo if(-1==getch()) return -1 #define testdo(a,b,c) if(-1==test(a,b,c)) return -1 #define gendo(a,b,c) if(-1==gen(a,b,c)) return -1 #define expressiondo(a,b,c) if(-1==expression(a,b,c)) return -1 #define factordo(a,b,c) if(-1==factor(a,b,c)) return -1 #define termdo(a,b,c) if(-1==term(a,b,c)) return -1 #define conditiondo(a,b,c) if(-1==condition(a,b,c)) return -1 #define statementdo(a,b,c) if(-1==statement(a,b,c)) return -1 #define constdeclarationdo(a,b,c) if(-1==constdeclaration(a,b,c)) return -1 #define vardeclarationdo(a,b,c) if(-1==vardeclaration(a,b,c)) return -1 void error(int n); int getsym(); int getch(); void init(); int gen(enum fct x,int y ,int z); int test(bool *s1,bool *s2,int n); int inset(int e,bool *s); int addset(bool *str,bool * s1,bool * s2,int n); int subset(bool *str,bool * s1,bool * s2,int n); int mulset(bool *str,bool * s1,bool * s2,int n); int block(int lev,int tx,bool * fsys); void interpret(); int factor(bool * fsys,int * ptx,int lev); int term(bool * fsys,int * ptx,int lev); int condition(bool * fsys,int * ptx,int lev); int expression(bool * fsys,int * ptx,int lev); int statement(bool * fsys,int * ptx,int lev); void listcode(int cx0); int vardeclaration(int *ptr, int lev,int *ptx); int constdeclaration(int *ptr, int lev,int *ptx); int position(char * idt,int tx); void enter(enum object k,int * ptx,int lev, int * pdx); int base(int l,int * s,int b)
Platform: | Size: 25139 | Author: xqq771084591 | Hits:

[ELanguagepl0

Description: PL/0语言可以看成PASCAL语言的子集,它的编译程序是一个编译解释执行系统。PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机无关。 文件说明: PL.htm---PL/0语言基本原理 pl0.h---定义 PL0.cpp---实现 testPl0.cpp---使用方法举例 testPas.txt---一个LP/0语言源程序-PL/0 language may regard as the PASCAL language the subset, its compiler is a translation explanation execution system. The PL/0 target program for the imaginary stack type computer assembly language, has nothing to do with with the concrete computer. Document explanation that, PL.htm---PL/0 language basic principle pl0.h--- defines PL0.cpp--- to realize the testPl0.cpp--- application method to give an example testPas.txt--- a LP/0 language source program
Platform: | Size: 596992 | Author: 许豫飞 | Hits:

[ELanguagepl0.h

Description: 这是PL0.h,与前面的plo.c放在一起才能运行-This is PL0.h, and in front of plo.c to run together
Platform: | Size: 2048 | Author: 刘杨 | Hits:

[OS programPL0_compiler

Description: 内有pl0.c,pl0.h和text测试程序-There are pl0.c, pl0.h and text test procedures
Platform: | Size: 12288 | Author: smouse1988 | Hits:

[ELanguagepl0

Description: PL0 C的源碼:pl0.h和pl0.c。-C Code of PL0
Platform: | Size: 10240 | Author: Zinc | Hits:

[ELanguagepl0word

Description: 编译原理 pl0 语言的词法分析程序 本次提供的源码包括3个文件:pl0.h,pl0.c,test.txt:-Compiler theory pl0 language lexical analysis program to provide the source code of this file, including 3: pl0.h, pl0.c, test.txt:
Platform: | Size: 89088 | Author: candy | Hits:

[ELanguagePL0Compiler

Description: PL0编译器代码(c语言版本),包括cpp和h文件,编译原理(第二版),清华大学出版社,附录后的源码!-PL0 compiler code (c language version), including the cpp and h files, compiler theory (Second Edition), Tsinghua University Press, Appendix After the source!
Platform: | Size: 9216 | Author: liwei | Hits:

[ELanguageCPPPL-O

Description: PL/0语言可以看成PASCAL语言的子集,它的编译程序是一个编译解释执行系统。PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机无关。 文件说明: PL.htm---PL/0语言基本原理 pl0.h---定义 PL0.cpp---实现 testPl0.cpp---使用方法举例 testPas.txt---一个LP/0语言源程序-PL/0 language can be seen as a subset of the PASCAL language, the compiler is a compiler to explain the implementation of the system. Target program for a hypothetical stack computer assembly language PL/0, has nothing to do with the specific computer. File Description: PL.htm-- PL/0 language the basic principles of pl0.h-- definition of PL0.cpp-- to achieve testPl0.cpp-- Examples of use testPas.txt-- LP/language source code
Platform: | Size: 594944 | Author: Jeep | Hits:

[ELanguagePL0Compiler-C

Description: PL/0编译器C++/C版本 1. 测试文件必须是以testin.pl0命名的文件。 2. 成功运行测试程序后,会生成testout.txt的文件,里面包括代码、指令和运行结果。 3、First.cpp--只包含词法语法分析,Error.cpp--加入了出错处理,All.cpp--包含代码生成和解释程序,是完整编译器。-请键入文字或网站地址,或者上传文档。 取消 PL/0 biānyì qì C++/C bǎnběn 1. Cèshì wénjiàn bìxū shì yǐ testin.Pl0 mìngmíng de wénjiàn. 2. Chénggōng yùnxíng cèshì chéngxù hòu, huì shēngchéng testout.Txt de wénjiàn, lǐmiàn bāokuò dàimǎ, zhǐlìng hé yùn háng jiéguǒ. 3,First.Cpp--zhǐ bāohán cífǎ yǔfǎ fēnxī,Error.Cpp--jiārùle chūcuò chu lǐ,All.Cpp--bāohán dàimǎ shēngchéng hé jiěshì chéngxù, shì wánzhěng biānyì qì. 您是不是要找: pascal 子语言 pl 0编译器 解释器 pascal编写 PL/0 compiler C++/C version 1 test file named file must be based testin.pl0. (2) After successfully running the test program will generate testout.txt file, which includes the code, instructions and operating results. 3, First.cpp-- contains only syntax analysis, Error.cpp-- added error handling, All.cpp-- include code generation and interpretation procedures are complete compiler.
Platform: | Size: 10240 | Author: 夏日星 | Hits:

[ELanguage编译原理

Description: 编译原理编译器的设计,包含pl0.c pl0.h(pl0.c & pl0.h design)
Platform: | Size: 3072 | Author: patirck | Hits:

CodeBus www.codebus.net