任务一:创建一个词法分析程序,该程序支持分析常规单词。必须使用 DFA(确定性有限自动机)或 NFA(不确定性有限自动机)来实现此程序。 程序 有两个输入:一个文本文档,包括一组 3º型文法(正规文法)的产生式;一个源代码文本 文档,包含一组需要识别的字符串(程序代码)。 程序的输出是一个 token(令牌)表,该 表由 5 种 token 组成:关键词,标识符,常量,限定符和运算符。 任务 2:创建一个使用 LL(1) 方法或 LR(1) 方法的语法分析程序。 程序有两个输入:1)一个是文本文档,其中包含 2º型文法(上下文无关文法)的产生式集 合;2)任务 1 词法分析程序输出的(生成的)token 令牌表。程序的输出包括:YES 或 NO (源代码字符串符合此 2º型文法,或者源代码字符串不符合此 2º型文法);错误提示文件, 如果有语法错标示出错行号,并给出大致的出错原因
2022-04-21 16:43:50 7.06MB 编译原理 语法分析器 词法分析其 VS2019
1
一、功能简介 本编译器主要有四部分功能: 1、词法分析 编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error”,然后跳过错误部分继续显示)。 2、语法分析之递归下降分析 递归下降分析法的前提是文法必需为LL(1)文法,此功能为验证性功能,已经给出文法,输入一符号串,验证是否属于该文法的句子即可。 3、语法分析之LL(1)预测分析 此功能为验证性功能,已经给出文法,对任意输入的符号串进行分析验证是否属于该文法的句子即可。 4、逆波兰式的生成及计算 从键盘输入一个表达式符号串(中缀算术表达式),根据算符优先分析表对表达式符号串进行堆栈(或其他)操作,输出分析结果,并对生成的逆波兰式进行计算。 5、 另外,本编译器具备基本的记事本编辑操作功能,此部分功能不做具体介绍。 6、“源程序”“对比”“分析结果”显示工作区域的不同状态。 7、编译器下方有状态栏,显示当前状态。 二、操作 1、功能的选择 点击菜单栏“编译(B)”,继而进行功能的选择;或者直接点击相对于的图标也可。 2、运行 在编辑区,右键点击出现的菜单中选择对应的功能运行;或者点击‘红色羽毛’的图标运行。 3、点击最后一个图标,可以显示或者隐藏编译器右边的说明区域。 4、状态栏可以通过菜单:“其它”->“状态栏”操作显示和隐藏。
1
C++实现的语法和语义分析/C++实现的语法和语义分析
2022-04-16 20:02:55 1.17MB 语法分析器
1
工程下source.txt为 sample示例程序;chartable.data和tokentable.data为词法分析/语法分析中间过程数据;config文件夹下为sample语言各种分类关键字配置(不建议修改);src下com.analysis.start包为程序入口。。(ps:程序务必先保存再进行分析,没保存时代码编辑区显示为灰色,表示不可进行分析。。。。。以前的代码,没精力去修改bug了。。望见谅!作者qq:254229962)
1
编译器_sql 这是一个基本的 SQL 扫描器 + 解析器。 此解析器中使用的 SQL 语法还包含循环和条件语句。
2022-03-29 09:37:51 6KB C
1
C++实现的LL1语法分析器,MFC做的界面
2022-01-10 23:20:40 3.24MB LL1语法 C++
1
编译原理课程设计,语法分析器。运行环境 VC6.0
2022-01-05 16:11:06 1.06MB 课程设计 编译原理 语法分析器
1
【文件简介】 java 编写的语法分析器,详情可前往 https://blog.csdn.net/weixin_44155115/article/details/105199595 查看 【文件内容】 1. 源代码 2. jdk1.8 3. 可执行jar包 4. 使用说明
2022-01-03 21:03:04 179.58MB 编译原理 java ll(1) 语法分析器
Compiler with GUI 编译原理实验 带有简单用户界面的词法分析器、LL(1)语法分析器以及LR(1)语法分析器 Contents Lexer (Java) Parser-LL(1) (Java) Parser-LR(1) (Java)
2021-12-30 16:42:17 326KB Java
1
界面化 Java语法分析器 能生成follow集、first集、以及预测表、对字符串分析等等。
2021-12-29 01:01:41 27KB Java 语法分析器 编译原理
1