Programa Lex para verificar si aparecen caracteres distintos al alfabeto en una string

Problema: escriba un programa Lex para encontrar si un carácter, aparte de los alfabetos, aparece en una string o no .

Explicación: –   Flex (Fast Lexical Analyzer Generator) es una herramienta o programa informático que genera analizadores léxicos (escáneres o lexers) escritos 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: abcd
Output: No character other than alphabets
Explanation: Since we have alphabets ranging from a to z that's why the output is "no character other than alphabets"
 
Input: abcd54
Output: character other than alphabets present
Explanation: since 5 and 4 are not alphabets
 
Input: abc@bdg
Output: character other than alphabets present
Explanation: since @ is not a alphabet

A continuación se muestra el programa de implementación:

C

%{
  int len=0;
%}
 
// Rules to identify if a character apart from alphabets
// occurs in a string
 
%%
[a-zA-Z]+ {printf("No character other than alphabets");}
 
/* here . will match any other character than alphabets
 because alphabets are already matched above
 * will matches 0 or more characters in front of it.
*/
 
.* {printf("character other than alphabets present"); }
%%
  
// code section
int yywrap() { }
   
int main()
 { 
  yylex();
  return 0;
 }

Producción:

Publicación traducida automáticamente

Artículo escrito por priyanshugupta627 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *