0%

Win10&7下配置Lex

STEP-0

首先,抛弃老师给的活化石文件,

下载mingw

然后配置mingw 环境变量(X:\是你放mingw的位置)

为Path变量(上面的用户还是下面的系统环境变量都可)添加如下变量值

变量值
X:\MinGW\bin

cmd运行gcc -v 显示下面这个就成了

image.png

STEP-1

解压UnxUtils.rar,取文件路径(我的是C:\UnxUtils)

STEP-2

配置系统环境变量,(这里是我的例子)

1.png
变量名 变量值
bison_hairy C:\UnxUtils\usr\local\share
bison_simple C:\UnxUtils\usr\local\share

为Path变量添加如下变量值

2.png
变量值
C:\UnxUtils\usr\local\lib
C:\UnxUtils\usr\local\wbin

STEP-3

为你的Lex新建一个目录(我的是C:\Users\l1ngf\Desktop\lex)

3.png

先丢进去老师给的那俩测试文件

然后新建bat文件,内容如下(不想用bat的话,cd到新建目录下执行以下命令也可)

1
2
3
flex lex.l
gcc lex.yy.c -o compiled
compiled.exe

STEP-4

最后双击刚刚新建的bat文件

4.png

编译执行成功

之后写这玩意儿直接编辑目录下的lex.l就行了,改好ctrl+s再跑下批处理就会自动编译运行

–最后贴一下老师给的测试代码

lex.l

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
%{
#include <stdio.h>
int num_lines = 0, num_chars = 0;

%}

%%


\n {++num_lines; ++num_chars;}
. ++num_chars;

%%
int main()
{
yyin = fopen("mytext.txt", "r");
if (yyin != NULL) {
yylex();
}
printf( "# of lines = %d,\n # of chars = %d\n",
num_lines, num_chars );


system("PAUSE");
return 0;
}
int yywrap()
{
return (1);
}

mytest.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
dfajkkskd
kdja
username kkkkkaaf
kdafjak
a;afdaaf
afdsg
x=3.3
if y=535.5
then
z=x+y
else
z=0
begin
kkk
end
function good
end