Diferenças entre o pré-processamento de GDL e GPD
Há quatro novas diretivas de pré-processador no GDL que não existiam na implementação de GPD: #PreCompiled, #UndefinePrefix, #EnablePPDirective e #DisablePPDirective.
Além disso, a diretiva #Undefine agora também não aceita nenhum argumento. A ausência do argumento significa que o símbolo definido mais recentemente é indefinido, o que restaura o símbolo definido anteriormente.
Recomendamos que você não use essas novas diretivas se o arquivo GDL também se destina a ser analisado pelo analisador gpd. Se você quiser que tp incorpore as novas diretivas de pré-processador em um arquivo GDL que também se destina a ser usado por analisadores gpd, um caminho alternativo (compatibilidade com versões anteriores) deve ser fornecido que permita que o pré-processador mais antigo evite executar essas novas diretivas. Cada caminho deve ser colocado dentro de um constructo #Ifdef:, #Else#Endif , como mostra o exemplo de código a seguir.
#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:
Além disso, o prefixo do pré-processador deve ser definido como algo diferente ao executar a bifurcação de novas diretivas. O analisador avisará se encontrar diretivas com o prefixo errado.