| //===- GOFFAsmParser.cpp - GOFF Assembly Parser ---------------------------===// |
| // |
| // 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 |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "llvm/MC/MCParser/MCAsmParserExtension.h" |
| |
| using namespace llvm; |
| |
| namespace { |
| |
| class GOFFAsmParser : public MCAsmParserExtension { |
| template <bool (GOFFAsmParser::*HandlerMethod)(StringRef, SMLoc)> |
| void addDirectiveHandler(StringRef Directive) { |
| MCAsmParser::ExtensionDirectiveHandler Handler = |
| std::make_pair(this, HandleDirective<GOFFAsmParser, HandlerMethod>); |
| |
| getParser().addDirectiveHandler(Directive, Handler); |
| } |
| |
| public: |
| GOFFAsmParser() = default; |
| |
| void Initialize(MCAsmParser &Parser) override { |
| // Call the base implementation. |
| this->MCAsmParserExtension::Initialize(Parser); |
| } |
| }; |
| |
| } // namespace |
| |
| namespace llvm { |
| |
| MCAsmParserExtension *createGOFFAsmParser() { return new GOFFAsmParser; } |
| |
| } // namespace llvm |