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

📄 算法,步骤和方法.txt

📁 设计并实现一个PL/0语言的词法分析器
💻 TXT
字号:
算法,步骤和方法:
1.	写一个LEX的源程序pl0.l
说明部分:声明所涉及c库函数;
          用来存储二元式组的结构体token;
          声明输入输出文件指针fpin,fpout;
          声明程序所需的变量值;
          补充c函数的声明
          定义各正规式,包括标识符,常量,界符等
转换规则:识别出关键字,则类型值type=3,并且打印出类型名和值
          识别出标识符,则类型值type=1,并打印类型名和值
          识别出常量,则类型值type=2,并打印类型名和值
          识别出界符,则类型值type=5,并打印类型名和值
          识别出运算符,则类型值type=4,并打印类型名和值
          识别出换行回车,则行数linenum自增1
          识别出空白符,如空格,制表符,则滤掉,即不存储到token中,也不打印。
辅助过程:
    main()中,要求用户输入pl0源程序文件名,调用void read_source (char filename[])读取该文件内容,调用LEX提供的yylex()函数开始按照前面定义的规则开始词法分析,最后打开结果输出文件,打印分析结果。
Print()中,计数器自加,打开要输出结果的文件,若类型值为1、2、3、4、5则赋以二元式中类型值相应的类型名称并调用yytext()函数返回其字符值给二元式中的单词自身的值且打印该二元式;否则累计错误数并打印。
2.	安装flex,并在安装目录下,如DProgram FilesGnuWin32bin下运行flex.exe,将写好的LEX程序粘贴进去,然后关闭,从而生成目标程序lex.yy.c
3.	用Visual C++ 6.0编译lex.yy.c程序,并运行。
4.	运行后输入要测试的pl0源程序文件名Test0.pl0(当该文件和c程序在同一个目录下)。
5.	程序运行结束后生成一个文件如result.txt,里面储存了整个pl0源程序分析后的二元式组。

⌨️ 快捷键说明

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