1.9 KiB
1.9 KiB
Especificaciones del lenguaje PASM
- 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)
- True\False: Simplemten se salta 4\5 espacios un true\false malformado puede ocasionar bugs.. asi que a tener en cuenta eso
- 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
- Keys: Dependera del backend que se use..
- JUMP Labels: solo ascci puro el parser no escapa \ ni nada.. aparte un jump es tal que @label donde es el delimitador de cierre el parser lo buscara para confirmar que la etiqueta cerro, ejemplos "label" o 'label' o #label#, etc..
- 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).