Ayuda con mi analizador lexico

Cuestiones y dudas acerca de lenguajes de programación diversos.

Moderador: Moderadores

yonicm
Novat@
Mensajes: 1
Registrado: Jue Jun 10, 2010 8:18 pm

Ayuda con mi analizador lexico

Mensaje por yonicm » Jue Jun 10, 2010 8:24 pm

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;
}