HomePhabricator

[Remarks] Simplify and refactor the RemarkParser interface

Authored by thegameg on Jul 16 2019, 8:25 AM.

Description

[Remarks] Simplify and refactor the RemarkParser interface

Before, everything was based on some kind of type erased parser
implementation which container a lot of boilerplate code when multiple
formats were to be supported.

This simplifies it by:

  • the remark now owns its arguments
  • *always* returning an error from the implementation side
  • working around the way the YAML parser reports errors: catch them through

callbacks and re-insert them in a proper llvm::Error

  • add a CParser wrapper that is used when implementing the C API to

avoid cluttering the C++ API with useless state

  • LLVMRemarkParserGetNext now returns an object that needs to be

released to avoid leaking resources

  • add a new API to dispose of a remark entry: LLVMRemarkEntryDispose

llvm-svn: 366217

Details

Committed
thegamegJul 16 2019, 8:25 AM
Parents
rGcc909812a39d: [Remarks][NFC] Combine ParserFormat and SerializerFormat
Branches
Unknown
Tags
Unknown