深入探索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程序
在将扫描器和解析器构建成一个可运行的程序之前,需要对扫描器进行一些小的修改。具体来说,不再在第一部分中定义显式的令牌值,而是包含一个Bison为我们创建的头文件,该文件包含令牌编号的定义和 yylval 的定义。同时,删除扫描器第三部分的测试主程序,因为解析器现在将调用扫描器。扫描器的第一部分现在如下所示:
超级会员免费看
订阅专栏 解锁全文
36

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



