实现C语言小子集程序的词法分析Word文档格式.docx

上传人:b****3 文档编号:17056450 上传时间:2022-11-28 格式:DOCX 页数:14 大小:166.39KB
下载 相关 举报
实现C语言小子集程序的词法分析Word文档格式.docx_第1页
第1页 / 共14页
实现C语言小子集程序的词法分析Word文档格式.docx_第2页
第2页 / 共14页
实现C语言小子集程序的词法分析Word文档格式.docx_第3页
第3页 / 共14页
实现C语言小子集程序的词法分析Word文档格式.docx_第4页
第4页 / 共14页
实现C语言小子集程序的词法分析Word文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

实现C语言小子集程序的词法分析Word文档格式.docx

《实现C语言小子集程序的词法分析Word文档格式.docx》由会员分享,可在线阅读,更多相关《实现C语言小子集程序的词法分析Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

实现C语言小子集程序的词法分析Word文档格式.docx

如:

void,int,float,char,if,else,while,do,return。

2.标识符,用来表示各种名字,如变量名,数组名等。

3.常量,常量的类型一般有整型,实型,布尔型,文字型等等。

4.运算符,如+,-,*,/,%等

5.界符,如逗号,分号,括号等等。

表1C语言小子集的定义表

种别码

符号

无定义

11

>

=

22

}

1

标示符

12

==

23

;

2

整数

13

!

24

3

+

14

&

25

void

4

-

15

||

26

int

5

*

16

27

float

6

/

17

28

char

7

%

18

29

if

8

<

19

[

30

else

9

20

]

31

while

10

21

{

32

do

33

return

三.总控流程图

N

Y

主程序流程图

在主程序中,打开文件,调用函数,当文件中的读完后,结束程序。

关键码流程图

字母流程图

数字流程图

四.测试运行

1.屏幕输出

2.文件源代码如下

3.编码实现词法分析程序

5.程序源代码

#include<

stdio.h>

string.h>

stdlib.h>

char*g[9]={"

void"

"

int"

float"

char"

if"

else"

"

while"

do"

return"

};

intnm[9]={25,26,27,28,29,30,31,32,33};

FILE*fP;

intikey(charstr[])

inti,m;

for(i=0;

i<

9;

i++)

{

if(strcmp(str,g[i])==0)

m=nm[i];

returnm;

}

return0;

intword(charc)

if((c>

='

A'

&

c<

Z'

)||(c>

a'

z'

))

return1;

intnum(charc)

if(c>

0'

9'

else

voidap()

intn;

charc;

inti=0;

charstr[100];

while((c=fgetc(fP))!

=EOF)

if(c=='

'

||c=='

\t'

continue;

elseif(c=='

\n'

printf("

\n"

);

elseif(num(c)==1)

{

while(num(c))

{

str[i]=c;

i++;

c=fgetc(fP);

}

str[i]='

\0'

fseek(fP,-1,SEEK_CUR);

printf("

2,"

%s"

str);

elseif(word(c))

{

i=0;

while(word(c)||num(c))

str[i]=c;

i++;

c=fgetc(fP);

str[i]='

fseek(fP,-1,SEEK_CUR);

n=ikey(str);

if(n!

=0)

printf("

"

%d"

n);

->

else

1,%s>

else

switch(c)

case'

+'

:

3,->

break;

-'

4,->

*'

5,->

/'

6,->

%'

7,->

'

8,->

='

9,->

10,->

11,->

=='

12,->

13,->

14,->

||'

15,->

16,->

('

17,->

)'

18,->

['

19,->

]'

20,->

{'

21,->

}'

22,->

23,->

'

24,->

intmain(intargc,charargv[])

fP=fopen("

test1.txt"

r"

ap();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1