MODIFICAR EL RTL DEL COMPILADOR


Esto no tiene ningun secreto es coger palabra reservada por palabra reservada, y no strings, salvo
excepciones... e ir traduciendo.

Para eso usamos la utilidad PASHIS y luego verificamos que se ha traducido bien al compilar
y ver los fallos que suelen ser:

a) Variables del pascal antiguo que ahora pasan a ser palabras reservadas.

Es decir por ejemplo la variable vesa en pascal es una palabra reservada en hispascal.
Y como bien sabeis las palabras reservadas no se pueden usar como variables y mejor así
porque sino no detectaríamos los fallos.
 

=== REGLA A SEGUIR PROPIA DEL HISPASCAL
Así que la regla a seguir es: añadir al principio la primera letra de la palabra. vesa pasa a
ser vvesa.
=== FIN REGLA...

b) Numeros de los comentarios, normalmente del final, que se traducen mal... hay que arreglarlos
manualmente respetando el comentario original de los desarrolladores del freepascal.
 
 

USO DE LA UTILIDAD PASHIS
==========================
 

El PASHIS no tiene una mierda de comentarios... quizas alguno. Pero es un ejemplo de lo que no
se debe hacer en programación. Pero para mi representa una proeza porque consegui que gracias
al algoritmo de otro para aislar palabras reservadas poder cambiarlas y... así poder traducir
el hispascal.

Si necesitais usar el codigo mandadme un email con lo que no entendais. E intentaré
que lo entendais.

Ah, y encima el codigo está mitad en ingles y en español, ya la ostia hay que saber 3 idiomas
para entenderlo: pascal, inglés y español.
 
 

La utilidad PASHIS si no mal recuerdo se encuentra en el directorio:
 

bailalo\s6\cambiar tokens
 
 

La utilidad PASHIS tiene bugs y por ello necesita ser mejorada.
El codigo fuente de la misma está en bailalo\s6\cambiar tokens

El archivo principal es: pashis.pas y se necesitan estos dos archivos para poder compilarlo:

upashtm.pp
reser.pp

En un futuro hay que hacer que funcione de la siguiente manera:

***Las variables pascal que van a ser palabras reservadas del hispascal renombrarlas como:
ellas mismas y delante la primera letra de ellas.

ejemplo pasa a ser eejemplo

****
Y luego aplicar el algoritmo que usa ahora el programa.

Hay que tener cuidado de que en el antes.txt y el despues.txt no se encuentren dos palabras
iguales, es decir, por ejemplo var y var que no se traduce, porque entonces var se traduciría
a vvar y nosotros no queremos eso.

El antes.txt y el despues.txt solo tendrán palabras diferentes. Ya haremos una tabla html
con la correspondencia entre Pascal e Hispascal incluyendo palabras reservadas que se incluyen
igual.
 

Y para que funcione en el directorio donde este el pashis se necesita el antes.txt y el
despues.txt. Por eso el BAT (Más en adelante) los copia temporalmente al directorio donde los
archivos que estes traduciendo.
 
 

Su sintaxis es:
PASHIS archivo_origen.ext
o
PASHIS archivo_origen.ex

Donde ext es una extensión de 3 letras y ex es una extensión de 2 letras.
 
 

No obstante esto lo podemos automatizar con un BAT llamado:

JAJA.BAT

La explicación esta en el archivo como.txt que aquí "copio y pego":

Como usar el pashis mediante el jaja

Sintaxis tipo:

jaja jeje *.EXT UNIDAD

Los *.EXT se convertiran en *.sal y entonces
habra que borrar los *.ext y renombrar los *.sal a *.ext.

La palabra UNIDAD habrá cambiarla por la unidad donde teneis descomprimido el zip del
hispascal, es decir si lo teneis en d:\bailalo, como debería de ser para pasar
en directorio los *.inc a *.sal traducidos. Así pues habría que escribir:

jaja jeje *.inc D:

Coge todos los *.pp por ejemplo y los convierte en *.sa
Y coge todos los *.inc por ejemplo y los convierte en *.sal

Recalcar que extensión de longitud 2: sa, longitud 3: sal.

¿Porque esto... tu traduces los inc por ejemplo. Corriges los sal con el original inc
al lado para ver que es lo que tiene que hacer el programa... y una vez has comprobado
todos los ficheros por encima borras los *.inc.

Y renombras los *.sal a *.inc. Analogamente hay que hacer lo mismo con los *.pp

Un esquema:
*.inc ==> *.sal
*.sal ==Corregimos==> *.sal
Borramos *.inc
Renombrarmos los *.sal a *.inc

NOTA MUY IMPORTANTE SOBRE EL PASHIS PARA QUE FUNCIONE EN CUALQUIER DIRECTORIO DEBEIS AÑADIRLO
EN EL PATH EN NUESTRO EJEMPLO ANTERIOR DEBEREIS ESCRIBIR:

PATH=%PATH%;D:\BAILALO\S6\CAMBIA~1

Todo esto hay que repetirlo para todos los directorios del pp2 que cuelgan de source.