⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 语法分析程序 实现C语言的语法分析过程
💻 TXT
字号:
程序使用说明:		
        编译环境:Dev-C++4.9.9.2_setup.exe  
        打开方法:在程序源文件夹中,用devcpp-4.9.9.2.exe 编译器打开analyse.dev即可打开所有源程序
	运行程序:打开可执行文件夹,然后运行analyse.exe。注意保证下面所列文件与可执行文件analyse.exe在同一个目录下。


输入输出文件说明:

	"grammer_one.txt"      文法输入文件(这里所列的文法是全部的产生式,消除了‘|’和左递归的文法,
                               规定用‘:’代替生成符号‘->’,用‘@’代替空符号‘ε’,在每条产生式的前后加$,
			       如:$statment : if_stmt$ 。文件的第一行是所有的产生式的个数。

	"token.txt";           token序列输入文件(每行依次由源程序符号,token类型,所在行号三部分组成。
                               可识别的token类型有 关键字 KEYWORD、标识符 ID、数字 NUM、符号 SYMBOL 。)

	"LL_Table.txt";        LL(1)分析表输入文件 (第一行数字是终结符的个数,下面是所有的终结符,
                               第二行数字是非终结符的个数,然后是所有的非终结符列表。
                               第三行数字的后面是LL(1)分析表的状态转移阵列,不能到达的位置设为99.)
	
	"Analyse_tree.txt";    分析栈的输出文件 (每行前面是分析栈里的内容,后面是对分析栈执行的操作)

	"error.txt";           出错情况的输出文件 (每行前面是出错的符号,后面是产生错误的位置)

	"可执行文件"           可执行文件analyse.exe和它要求的输入输出文件。

	"程序原文件"	       所有程序的源代码、头文件和输入输出文件


可用的关键字: struct  int  void  if  else  while  do  continue  break  return 

可用的符号集: {  }  [  ]  (  )  ,  .  ;  <=  < >  >=  ==  !=  +  -  *  /  = 

可定义一维数组,结构体,if-else结构, while结构

比较运算:<=  <  >  >=  != 

算术运算:+  -  * /

赋值运算:=


本程序的测试源程序如下:
int max_factor(int p,intq)
{
    if(q==0)  return p;
    else return max_factor(q,p-p/q*q);
}
void main(void)
{
    int x;
    int y;
    int a[10];
    x=12;
    a[1]=5;
    a[2]9;
    max_factor(x,y);
}

注:本软件的错误机制还不完善,比如上述源程序中包含一个错误
‘a[2]9;’,但并没有检查出来。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -