Partilhar via


Diferenças entre o pré-processamento GDL e GPD

Há quatro novas diretivas de pré-processador no GDL que não existiam na implementação do GPD: #PreCompiled, #UndefinePrefix, #EnablePPDirective e #DisablePPDirective.

Além disso, a diretiva #Undefine também não aceita qualquer 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 destinar a ser analisado pelo analisador GPD. Se você quiser tp incorporar as novas diretivas de pré-processador em um arquivo GDL que também se destina ao uso 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 incluído dentro de uma construção #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 para algo diferente durante a execução da nova bifurcação de diretivas. O analisador avisará se encontrar diretivas com o prefixo errado.