Saturday, December 4, 2010

IDENTIFYING DECLARATION STATEMENTS

LEX PROGRAM

%{
%}
VAR [a-zA-Z][a-zA-Z0-9]*
INT "INT"|"int"
%%
{INT} { return INT; }
"FLOAT" { return FLOAT; }
"CHAR" { return CHAR; }
{VAR} { return VAR; }
";" { return *yytext; }
"," { return *yytext; }
"\n" { return *yytext; }
[ \t] {}
%%
int yywrap()
{
return 1;
}



YACC PROGRAM


%token INT
%token FLOAT
%token CHAR
%token VAR
%{
%}
%%
line:line dec '\n' { printf("\nACCEPTED..\n"); }
|error '\n' { printf("\nINVALID...\n"); }
|
;
dec:keyword idef';'
|
;
keyword:INT
|FLOAT
|CHAR
;
idef:VAR','VAR
|VAR
;
%%
#include "lex.yy.c"
#include
void yyerror(char *s)
{
fprintf(stderr,"\n%s...\n",s);
}
int main()
{
yyparse();
exit(50);
}

No comments:

Post a Comment