Lenko escribió:
En principio todo compila bien y no da problemas. Por eso pregunto... ¿Hay alguna razón práctica para que la inclusión de "Gramatica" tenga que ir al final?
No estoy del todo seguro, pero juraría que lo imperioso es, en este orden (o alguno parecido ^_^):
-que las lineas de extensión de la gramática (las "extend") vayan después (no es necesario que sea inmediatamente después, sino solamente después XD) tanto del "Include gramatica;" como de las rutinas "Sub" creadas por el autor a las que referencien.
-y a su vez, y por idénticos motivos, que el "Include gramatica;" vaya después del "include acciones;". No importa que sea justito después o cientos de lineas después mientras siga siendo "después"
Una manera práctica de asegurar todo ello es acostumbrar al programador a poner el "include gramatica;" seguido de las lineas "extend" como "lo último de lo último"
Pero en realidad nada impide poner el "include gramatica;" más "cerca" del principio del listado, junto con los otros includes, siempre que vaya después de incluir "eparser" y "acciones"
Es muy posible que tus listados funcionen si dejas el "include gramatica;" al final pero pones los includes de cortos, etemas, decorados, etc... al principio, antes de los objetos que vayan a utilizar pero después de los includes de Eparser y acciones, ya que ninguno de estos módulos (si echas un vistazo a sus rerspectivos listados) usan lineas de extensión de gramática, pero ojo, que lo estoy diciendo sin probar ^^
¿Por qué entonces los ficheros de documentación de, al menos, cortos y decorados piden expresamente que se incluyan "después" de gramatica? Pues... juro que es un completo misterio para mí... Quizá Mel tenía una buena razón para ello, o quizá simplemente sea una herencia del modelo de plantilla de Morgul que todavía, creo, se mantiene en el kit en el que ponía el "include gramatica;" al principio, junto al resto de includes (aunque religiosamente después de eparser y acciones), una situación correcta, aunque la otra sea más recomendable. Pero insisto en que no lo puedo asegurar a ciencia cierta.
Vamos, que en teoría el siguiente orden:
Código:
Include "Eparser";
Include "Acciones";
Include "Cortos";
Include "Etemas";
Include "Decorados";
!
! Resto de la aventura
! con sus objetos y rutinas
! variados, incluyendo los que vayan
! a usar decorados, cortos, etemas, etc...
!
Include "Gramatica";
!
! cuantas lineas "extend" hubiera que poner
!
...debería de ser válido, pruebalo a ver. De todos ellos yo sólo he usado alguna vez "Etemas", siguiendo este orden, y sin ningún problema.