Partilhar via


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.