Lexes un programa informático que genera analizadores léxicos. 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.
Los comandos para ejecutar el programa lex son:
lex abc.l (abc is the file name) cc lex.yy.c ./a.out
Problema: escriba un programa lex para encontrar si un carácter aparte del alfabeto aparece en una string dada.
Ejemplo :
Input : GeeksforGeeks is best Output : other characters are also present Explanation: Because ' ' space is also a character Input : geeksforgeeks Output : only alphabets present Explanation: Only english alphabets are present in the string
Acercarse :
- Usar la bandera para verificar si otros personajes también están presentes o no;
- Si se encuentra «\n» , asumiremos que el usuario ha dado la string por completo y ahora quiere que se muestre el resultado.
- Entonces, de acuerdo con el estado de la bandera, mostraremos la salida.
- De lo contrario, si se encuentra cualquier otro carácter excepto (az, AZ) , haremos que el indicador sea = 1, que estamos verificando a través de la expresión regular.
A continuación se muestra la implementación:
C++
/* lex code to check for characters other that alphabets in a given string */ %{ int flag = 0; %} %% [\n] { flag==0?printf("Only alphabets present\n"): printf("Other characters are also present\n"); flag = 0; } [^a-zA-Z] {flag = 1;} . {} %% int yywrap(void) {} int main(){ yylex(); return 0; }
Producción:
Publicación traducida automáticamente
Artículo escrito por abhijeet010304 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA