#include <stdio.h>#include<string.h>#defineN 100Main () {intJ,i=0; CharA[n],b[n]; printf ("Please enter source program: (end with #) \ n"); Gets (a); I=0; while(a[i]!='#') { if(a[i]>= $&&a[i]<=122) {J=0; while(a[i]!=' '&&a[i]!='#'&& (a[i]>= $&&a[i]<=122) ) {B[j]=A[i]; J++; I++; } I--; B[J]=' /'; if(strcmp (b,"begin")==0) printf ("<1,begin>\n"); Else if(strcmp (b,"if")==0) printf ("<2,if>\n"); Else if(strcmp (b," Then")==0) printf ("<3,then>\n"); Else if(strcmp (b," while")==0) printf ("<4,while>\n"); Else if(strcmp (b," Do")==0) printf ("<5,do>\n"); Else if(strcmp (b,"End")==0) printf ("<6,end>\n"); } Else { Switch(A[i]) { Case '+': printf ("<13,+>\n"); Break; Case '-': printf ("<14,->\n"); Break; Case '*': printf ("<15,*>\n"); Break; Case '/': printf ("<16,/>\n"); Break; Case ':':if(a[i+1]=='=') {printf ("<18,:=>\n"); I++; } Elseprintf"<17,:>\n"); Break; Case '<':if(a[i+1]=='=') {printf ("<21,<=>\n"); I++; } Else if(a[i+1]=='>') {printf ("<22,<>>\n"); I++; } Elseprintf"<20,:>\n"); Break; Case '>':if(a[i+1]=='=') {printf ("<24,>=>\n"); I++; } Elseprintf"<23,>>\n"); Break; Case '=': printf ("<25,=>\n"); Break; Case ';': printf ("<26,;>\n"); Break; Case '(': printf ("<27, (>\n"); Break; Case ')': printf ("<28,) >\n"); Break; Case' ': Break; default: if(a[i]>='0'&&a[i]<='9') printf ("<11,%c>\n", A[i]); Elseprintf ("'%c ' input error! \ n", A[i]); Break; }} I++; }}
0916 Lexical analyzer