1.词法分析程序的功能:
词法分析器所输出单词符号常常表示成如下的二元式:
(单词种别,单词符号的属性值)
单词种别通常用整数编码。标识符一般统归为一种。常数则宜按类型(整、实、布尔等)分种。关键字可将其全体视为一种。运算符可采用一符一种的方法。界符一般用一符一种的方法。对于每个单词符号,除了给出了种别编码之外,还应给出有关单词符号的属性信息。单词符号的属性是指单词符号的特性或特征。
2.符号和种别码的对照表:
3.用文法描述词法规则:
程序设计语言中的几类单词可用下述规则描述:
1.增长的趋势:a^2n,aa aaaa aaaaaa........
b^2n,bb bbbb bbbbbb.......
2.循环规律:A->aa A->Aaa
B->bb B->Bbb
3.S->A|B
A->aa|Aaa // 意思是aa为开头,循环不断增加aa
B->bb|Bbb // 意思是bb为开头,循环不断增加bb
4.已完成的代码:
#include<stdio.h> #include<string.h> char one[9][10]={"begin","if","then","while","do","end","main","int","char"}; int number; int fenxi(char a[],int p) { char b[10]; int i=0,j=1,q; do{ b[0]=a[i]; if((b[0]>='a'&&b[0]<='z')||(b[0]>='A'&&b[0]<='Z')) { for(j=1;j<10;j++) { b[j]=a[j]; if(b[j]==' ') { b[j]='