diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2011-10-01 16:41:13 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2011-10-01 16:41:13 +0000 |
commit | 7c788888872233748da10a8177a9a1eb176c1bc8 (patch) | |
tree | 2a813c66793364aeb39020c96c9510bb1c4f9cee /include/llvm/TableGen/TableGenBackend.h | |
parent | 2e6b97bbf86d0825a060e190189fae7f884c79c9 (diff) |
Move TableGen's parser and entry point into a library
This is the first step towards splitting LLVM and Clang's tblgen executables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140951 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/TableGen/TableGenBackend.h')
-rw-r--r-- | include/llvm/TableGen/TableGenBackend.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/include/llvm/TableGen/TableGenBackend.h b/include/llvm/TableGen/TableGenBackend.h new file mode 100644 index 0000000000..853f92e406 --- /dev/null +++ b/include/llvm/TableGen/TableGenBackend.h @@ -0,0 +1,43 @@ +//===- llvm/TableGen/TableGenBackend.h - Backend base class -----*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// The TableGenBackend class is provided as a common interface for all TableGen +// backends. It provides useful services and an standardized interface. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_TABLEGEN_TABLEGENBACKEND_H +#define LLVM_TABLEGEN_TABLEGENBACKEND_H + +#include "llvm/Support/raw_ostream.h" +#include <string> + +namespace llvm { + +class Record; +class RecordKeeper; + +struct TableGenBackend { + virtual ~TableGenBackend() {} + + // run - All TableGen backends should implement the run method, which should + // be the main entry point. + virtual void run(raw_ostream &OS) = 0; + + +public: // Useful helper routines... + /// EmitSourceFileHeader - Output a LLVM style file header to the specified + /// ostream. + void EmitSourceFileHeader(const std::string &Desc, raw_ostream &OS) const; + +}; + +} // End llvm namespace + +#endif |