定义副本簿解析器

Mainframe Connector 支持两个版本的副本簿解析器:

  • 原生副本簿解析器:原生副本簿解析器是解析器的最新版本。原生副本簿解析器实现了基于 ANTLR4 的解析器,并支持 COBOL 副本簿。如需详细了解原生副本簿解析器支持的功能以及其使用限制,请参阅原生副本簿解析器
  • 旧版 Copybook 解析器:旧版 Copybook 解析器是支持非 COBOL 功能的旧版解析器。如果您使用的是基于领域专用语言 (DSL) 的副本簿,则旧版解析器可能更适合,因为原生副本簿解析器可能会导致错误。如需详细了解旧版复制簿解析器支持的功能以及其使用限制,请参阅旧版复制簿解析器

您可以使用 parser_type=legacy|copybook 标志根据自己的副本簿定义要使用的解析器。默认值为 auto,即自动检测模式。自动检测模式会优先使用原生副本簿解析器,该解析器适用于解析基于 COBOL 的副本簿。不过,如果您使用的是采用旧格式的非基于 COBOL 的复制簿,parser_type=legacy 标志可提供向后兼容性,帮助您使用旧版复制簿解析器。

下表根据该标志定义了大型机连接器的行为。

标志 操作
auto 大型机连接器会自动检测解析器,并按以下顺序执行三次解析尝试:
  • 使用原生解析器和第 1-6 列中的显式注释区域进行解析。如果解析成功,Mainframe Connector 会记录所使用的解析器并返回结果。如果解析失败,Mainframe 连接器会尝试下一个解析器。
  • 使用不带注释区域的原生解析器进行解析。如果解析成功,Mainframe Connector 会记录所使用的解析器并返回结果。如果解析失败,Mainframe 连接器会尝试下一个解析器。
  • 使用旧版解析器进行解析。如果解析成功,Mainframe Connector 会记录所使用的解析器并返回结果。如果解析失败,Mainframe 连接器会显示错误。
legacy 旧版解析器用于解析。它需要类似于 COBOL 的复制本,例如基于领域特定语言 (DSL) 的复制本。使用 legacy 标志时,Mainframe 连接器会显示警告,提示旧版解析器将被弃用。使用旧版解析器进行解析后,Mainframe Connector 会按以下顺序执行两次解析尝试,从而将旧版解析器的结果与原生解析器的结果进行比较:
  • 使用原生解析器解析副本簿,预计在第 1-6 列中包含显式注释区域。如果解析成功,Mainframe Connector 会将解析结果与旧版解析器的结果进行比较。如果不相等,系统会显示警告。如果解析失败,Mainframe 连接器会尝试下一个解析器。
  • 使用原生解析器解析副本簿,而不在第 1-6 列中添加注释区域。如果解析成功,Mainframe Connector 会将解析结果与旧版解析器的解析结果进行比较。如果不相等,系统会显示警告。如果解析失败,Mainframe Connector 会记录异常。
copybook 原生副本簿解析器用于解析。它需要原生副本作为输入,包括第 1-6 列中的显式注释区域。如果解析失败,Mainframe Connector 会显示错误。