Lex program for Decimal to Binary Conversion
Problem: Write a Lex program for Decimal to Binary conversion.
Explanation:
FLEX (Fast Lexical Analyzer Generator) is a tool/computer program for generating lexical analyzers (scanners or lexers) written by Vern Paxson in C around 1987. Lex reads an input stream specifying the lexical analyzer and outputs source code implementing the lexer in the C programming language. The function yylex() is the main flex function which runs the Rule Section.
Examples:
Input: 12 Output: 1100 Input: 115 Output: 1110011 Input: 25 Output: 11001 Input: 220 Output: 11011100
Implementation:
/* Lex program for decimal to binary conversion */ %{ /* Definition section */ #include<stdio.h> int num, r, b=0, p=1; %} DIGIT [0-9] /* Rule Section */ %% {DIGIT}+ { num= atoi (yytext); while (num > 0) { r= num % 2; b+= r*p; p*= 10; num/= 2; } printf ( "%d" , b); } .|\n ECHO; %% // driver code int main() { yylex(); return 0; } |
Output:
Contact Us