lex bot如何用

lex bot如何用,第1张

lexbot如何用如下

Lex的基本工作原理为:由正规式生成NFA,将NFA变换成DFA,DFA经化简后,模拟生成词法分析器。

其中正规式由开发者使用Lex语言编写,其余部分由Lex翻译器完成.翻译器将Lex源程序翻译成一个名为lex.yy.c的C语言源文件,此文件含有两部分内容:一部分是根据正规式所构造的DFA状态转移谈戚蚂表,另一含埋部分是用来驱动该表的总控程序yylex()。当主程序需要从输入字符流中识别一个记号时,只需要调用一次yylex()就可以仔则了。为了使用Lex所生成的词法分析器,我们需要将lex.yy.c程序用C编译器进行编译,并将相关支持库函数连入目标代码

Lex源程序必须按照Lex语言的规范来写,其核心是一组词法规则(正规式)。一般而言,一个Lex源程序分为三部分,三部分之间以符号%%分隔。[第一部分:定义段]%%第二部分:词法规则段[%%第三部分:辅助函数段]

其中,第一部分及第三部分和第三部分之上的%%都可以省略(即上述方括号括起的部分可以省略)。以%开头的符号和关键字,或者是词法规则段的各个规则一般顶着行首来写,前面没有空格。

我查了一下, 感觉是不是你在VC++里一些设置步骤还没做?

在安装了Parser Generator后,执行以下步骤,即可使VC++编译和连接由Parser

Generator产生的文件。

1.目录设置

在VC++中执行以下步骤,每个步骤只执行一次。

(1) 选择Tools菜单中的Options命令,在屏幕上即会出迹早顷现Options对话框。

(2) 选择Directories选项卡。

(3) 在Show Directories for下拉列表框中选择Include Files。

(4) 在Directories框中,点击最后的空目录,并填入Parser Generator的include

子目录的路径。

(5) 在Show Directories for下拉列表框中选择Library Files。

(6) 在Directories框中,点击最后的空目录,并填入Parser Generator的

lib\msdev子目录的路径。姿陆

(7) 在Show Directories for下拉列表框睁旅中选择Source Files。

(8) 在Directories框中,点击最后的空目录,并填入Parser Generator的Source

子目录的路径。

(9) 点击OK按钮,Options对话框将接受设置并关闭。

VC++在就可以找到包含文件yacc.h和lex.h以及YACC和Lex的库文件。

2.项目设置

对于每个VC++项目,都需在VC++中执行以下步骤:

(1) 选择Project菜单中的Settings命令,在屏幕上即会出现Project Settings对

话框。

(2) 在Settings for下拉列表框中选择Win32 Debug。

(3) 选择C/C++标签。

(4) 在Category下拉列表框中选择General。

(5) 在Preprocessor Definitions框中,在当前文本的最后,输入YYDEBUG。

(6) 选择Link标签。

(7) 在Category下拉列表框中选择General。

(8) 在Object/Library Modules框中,在当前文本的后面,输入yld.lib //这里好象实际使用中不包括后面两个库

ylmtd.lib ylmtdlld.lib。

(9) 在Settings for下拉列表框中选择Win32 Release。

(10) 重复第8步的工作。

(11) 点击OK按钮,Project Settings对话框将接受设置并关闭。

VC++现在可以从特定的库中接受YACC和Lex所需的函数和变量。

3.应用

(1)在Parser Generator下的编辑窗口输入YACC源程序(扩展名必须为.y)。

(2)用Parser Generator下的Project菜单的Compile file命令编译源程序,生成相应的C

语言源程序(.cpp)。

(3)用VC++编译,连接C语言源程序,生成可执行程序(.exe)后即可执行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8254404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存