Diferencias entre el preprocesamiento GDL y GPD
Hay cuatro directivas de preprocesador nuevas en GDL que no existían en la implementación de GPD: #PreCompiled, #UndefinePrefix, #EnablePPDirective y #DisablePPDirective.
Además, la directiva #Undefine ahora tampoco acepta ningún argumento. La ausencia del argumento significa que el símbolo definido más recientemente no está definido, lo que restaura el símbolo definido anteriormente.
Se recomienda no usar estas directivas nuevas si el archivo GDL también está pensado para que el analizador gpD analice. Si desea incorporar las nuevas directivas de preprocesador en un archivo GDL que también está pensado para su uso por parte de los analizadores gpD, se debe proporcionar una ruta de acceso alternativa (compatibilidad con versiones anteriores) que permita al preprocesador anterior evitar la ejecución de estas directivas nuevas. Cada ruta de acceso debe incluirse dentro de una construcción #Ifdef:, #Else #Endif, como se muestra en el ejemplo de código siguiente.
#Ifdef: NewParserVersion
*% Use new preprocessor directives if the parser supports them.
*% Lock out this entire code path by changing the prefix.
#SetPPPrefix: #New_
#New_PreCompiled: ...
*% Actually might use a mixture of old and new directives!
#New_UndefinePrefix:
#Else:
*% Otherwise only use the original set of directives.
#OldDirectives: ...
#Endif:
Además, el prefijo del preprocesador debe establecerse en algo diferente mientras se ejecutan las nuevas directivas bifurcación. El analizador advertirá si encuentra directivas con el prefijo incorrecto.