forked from nique_372/BasesParserSLan
29 lines
1.9 KiB
Markdown
29 lines
1.9 KiB
Markdown
# Especificaciones del lenguaje PASM
| |
| |
1. Numeros: La idea es que en el 90+% de los casos comunes de eso.... todo se procesa bien.. ahora en casos "extremos"
| |
o con perdida de precision hay ciertos comportamientos que ud debera de saber...
| |
- Manejo de overflow de enteros (valores constantes
| |
en los registros): El parser lo trata como un error asi que terminara instantaneamente el parseo aplica a:
| |
> - Parte entera de un integer
| |
> - Exponente de un integer
| |
> - Parte decimal de un numero real
| |
- Exponente de un real: Si ya no se puede representar tipo mayor a 22 o menos 22.. lo CLAMPEA (no lo rendondea ni fallback)
| |
- Si el numero real ya no puede representarse: Ya el numero no es seguro dado que si ocurre un ov en la parte decimal o algo asi
| |
la multiplacion dara basrua por el exp... asi que cuidado con eso.
| |
- Leading zeros: El parser no permite los leading zeros.. se rechazara con un error. (aplica en la parte entera y el exponente del real)
| |
| |
2. True\False: Simplemten se salta 4\5 espacios un true\false malformado puede ocasionar bugs.. asi que a tener en cuenta eso
| |
3. Strgins: Se parsean correctamente el parser salta los \ solo que dpeendie del backend que use.. este ultimo recibira posiciones
| |
y debera de maquetar el string
| |
4. Keys: Dependera del backend que se use..
| |
5. JUMP Labels: solo ascci puro el parser no escapa \ ni nada.. aparte un jump es tal que @<X>label<X>
| |
donde <X>es el delimitador de cierre el parser lo buscara para confirmar que la etiqueta cerro, ejemplos "label" o 'label'
| |
o #label#, etc..
| |
6. Declaracion de label: Solo ascci puro ademas de que aqui la regla para cortar es que si el parser encuntra un : + uin [ws]
| |
quiere decir que ya ahi corta el label ejemplo:
| |
> - label: ...
| |
Donde no cortaria seria aqui por ejemplo
| |
> - label:2
| |
Dado que luego del : hay un caracter real.
| |
Ahora ws en el parser se define como un caracters ascci menor a 33 (osea \t \n espacio, etc...
| |
osea todos los caracters de control.. casi).
|