定義副本簿剖析器

Mainframe Connector 支援兩個版本的 Copybook 剖析器:

  • 原生抄本剖析器:原生抄本剖析器是剖析器的最新版本。原生副本簿剖析器會實作以 ANTLR4 為基礎的剖析器,並支援 COBOL 副本簿。如要進一步瞭解原生副本簿剖析器支援的功能和使用限制,請參閱「原生副本簿剖析器」。
  • 舊版 copybook 剖析器:舊版 copybook 剖析器是舊版剖析器,可支援非 COBOL 功能。如果您使用的是領域專屬語言 (DSL) 的副本簿,則傳統剖析器可能更適合,因為原生副本簿剖析器可能會導致錯誤。如要進一步瞭解舊版 Copybook 剖析器支援的功能和使用限制,請參閱「舊版 Copybook 剖析器」。

您可以使用 parser_type=legacy|copybook 標記,根據您的抄本定義要使用的剖析器。預設值為 auto,即自動偵測模式。自動偵測模式會優先使用原生副本簿剖析器,這種剖析器適合剖析以 COBOL 為基礎的副本簿。不過,如果您使用非 COBOL 的舊版格式副本簿,parser_type=legacy 標記可提供回溯相容性,協助您使用舊版副本簿剖析器。

下表定義了 Mainframe Connector 根據標記執行的行為。

旗標 動作
auto Mainframe Connector 會自動偵測剖析器,並依照以下順序執行三次剖析嘗試:
  • 使用原生剖析器和第 1 到 6 欄中的明確註解區域進行剖析。如果剖析成功,主機介面連接器會記錄所使用的剖析器,並傳回結果。如果剖析失敗,主機連接器會嘗試下一個剖析器。
  • 使用原生剖析器剖析,但不包含註解區域。如果剖析成功,主機連接器會記錄所使用的剖析器,並傳回結果。如果剖析失敗,主機連接器會嘗試下一個剖析器。
  • 使用舊版剖析器剖析。如果剖析成功,主機連接器會記錄所使用的剖析器,並傳回結果。如果剖析失敗,Mainframe Connector 會顯示錯誤。
legacy 舊版剖析器用於剖析。它會預期 COBOL 外觀的副本簿,例如以網域專用語言 (DSL) 為基礎的副本簿。使用 legacy 旗標時,主機連接器會顯示警告,指出舊版剖析器將淘汰。使用舊版剖析器剖析後,主機連接器會依照以下順序執行兩次剖析嘗試,比較舊版剖析器和原生剖析器的結果:
  • 使用原生剖析器剖析副本簿,該剖析器會在第 1 到 6 欄中預期明確的註解區域。如果剖析成功,主機介面會將剖析結果與舊版剖析器的結果進行比較。如果不相等,系統會顯示警告。如果剖析失敗,主機連接器會嘗試下一個剖析器。
  • 使用原生剖析器剖析副本簿,但不包含第 1 至 6 欄的註解區域。如果剖析成功,主機介面會將剖析結果與舊版剖析器的結果進行比較。如果不相等,系統會顯示警告。如果剖析失敗,Mainframe Connector 會記錄例外狀況。
copybook 原生抄本剖析器用於剖析。它會將原生副本簿做為輸入內容,包括第 1 至 6 欄中的明確註解區域。如果剖析失敗,Mainframe Connector 會顯示錯誤。