随笔分类 -  lex学习

摘要:(一)、写在前面lex是构建词法分析程序的工具。词法分析程序把随机输入流标记化,即将他拆分成词法标记。然后,可以进一步处理这种被标记化的输出,通常是由yacc来处理的,或者他就成为“最终产品”。当编写lex规范的时候,可以创建lex匹配输入所用的一套模式。每次匹配一个模式的时候,le... 阅读全文
posted @ 2016-02-18 16:42 陈洪波 阅读(391) 评论(0) 推荐(0)
摘要:(一):写在前面在上面的学习当中,我们通过简单的lex例子,进一步扩展lex例子,通过和yacc的融合来进行简单英语语法分析。通过这几个例子,使我们深深的感受到lex和yacc的方便和强大功能。我们最终的目标是通过学习使用lex和yacc来实现一个简单的shell解释器,估计借用le... 阅读全文
posted @ 2016-01-15 14:03 陈洪波 阅读(433) 评论(0) 推荐(0)
摘要:语法对于某些应用,我们所完成的简单的词类识别也许足够用了;而另一些应用需要识别特殊的标记序列并执行适当的动作。传统上,对这样的一套动作描述成为语法。使用右箭头”->”意味着可以用一个新的符号取代一套特殊的标记。 例如:subject ->noun\pronoun 指示一个新的符号s... 阅读全文
posted @ 2015-05-17 15:32 陈洪波 阅读(778) 评论(0) 推荐(0)
摘要:接着第一节中的第一个示例,我们扩展第二个示例,将词法分析程序扩展为识别不同的词性。 下面是程序示例:%{/* * 扩展第一个示例以识别其他的词性 * */%}%%[ \t ]+ /* 忽略空白 */;is |am |are |were |was |be |being |been |... 阅读全文
posted @ 2015-05-14 21:23 陈洪波 阅读(155) 评论(0) 推荐(0)
摘要:lex和yacc可以帮助你编写程序转换结构化输入。既包括从输入文件中寻找模式的简单文本搜索程序,也包括将源程序变换为最佳的目标代码的C编译程序等。 ​lex使用一系列对可能标记的描述,产生一个能识别那些标记的C例程(我们成为词法分析器。词法分析程序(lexer),或成为扫描程... 阅读全文
posted @ 2015-05-05 10:01 陈洪波 阅读(370) 评论(0) 推荐(0)