Flex编译原理上机实验:程序编写与编译方法.pdfVIP

  • 1
  • 0
  • 约2.23千字
  • 约 6页
  • 2026-02-12 发布于北京
  • 举报

Flex编译原理上机实验:程序编写与编译方法.pdf

Flex使用方法:编写程序:一.

在l文件中,编写程序。例如

%{#includestdlib.h#

includestdio.h#define

_

NUM2014intnumchars=0;

_=0

intnumids;%}delim[]

letter[A‑Za‑z]digit[0‑9]

number{digit}+id{letter}+

%%{number}{intr=atoi(yytext);if(r==NUM)

printf(AAAAA);elseprintf(%s,yytext);num_

_

chars+=yyleng;}{delim}{printf();numchars+=

_

yyleng;}{id}{printf(%s,yytext);++numids;nu

_

mchars+=yyleng;}

%%main(){yylex();printf(\n标识符数量=%d,字母数量=

__

%d,numids,numchars);}

二.编译:

(1)将example.l和flex.exe放到桌面上一个名为“1”的文件夹中,cd到这

个目录。在开始菜单中输入cmd并输入:cdC:\Users\Hp\Desktop\1C:flex

example.l

Flex使用方法:

写程序:

一.在l文件中,写程序。

%{

#includestdlib.h

#includestdio.h

#defineNUM2014

intnum_chars=0;

intnum_ids=0;

%}

delim[]

letter[A-Za-z]

digit[0-9]

number{digit}+

id{letter}+

%%

{number}{intr=atoi(yytext);if(r==NUM)printf(AAAAA);

elseprintf(%s,yytext);

num_chars+=yyleng;}

{delim}{printf();num_chars+=yyleng;}

{id}{printf(%s,yytext);++num_ids;num_chars+=yyleng;}

%%

main()

{

yylex();

printf(\n#ofids=%d,#ofletters=%d,num_ids,num_chars);

}

二.编译:

(1)把example.l和flex.exe放到桌面一个名为“1”的文件夹中,cd到这个目录。

在开始里输入cmd

输入:

cdC:\Users\Hp\Desktop\1

C:

flexexample.l

生成文件lex.yy。

(2)将文件夹中生成的lex.yy和libfl放在一个文件夹中,

在vc中打开lex.yy生成新项目(新项目中要把libfl.lib也加

入)。我把项目放在D盘中了。

工程‑设置‑‑添加libfl.lib

运行该程序

三.执行:

(1)将输入测试文件txt文件放到刚创建的工程的Debug文件夹中。

生成文件lex.yy。

(2)将文件夹中生成的lex.yy和libfl放在一个文件夹中

在vc中打开lex.yy生成新项目(新项目中要把libfl.lib也加入)

我把项目放在D盘中了。

工程-设置-连接-增加libfl.lib

运行该程序

三.执行:

(1)把输入测试文件txt文件,放到刚建的工程的Debug文件中。

Txt文件中的内容可以

是2014helloworld

e

我爱hllo

world我爱2014

(2)在开始里输入cmd

输入的依次是:

cd

D:\1\DebugD:

1.exe12.txt

最执行结果如下:

e

Txt文件中的内容可为

2014helloworld

文档评论(0)

1亿VIP精品文档

相关文档