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:
Paréntesis, comas, AND's, flechas, retornos de carro, espacios y tabulaciones.
Para reconocer órdenes de salir, introducir sentencias, ...
Cualquier secuencia de letras se interpretará como un nombre. Para la aplicación se considera que los nombres deben ser en letras mayúsculas o minúsculas, pero no ambas.
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 } ;;