词法分析程序

词法分析程序的功能:先让用户输入一段字符串程序段,然后利用词法分析程序进行词法分析,识别出关键字、标识符、常数、运算符、界符,分别输出单词自身的值以及单词种别。

符号与种别码对照表:

单词符号

种别码

单词符号

种别码

begin

1

:

17

if

2

:=

18

then

3

<

20

while

4

<=

21

do

5

<>

22

end

6

>

23

l(l|d)*

10

>=

24

dd*

11

=

25

+

13

;

26

-

14

(

27

*

15

)

28

/

16

#

0

用文法描述词法规则:

<字母>

S→a|b|.......|z;

<数字>

S→1|2|3|......|9|0;

<整数常数>

L→1|2|3|......|9;

S→L|L0;

<标识符>

A→a|b|......|z;

B→1|2|......|9|0;

S→A|B|AB;

<关键字>

S→const|var|begin|end|if|while|...

<运算符>

S→+|-|*|/|=|#|<|>|<=|>=|:=

<界符>

S→(|)|,|;|.

#include<stdio.h>
#define max 100
main()
{
    int i=0;
    char a[max]={" "};
    printf("请输入一段程序段,便于词法分析(以!作为结束符):");
    do{
        scanf("%c",&a[i]);
        i++;    
    }while(a[i-1]!='!');
}

 

posted @ 2016-09-30 20:22  198郑锦诚  阅读(220)  评论(0编辑  收藏  举报