%{
#include<stdio.h>
#include<type.h>
#include<string.h>
int yy,invalid,flag,pp=-1;
char token[20],i;
struct symbol table
{
char token[20];
int ind;
}
s[20];
%}
digit[0-9]
letter[a-z A-Z]
id{letter}({letter}|{digit)*digit{digit}+num{digit}(%{digit})* relop "<" | ">" i "<=" | "i" ==" | "l=" relop "<" | ">" i "<=" | "l" == "|=" bop [-+*/%]
shift ">>" | "<<" nop "--" | "++" pun [, , \ {|}\] rey "if" | "else" | "while" delin [\t\n]
ws{delin} + com "/\*" (.) * " \* / assop "=" invalid {digit} * {letter} + ({letter}) | {digit}) * |[$] %%yytext);}
{{us}}
%%
int main()
{
yylex();
}
int install_id(char token[20])
{
int i,flag;
for(i=0;i<=fop;i++)
{
if(stramp(s[i].token,token)==0)
{
flag=1;
break;
}
else
flag=0;
}
if(flag==1)
{
printf("\n token is already present in symbol table");
}
else
{
strcopy(s[++top].token,token);
s[top].ind=top;
printf("\n token is installed in symbol table");
}
printf("\n \t\t symbol table \n");
for(i=0;i<=top;i++)
{
printf("\n %d \t\t %s \n"s[i].ind,s[i].token);
}
}
int yywrap()
{
return ();
}
#include<stdio.h>
#include<type.h>
#include<string.h>
int yy,invalid,flag,pp=-1;
char token[20],i;
struct symbol table
{
char token[20];
int ind;
}
s[20];
%}
digit[0-9]
letter[a-z A-Z]
id{letter}({letter}|{digit)*digit{digit}+num{digit}(%{digit})* relop "<" | ">" i "<=" | "i" ==" | "l=" relop "<" | ">" i "<=" | "l" == "|=" bop [-+*/%]
shift ">>" | "<<" nop "--" | "++" pun [, , \ {|}\] rey "if" | "else" | "while" delin [\t\n]
ws{delin} + com "/\*" (.) * " \* / assop "=" invalid {digit} * {letter} + ({letter}) | {digit}) * |[$] %%yytext);}
{{us}}
%%
int main()
{
yylex();
}
int install_id(char token[20])
{
int i,flag;
for(i=0;i<=fop;i++)
{
if(stramp(s[i].token,token)==0)
{
flag=1;
break;
}
else
flag=0;
}
if(flag==1)
{
printf("\n token is already present in symbol table");
}
else
{
strcopy(s[++top].token,token);
s[top].ind=top;
printf("\n token is installed in symbol table");
}
printf("\n \t\t symbol table \n");
for(i=0;i<=top;i++)
{
printf("\n %d \t\t %s \n"s[i].ind,s[i].token);
}
}
int yywrap()
{
return ();
}
No comments:
Post a Comment