📄 readme.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 + -