GDL과 GPD 전처리 간의 차이점
GPD 구현에 존재하지 않는 GDL에는 #PreCompiled, #UndefinePrefix, #EnablePPDirective및#DisablePPDirective 네 가지 새로운 전처리기 지시문이 있습니다.
또한 이제 #Undefine 지시문도 인수를 허용하지 않습니다. 인수가 없으면 가장 최근에 정의된 기호가 정의되지 않아 이전에 정의된 기호가 복원됩니다.
GDL 파일도 GPD 파서에서 구문 분석하려는 경우 이러한 새 지시문을 사용하지 않는 것이 좋습니다. 새 전처리기 지시문을 GPD 파서에서 사용하기 위한 GDL 파일에 tp를 통합하려면 이전 전처리기가 이러한 새 지시문을 실행하지 않도록 하는 대체(이전 버전과의 호환성) 경로를 제공해야 합니다. 다음 코드 예제와 같이 각 경로는 #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:
또한 새 지시문 포크를 실행하는 동안 전처리기 접두사는 다른 것으로 설정해야 합니다. 잘못된 접두사로 지시문이 발견되면 파서가 경고합니다.