|  | //===-- RemarkParserImpl.h - Implementation details -------------*- C++/-*-===// | 
|  | // | 
|  | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | 
|  | // See https://llvm.org/LICENSE.txt for license information. | 
|  | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  | // | 
|  | // This file provides implementation details for the remark parser. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #ifndef LLVM_REMARKS_REMARK_PARSER_IMPL_H | 
|  | #define LLVM_REMARKS_REMARK_PARSER_IMPL_H | 
|  |  | 
|  | namespace llvm { | 
|  | namespace remarks { | 
|  | /// This is used as a base for any parser implementation. | 
|  | struct ParserImpl { | 
|  | enum class Kind { YAML }; | 
|  |  | 
|  | explicit ParserImpl(Kind TheParserKind) : ParserKind(TheParserKind) {} | 
|  | // Virtual destructor prevents mismatched deletes | 
|  | virtual ~ParserImpl() {} | 
|  |  | 
|  | // The parser kind. This is used as a tag to safely cast between | 
|  | // implementations. | 
|  | Kind ParserKind; | 
|  | }; | 
|  | } // end namespace remarks | 
|  | } // end namespace llvm | 
|  |  | 
|  | #endif /* LLVM_REMARKS_REMARK_PARSER_IMPL_H */ |