//===- TGParser.h - Parser for TableGen Files -------------------*- 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 class represents the Parser for tablegen files. // //===----------------------------------------------------------------------===// #ifndef LLVM_LIB_TABLEGEN_TGPARSER_H #define LLVM_LIB_TABLEGEN_TGPARSER_H #include "TGLexer.h" #include "llvm/TableGen/Error.h" #include "llvm/TableGen/Record.h" #include <map> namespace llvm { class SourceMgr; class Twine; struct ForeachLoop; struct MultiClass; struct SubClassReference; struct SubMultiClassReference; struct LetRecord { … }; /// RecordsEntry - Holds exactly one of a Record, ForeachLoop, or /// AssertionInfo. struct RecordsEntry { … }; /// ForeachLoop - Record the iteration state associated with a for loop. /// This is used to instantiate items in the loop body. /// /// IterVar is allowed to be null, in which case no iteration variable is /// defined in the loop at all. (This happens when a ForeachLoop is /// constructed by desugaring an if statement.) struct ForeachLoop { … }; struct DefsetRecord { … }; struct MultiClass { … }; class TGVarScope { … }; class TGParser { … }; } // end namespace llvm #endif