共用方式為


GDL 與 GPD 前置處理之間的差異

GDL 中有四個新的預處理器指示詞不存在於 GPD 實作中: #PreCompiled#UndefinePrefix#EnablePPDirective#DisablePPDirective

此外, #Undefine 指示詞現在也接受無引數。 沒有 引數表示最近定義的符號未定義,這會還原先前定義的符號。

如果 GDL 檔案也是要由 GPD 剖析器剖析,建議您不要使用這些新指示詞。 如果您想要 tp 將新的預處理器指示詞併入 GDL 檔案中,也供 GPD 剖析器使用,則必須提供替代 (回溯相容性) 路徑,讓較舊的預處理器避免執行這些新指示詞。 每個路徑都應該以#Ifdef:#Else#Endif建構括在內,如下列程式碼範例所示。

#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:

此外,在執行新的指示詞分叉時,預處理器前置詞應該設定為不同的專案。 如果剖析器遇到具有錯誤前置詞的指示詞,剖析器將會發出警告。