Differenze tra GDL e pre-elaborazione GPD
Esistono quattro nuove direttive del preprocessore in GDL che non esistevano nell'implementazione gpd: #PreCompiled, #UndefinePrefix, #EnablePPDirective e #DisablePPDirective.
Inoltre, la direttiva #Undefine ora non accetta argomenti. L'assenza dell'argomento indica che il simbolo definito più di recente non è definito, che ripristina il simbolo definito in precedenza.
È consigliabile non usare queste nuove direttive se il file GDL deve essere analizzato anche dal parser GPD. Se si desidera incorporare le nuove direttive del preprocessore in un file GDL destinato anche all'uso da parte dei parser GPD, è necessario specificare un percorso alternativo (compatibilità con le versioni precedenti) che consenta al preprocessore precedente di evitare di eseguire queste nuove direttive. Ogni percorso deve essere racchiuso in un costrutto #Ifdef:, #Else, #Endif , come illustrato nell'esempio di codice seguente.
#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:
Inoltre, il prefisso del preprocessore deve essere impostato su un valore diverso durante l'esecuzione del fork delle nuove direttive. Il parser visualizzerà un avviso se rileva direttive con il prefisso errato.