Problema: escriba un programa Lex para la conversión de decimal a binario.
Explicación:
FLEX (Fast Lexical Analyzer Generator) es una herramienta/programa informático para generar analizadores léxicos (escáneres o lexers) escrito por Vern Paxson en C alrededor de 1987. Lex lee un flujo de entrada que especifica el analizador léxico y genera el código fuente que implementa el lexer en el lenguaje de programación C. La función yylex() es la principal función flexible que ejecuta la sección de reglas.
Ejemplos:
Input: 12 Output: 1100 Input: 115 Output: 1110011 Input: 25 Output: 11001 Input: 220 Output: 11011100
Implementación:
/* 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; }
Producción:
Publicación traducida automáticamente
Artículo escrito por thakur_aman y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA