next up previous
Next: PARORD.MLY Up: No Title Previous: FICHIA.ML

SCANORD.MLL

Este fichero se corresponde con el scanner necesario para el reconocimiento de órdenes (que pueden incluir expresiones lógicas como parámetros). Dentro del mismo se definen las expresiones regulares a reconocer. Dentro de estos patrones a reconocer se encuentran:

Los patrones que se reconocen se pasarán al parser en forma de tokens.

Si se introduce un carácter no permitido, entonces se activará un error y aparece en consola el mensaje oportuno.

A continuación se muestra el código correspondiente a este fichero:


{
#open "parord";;
exception Error_lexico;;
}

rule token_ord = parse
        `(` {PI}
        |`)`  {PD}
        |`,`  {COMA}
        |"->"  {IMPLICA}
        |"empty"        {EMPTY}
        |"save"         {SAVE}
        |"in"           {IN}
        |"drop"         {DROP}
        |"proof"        {PROOF}
        |"list"         {LIST}
        |"exit" {SALIR}
        |`^` {AND}
        |[`A`-`Z`]+ {NOMBREMAY (get_lexeme (lexbuf))}
        |[`a`-`z`]+ {NOMBREMIN (get_lexeme (lexbuf))}
        |[` ` `\t`]+ {token_ord lexbuf}
        |[`\n`]  {EOL}
        |_ {print_string "Error in order line";
            print_newline();
            print_string "This is the mistake : ";
            print_string (get_lexeme (lexbuf));print_newline();
            flush std_out;raise Error_lexico
        }
;;



David E. Losada Carril
Thu Oct 10 11:55:26 MET 1996