资源简介
这是用递归下降方法进行语法分析的一个程序,用于课程设计,代码规模很可观了,费了很多时间才弄出来。
代码片段和文件信息
#include
#include “dgxj.h“
#include
/********** 调用的函数原型 ************/
char temp_char[20];
static TokenType nexttoken;
static TreeNode * program(void);
static TreeNode * programHead(void);
static TreeNode * declarePart(void);
static TreeNode * typeDec(void);
static TreeNode * typeDeclaration(void);
static TreeNode * typeDecList(void);
static TreeNode * typeDecMore(void);
static void typeId(TreeNode * t);
static void typeDef(TreeNode * t);
static void baseType(TreeNode * t);
static void structureType(TreeNode * t);
static void arrayType(TreeNode * t);
static void recType(TreeNode * t);
static TreeNode * fieldDecList(void);
static TreeNode * fieldDecMore(void);
static void idList(TreeNode * t);
static void idMore(TreeNode * t);
//////////////////////////////////变量声明
static TreeNode * varDec(void);
static TreeNode * varDeclaration(void);
static TreeNode * varDecList(void);
static TreeNode * varDecMore(void);
static void varIdList(TreeNode * t);
static void varIdMore(TreeNode * t);
static TreeNode * procDec(void);
static TreeNode * procDeclaration(void);
static void paramList(TreeNode * t);
static TreeNode * paramDecList(void);
static TreeNode * param(void);
static TreeNode * paramMore(void);
static void formList(TreeNode * t);
static void fidMore(TreeNode * t);
static TreeNode * procDecPart(void);
static TreeNode * procBody(void);
////////////////////////////////////////////
static TreeNode * programBody(void);
static TreeNode * stmList(void);
static TreeNode * stmMore(void);
static TreeNode * stm(void);
static TreeNode * assCall(void);
static TreeNode * assignmentRest(void);
static TreeNode * conditionalStm(void);
static TreeNode * loopStm(void);
static TreeNode * inputStm(void);
static TreeNode * outputStm(void);
static TreeNode * returnStm(void);
static TreeNode * callStmRest(void);
static TreeNode * actParamList(void);
static TreeNode * actParamMore(void);
static TreeNode * exp(void); /* 处理表达式函数 */
static TreeNode * simple_exp(void); /* 处理简单表达式函数 */
static TreeNode * term(void); /* 处理项函数 */
static TreeNode * factor(void); /* 处理因子函数 */
static TreeNode * variable(void);
static void variMore(TreeNode * t);
static TreeNode * fieldvar(void);
static void fieldvarMore(TreeNode * t );
///////////打印部分/////////////////////////////////////
static void treePrint(TreeNode *t);
static void headPrint(TreeNode *t);
static void typePrint(TreeNode * tint k);//类型声明输出
static void varPrint(TreeNode *tint k);
static void varDecPrint(TreeNode *tint k);
static void procPrint(TreeNode *tint k);
static void procDecPrint(TreeNode *tint k);
static void BodyPrint(TreeNode *tint k);
static void BodySubPrint(TreeNode *tint k);
static void printzs(TreeNode *tree);
//从TOKEN表中得到一个单元,分别为行号,LEXSEM
void treePrint(TreeNode *t){
p
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 311 2009-04-14 19:32 SNL递归下降语法分析\c1.txt
文件 351 2009-04-12 12:08 SNL递归下降语法分析\c2.txt
文件 449 2009-04-14 19:15 SNL递归下降语法分析\c4.txt
文件 616 2002-11-12 00:00 SNL递归下降语法分析\c5.txt
文件 416 2002-11-12 00:00 SNL递归下降语法分析\c6.txt
文件 519 2002-11-12 00:00 SNL递归下降语法分析\c7.txt
文件 557 2002-11-12 00:00 SNL递归下降语法分析\c8.txt
文件 71723 2009-04-14 20:46 SNL递归下降语法分析\Debug\dgxj.obj
文件 6981 2009-04-14 20:48 SNL递归下降语法分析\Debug\main.obj
文件 25833 2009-04-10 22:51 SNL递归下降语法分析\Debug\scanner.obj
文件 66560 2009-04-14 20:50 SNL递归下降语法分析\Debug\vc60.idb
文件 53248 2009-04-14 20:48 SNL递归下降语法分析\Debug\vc60.pdb
文件 217163 2009-04-14 20:48 SNL递归下降语法分析\Debug\编译实验.exe
文件 228864 2009-04-14 20:48 SNL递归下降语法分析\Debug\编译实验.ilk
文件 43520 2009-04-12 09:55 SNL递归下降语法分析\Debug\编译实验.opt
文件 242456 2009-04-14 20:46 SNL递归下降语法分析\Debug\编译实验.pch
文件 549888 2009-04-14 20:48 SNL递归下降语法分析\Debug\编译实验.pdb
文件 25998 2009-04-14 20:46 SNL递归下降语法分析\dgxj.cpp
文件 2305 2009-04-14 20:46 SNL递归下降语法分析\dgxj.h
文件 251 2002-05-18 00:00 SNL递归下降语法分析\easy.txt
文件 564 2002-05-18 00:00 SNL递归下降语法分析\exp.txt
文件 1896 2009-04-14 20:48 SNL递归下降语法分析\main.cpp
文件 121 2002-08-20 00:00 SNL递归下降语法分析\scan.txt
文件 22523 2009-04-10 22:46 SNL递归下降语法分析\scanner.cpp
文件 2092 2009-04-10 22:30 SNL递归下降语法分析\scanner.h
文件 547 2002-05-09 00:00 SNL递归下降语法分析\sd1.txt
文件 311 2002-11-12 00:00 SNL递归下降语法分析\SNL语言例子\一般例子\c1.txt
文件 355 2002-11-12 00:00 SNL递归下降语法分析\SNL语言例子\一般例子\c2.txt
文件 447 2002-11-12 00:00 SNL递归下降语法分析\SNL语言例子\一般例子\c4.txt
文件 616 2002-11-12 00:00 SNL递归下降语法分析\SNL语言例子\一般例子\c5.txt
............此处省略31个文件信息
- 上一篇:编译原理课程设计:算符优先分析 C++
- 下一篇:编译原理 四元式的生成
相关资源
- 语法分析c语言实现程序代码+实验报告
- 实现语法分析器-编译原理
- LL(1)文法分析全过程(FIRST/FLLOW/S
- SNL语言编译器GUI VC++ 2008版 MFC实现可
- 语法分析器 tiny语言语法分析
- C++语法分析器
- SNL语言编译器C++实现
- 语法分析c语言实现含报告
- LL1语法分析器(c++)
- 编译原理课程设计----语法分析器(
- 编译原理课程实验报告词法分析器及
- PL0编译器词法检查与语法分析器
- LL(1)语法分析器C++版
- 编译技术实验(Pascal代码转汇编语言
- LR(0)语法分析器程序
- TINY扩充语言的语法分析(实现 while、
- 编译原理课程设计词法语法分析器
- 编译原理LL1语法分析器C++版源代码
- 编译原理LL(0)C语言小子集源代码
- 第四次上机作业 语法分析2
- 对于任意给定的输入串词法记号流进
- 编译原理课程设计LR(0)语法分析器
- LL1语法分析程序设计
- LEX与YACC实现C语言词法分析和语法分析
- 编译原理实验语法分析器
- PL/0语法分析程序
- cminus语法分析器源代码完整版
- 语法分析C实现
- 编译原理--语法分析 实验 C++版
- LL(1)文法自动生成语法分析程序的
评论
共有 条评论