Estoy elaborando un analizador lexico que busque en un archivo una url, luego debe verificar si esta escrita correctamente segun las reglas que coloqué, les dejo el codigo xfavor ayudenme, gracias
%option noyywrap
%{
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
%}
/******************************DEFINICION DE TOKENS******************************************/
HTTP (http)
FTP (ftp)
HTTPS (https)
LDAP (ldap)
DIAG ("/")
DOSPUNTOS (":")
PUNTO (".")
LETRA [A-Za-z]
DIGITO [0-9]
INTERROGA ("?")
IGUAL ("=")
GUION_MAY ("_")
GUION_MEN ("-")
PAREN_ABIERTO ("(")
PAREN_CERRADO (")")
AMPERSON ("&")
ASTERISCO ("*")
MAS ("+")
CADENA ({LETRA}|{DIGITO}|{GUION_MAY}|{GUION_MEN})+
DOMINIO {CADENA}({PUNTO}{CADENA})*({DOSPUNTOS}{DIGITO}+)*(({DIAG}({CADENA}|{DIGITO}|{PUNTO}|{INTERROGA}|{IGUAL}|{GUION_MAY}|{GUION_MEN}|{PAREN_ABIERTO}|{PAREN_CERRADO}|{AMPERSON}|{ASTERISCO}|{MAS})*)*
PROTOCOLO {HTTP}|{FTP}|{HTTPS}|{LDAP}
URL {PROTOCOLO}{DOSPUNTOS}{DIAG}{DIAG}{DOMINIO}
%%
URL {printf("%s es una url valida",yytext);}
. {printf("%s no es una url valida",yytext);}
%%
int main(int argc, char *argv[])
{
system("clear");
yyin = fopen(argv[1],"r");
yylex();
fclose(yyin);
return 0;
}
Ayuda con mi analizador lexico
Moderador: Moderadores