Type Here to Get Search Results !

Write a program to bulid lexical analyzer using Lex tool


// Program name as “lexicalfile.l”

%{

#include<stdio.h>

%}

delim [\t]

ws {delim}+

letter [A-Za-z]

digit [0-9]

id {letter}({letter}|{digit})*

num {digit}+(\.{digit}+)?(E[+|-]?{digit}+)?

%%

ws {printf("no action");}

if|else|then {printf("%s is a keyword",yytext);} // TYPE 32 KEYWORDS

{id} {printf("%s is a identifier",yytext);}

{num} {printf(" it is a number");}

"<" {printf("it is a relational operator less than");}

"<=" {printf("it is a relational operator less than or equal");}

">" {printf("it is a relational operator greater than");}

">=" {printf("it is a relational operator greater than");}

"==" {printf("it is a relational operator equal");}

"<>" {printf("it is a relational operator not equal");}

%%

main()

{

yylex();

}

OUTPUT

lexlexicalfile.l

cc lex.yy.c -ll

if

if is a keyword

number

number is a identifier

254

It is a number

<>

it is a relational operator not equal

^Z

Post a Comment

0 Comments
* Please Don't Spam Here. All the Comments are Reviewed by Admin.

Featured post

M

M