资源简介
类C语言编译器,基本上实现了主要功能的C语言语法,词法分析使用状态转移,语法使用LR(1)方法,自动生成ACTION和GOTO转移表。自顶向下的语法制导翻译,可以生成各种类型的表达式(包括布尔,算术,逻辑等等),循环中的while,选择中的if else 和if等,功能比较强大,对于应付编译原理课程设计足足有余。此代码是本人课程设计的心血。
代码片段和文件信息
#include “global.h“
pdn A[2] = { { ‘A‘ “.AB“ “\0“ 0 1 } { ‘A‘ “.B“ “\0“ 0 2 } };
pdn B[2] = { { ‘B‘ “.D“ “\0“ 0 3 } { ‘B‘ “.C“ “\0“ 0 4 } };
pdn C[2] = { { ‘C‘ “.G;“ “\0“ 0 5 } { ‘C‘ “.GF;“ “\0“ 0 6 } };
pdn D[4] =
{
{ ‘D‘ “.GIKL“ “\0“ 0 7 } { ‘D‘ “.GIL“ “\0\0“ 0 8 }
{ ‘D‘ “.IKL“ “\0“ 0 9 } { ‘D‘ “.IL“ “\0“ 0 10 }
};
pdn E[2] = { { ‘E‘ “.GE“ “\0\0“ 0 11 } { ‘E‘ “.G“ “\0“ 0 12 } }; // useless
pdn F[2] = { { ‘F‘ “.FI“ “\0\0“ 0 13 } { ‘F‘ “.I“ “\0“ 0 14 } };
pdn G[9] =
{
{ ‘G‘ “.d“ “\0\0“ 0 15 } { ‘G‘ “.t“ “\0\0“ 0 16 } { ‘G‘ “.u“ “\0\0“ 0 17 }
{ ‘G‘ “.j“ “\0\0“ 0 18 } { ‘G‘ “.k“ “\0\0“ 0 19 } { ‘G‘ “.m“ “\0\0“ 0 20 }
{ ‘G‘ “.v“ “\0\0“ 0 21 } { ‘G‘ “.p“ “\0\0“ 0 22 } { ‘G‘ “.q“ “\0\0“ 0 23 }
};
pdn H[2] = { { ‘H‘ “.Z=H“ “\0“ 0 103 } { ‘H‘ “.T“ “\0“ 0 104 } };
pdn I[2] = { { ‘I‘ “.J1“ “\0“ 0 24 } { ‘I‘ “.1“ “\0“ 0 25 } };
pdn J[2] = { { ‘J‘ “.*J“ “\0“ 0 26 } { ‘J‘ “.*“ “\0“ 0 27 } };
pdn K[2] = { { ‘K‘ “.KC“ “\0“ 0 28 } { ‘K‘ “.C“ “\0“ 0 29 } };
pdn L[4] =
{
{ ‘L‘ “.{}“ “\0“ 0 30 } { ‘L‘ “.{K}“ “\0“ 0 31 }
{ ‘L‘ “.{M}“ “\0“ 0 32 } { ‘L‘ “.{KM}“ “\0“ 0 33 }
};
pdn M[2] = { { ‘M‘ “.MN“ “\0“ 0 34 } { ‘M‘ “.N“ “\0“ 0 35 } };
pdn N[5] =
{
{ ‘N‘ “.L“ “\0“ 0 36 } { ‘N‘ “.O“ “\0“ 0 37 }
{ ‘N‘ “.P“ “\0“ 0 38 } { ‘N‘ “.Q“ “\0“ 0 39 }
{ ‘N‘ “.R“ “\0“ 0 40 }
};
pdn O[2] = { { ‘O‘ “.;“ “\0“ 0 41 } { ‘O‘ “.S;“ “\0“ 0 42 } };
pdn P[2] = { { ‘P‘ “.y(S)N“ “\0“ 0 43 } { ‘P‘ “.y(S)NxN“ “\0“ 0 44 } };
pdn Q[3] = { { ‘Q‘ “.h(S)N“ “\0“ 0 45 } { ‘Q‘ “.f(OO)N“ “\0“ 0 46 } { ‘Q‘ “.f(OOS)N“ “\0“ 0 47 } };
pdn R[4] =
{
{ ‘R‘ “.z;“ “\0“ 0 48 } { ‘R‘ “.b;“ “\0“ 0 49 }
{ ‘R‘ “.r;“ “\0“ 0 50 } { ‘R‘ “.rS;“ “\0“ 0 51 }
};
pdn S[2] = { { ‘S‘ “.SH“ “\0“ 0 52 } { ‘S‘ “.H“ “\0“ 0 53 } };
pdn T[2] = { { ‘T‘ “.ToU“ “\0“ 0 54 } { ‘T‘ “.U“ “\0“ 0 55 } };
pdn U[2] = { { ‘U‘ “.UaV“ “\0“ 0 56 } { ‘U‘ “.V“ “\0“ 0 57 } };
pdn V[3] = { { ‘V‘ “.VeW“ “\0“ 0 58 } { ‘V‘ “.VnW“ “\0“ 0 59 } { ‘V‘ “.W“ “\0“ 0 60 } };
pdn W[5] =
{
{ ‘W‘ “.WX“ “\0“ 0 62 }
{ ‘W‘ “.WlX“ “\0“ 0 63 } { ‘W‘ “.WgX“ “\0“ 0 64 }
{ ‘W‘ “.X“ “\0“ 0 65 }
};
pdn X[3] = { { ‘X‘ “.X+Y“ “\0“ 0 66 } { ‘X‘ “.X-Y“ “\0“ 0 67 } { ‘X‘ “.Y“ “\0“ 0 68 } };
pdn Y[4] =
{
{ ‘Y‘ “.Y*Z“ “\0“ 0 69 }{ ‘Y‘ “.Y/Z“ “\0“ 0 70 }
{ ‘Y‘ “.Y%Z“ “\0“ 0 71 }{ ‘Y‘ “.Z“ “\0“ 0 72 }
};
pdn Z[5] =
{
{ ‘Z‘ “.Z[S]“ “\0“ 0 108 }
{ ‘Z‘ “.i“ “\0“ 0 73 } { ‘Z‘ “.c“ “\0“ 0 74 }
{ ‘Z‘ “.s“ “\0“ 0 75 } { ‘Z‘ “.(S)“ “\0“ 0 76 }
};
pdn Z7[3] =
{
{ ‘7‘ “.7[S]“ “\0“ 0 105 } { ‘7‘ “.7()“ “\0“ 0 106 }
{ ‘7‘ “.Z“
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 91711 2009-06-17 17:30 compiler\bin\Debug\compiler.exe
文件 1372 2009-06-02 12:31 compiler\compiler.cbp
文件 3616 2009-06-17 17:30 compiler\compiler.depend
文件 756 2009-06-17 14:04 compiler\compiler.layout
文件 20143 2009-06-17 08:46 compiler\generateItems.c
文件 3921 2009-06-17 17:30 compiler\global.h
文件 8254 2009-05-16 19:39 compiler\grammerHead.c
文件 9820 2009-05-12 10:25 compiler\grammertmp.c
文件 11044 2009-06-17 16:42 compiler\info.log
文件 22011 2009-06-17 15:11 compiler\lexer.c
文件 775 2009-06-17 16:41 compiler\main.c
文件 44412 2009-06-17 17:30 compiler\obj\Debug\generateItems.o
文件 23648 2009-06-17 17:30 compiler\obj\Debug\lexer.o
文件 8299 2009-06-17 17:30 compiler\obj\Debug\main.o
文件 33267 2009-06-17 17:30 compiler\obj\Debug\parser.o
文件 8327 2009-06-17 17:30 compiler\obj\Debug\symbol.o
文件 17002 2009-06-17 16:39 compiler\parser.c
文件 120 2009-06-18 10:41 compiler\readme.txt
文件 952 2009-06-01 16:43 compiler\symbol.c
文件 1508 2009-06-17 16:39 compiler\test.c
文件 5303 2009-05-15 21:06 compiler\tmp1.c
文件 50230 2009-05-19 12:32 compiler\tmp2.c
文件 5340 2009-06-18 10:36 compiler\本编译器所使用的C语法产生式.c
文件 87569 2009-05-19 10:50 compiler\自动生成的项目集.c
目录 0 2009-06-17 17:30 compiler\bin\Debug
目录 0 2009-06-17 17:30 compiler\obj\Debug
目录 0 2009-06-16 22:15 compiler\bin
目录 0 2009-06-16 22:15 compiler\obj
目录 0 2009-06-18 10:39 compiler
----------- --------- ---------- ----- ----
............此处省略2个文件信息
评论
共有 条评论