Flex与Bison:语法解析与正则表达式的深入探索
1. 简单句子结构与自然语言语法难题
简单句子的结构可以表示为:
simple_sentence: subject verb object
| subject verb object prep_phrase ;
subject: NOUN
| PRONOUN
| ADJECTIVE subject ;
verb: VERB
| ADVERB VERB
| verb VERB ;
object: NOUN
| ADJECTIVE object ;
prep_phrase: PREPOSITION NOUN ;
然而,这种结构仅适用于自然语言中不切实际的小部分子集。自然语言的语法极其复杂,难以用软件处理和书写,为何会这样仍是一个有趣且未解决的问题,为什么我们为计算机发明的语言比人类语言简单得多呢?
2. 编译Flex和Bison程序
在将扫描器和解析器构建成一个可运行的程序之前,需要对扫描器进行一些小改动。以计算器扫描器 fb1 - 5.l 为例,原本在第一部分明确定义标记值,现在包含Bison生成的头文件,该文件包含标记编号和 yylval 的定义,同时删除扫描器第三部分的测试主程序,因为解析器将调用扫描器。修改后的扫描器第一部分如下:
超级会员免费看
订阅专栏 解锁全文
47

被折叠的 条评论
为什么被折叠?



