//===-- LLParser.h - Parser Class -------------------------------*- 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 defines the parser class for .ll files. // //===----------------------------------------------------------------------===// #ifndef LLVM_ASMPARSER_LLPARSER_H #define LLVM_ASMPARSER_LLPARSER_H #include "LLLexer.h" #include "llvm/ADT/StringMap.h" #include "llvm/AsmParser/NumberedValues.h" #include "llvm/AsmParser/Parser.h" #include "llvm/IR/Attributes.h" #include "llvm/IR/FMF.h" #include "llvm/IR/Instructions.h" #include "llvm/IR/ModuleSummaryIndex.h" #include "llvm/Support/ModRef.h" #include <map> #include <optional> namespace llvm { class Module; class ConstantRange; class FunctionType; class GlobalObject; class SMDiagnostic; class SMLoc; class SourceMgr; class Type; struct MaybeAlign; class Function; class Value; class BasicBlock; class Instruction; class Constant; class GlobalValue; class Comdat; class MDString; class MDNode; struct SlotMapping; /// ValID - Represents a reference of a definition of some sort with no type. /// There are several cases where we have to parse the value but where the /// type can depend on later context. This may either be a numeric reference /// or a symbolic (%var) reference. This is just a discriminated union. struct ValID { … }; class LLParser { … }; } // End llvm namespace #endif