词法分析程序

词法分析程序的功能:
用户输入一段源程序,通过词法分析程序进行对这段源程序的相关的分解,通过对
符号的对比,进行相应的符号与种别码的对照,最后进行源程序的分析后答案的输入。

符号与种别码对照表:
单词符号 种别码 单词符号 种别码
begin     1        :          17
if           2        :=        18
then      3        <          20
while      4       <=        22
do         5
end       6         >         23
l(l|d)*   10       >=       24
dd*      11       =         25
+         13         ;        26
-          14        (         27
*          15        )        28
/          16        #         0

用文法描述词法规则:

<字母〉L->a|b|c|...|y|z|

<数字>D->1|2|3|...|8|9|
s->D|sD|s0|
<标识符>
A->1|2|3|...|8|9|
B->a|b|c|...|y|z|
S->AB
<运算符>
A->+|-|*|/|
<分隔符>
A->:|:=|<|<=|<>|>|>=|=|;|(|)


已完成的代码:

#include <stdio.h>
#include <string.h>
char prog[80],token[8],ch;
int syn,p,m,n,sum;
char *rwtab[6]={"begin","if","then","while","do","end"};
void scaner();
main()
{p=0;
printf("please input a string(end with '#'):");
do{
scanf("%c",&ch);
prog[p++]=ch;
}while(ch!='#');
}

转载于:https://www.cnblogs.com/cgz123/p/5924784.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值