资源简介

类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个文件信息

评论

共有 条评论