Simple analizador léxico desarrollado en PHP, de un simple y corto pseudolenguaje, el cual no cuenta con mas de 15 lexemas.
Se trata de un Lenguaje en Pseudo-código, el cual tiene las siguientes características:
- -- No utiliza los tradicionales PUNTO Y COMA (;) para indicar el fin de una línea.
- -- Las palabras reservadas y los símbolos están en una lista, la cual permite la facilidad de poder añadir elementos en un futuro.
- -- Los identificadores se validan en un AFD.
- -- Fue desarrollado bajo la tecnología PHP , Codificado en el Editor SUBLIME TEXT 2.
- -- La codificación del Lexer usa 2 clases: Lexer.class.php y StringTokenizer.class.php.
El anterior AFD plantea que los identificadores NO pueden comenzar por DIGITO, pueden empezar por 1 ó 2 GUION_BAJO, no puede comenzar por 3 o más. Además, NO permite GUION_BAJO en otra parte distinta al inicio. Puede contener DIGITO solo si antes ya tiene o LETRA o GUION_BAJO.
Ejemplo de palabras permitidas por el AFD : edad, _clave, __constructor, _2, apellido2.
Ejemplo de palabras NO permitidas por el AFD : 5edad, clave_, _constructor_, apellido_2.
ESTADOS | LETRA | DIGITO | GUION_BAJO | ACEPTADO? |
---|---|---|---|---|
0 | 3 | FALSO | 1 | FALSO |
1 | 3 | 3 | 2 | FALSO |
2 | 3 | FALSO | FALSO | FALSO |
3 | 3 | 3 | FALSO | VERDADERO |
LEXEMA | TIPO |
---|---|
" | COMILLA_DOBLE |
* | MULTIPLICACION |
+ | SUMA |
- | RESTA |
/ | DIVISION |
= | IGUAL |
> | MAYOR_QUE |
< | MENOR_QUE |
entero | TIPO_DATO_ENTERO |
cadena | TIPO_DATO_CADENA |
si | ESTRUCTURA_CONDICIONAL_IF |
entonces | THEN |
escriba | ESCRITURA |
fin | FIN_ESTRUCTURA_CONTROL |