1 //===- llvm/TableGen/Main.h - tblgen entry point ----------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // This file declares the common entry point for tblgen tools. 10 // 11 //===----------------------------------------------------------------------===// 12 13 #ifndef LLVM_TABLEGEN_MAIN_H 14 #define LLVM_TABLEGEN_MAIN_H 15 16 #include <functional> 17 18 namespace llvm { 19 20 class raw_ostream; 21 class RecordKeeper; 22 23 /// Perform the action using Records, and write output to OS. 24 /// Returns true on error, false otherwise. 25 using TableGenMainFn = bool (raw_ostream &OS, RecordKeeper &Records); 26 27 int TableGenMain(const char *argv0, 28 std::function<TableGenMainFn> MainFn = nullptr); 29 30 } // end namespace llvm 31 32 #endif // LLVM_TABLEGEN_MAIN_H 33