From 2c0f2c74bea4f40acb03b0c7c85d9cfc35feff2d Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 6 Aug 2003 04:23:04 +0000 Subject: [PATCH] New common interface for backends to use git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7625 91177308-0d34-0410-b5e6-96231b3b80d8 --- support/tools/TableGen/TableGenBackend.cpp | 17 ++++++++++++++ support/tools/TableGen/TableGenBackend.h | 26 ++++++++++++++++++++++ utils/TableGen/TableGenBackend.cpp | 17 ++++++++++++++ utils/TableGen/TableGenBackend.h | 26 ++++++++++++++++++++++ 4 files changed, 86 insertions(+) create mode 100644 support/tools/TableGen/TableGenBackend.cpp create mode 100644 support/tools/TableGen/TableGenBackend.h create mode 100644 utils/TableGen/TableGenBackend.cpp create mode 100644 utils/TableGen/TableGenBackend.h diff --git a/support/tools/TableGen/TableGenBackend.cpp b/support/tools/TableGen/TableGenBackend.cpp new file mode 100644 index 00000000000..f00c6eedb74 --- /dev/null +++ b/support/tools/TableGen/TableGenBackend.cpp @@ -0,0 +1,17 @@ +//===- TableGenBackend.cpp - Base class for TableGen Backends ---*- C++ -*-===// +// +// This file provides useful services for TableGen backends... +// +//===----------------------------------------------------------------------===// + +#include "TableGenBackend.h" +#include + +void TableGenBackend::EmitSourceFileHeader(const std::string &Desc, + std::ostream &OS) { + OS << "//===- TableGen'erated file -------------------------------------*-" + " C++ -*-===//\n//\n// " << Desc << "\n//\n// Automatically generate" + "d file, do not edit!\n//\n//===------------------------------------" + "----------------------------------===//\n\n"; +} + diff --git a/support/tools/TableGen/TableGenBackend.h b/support/tools/TableGen/TableGenBackend.h new file mode 100644 index 00000000000..b9e8c49d4c5 --- /dev/null +++ b/support/tools/TableGen/TableGenBackend.h @@ -0,0 +1,26 @@ +//===- TableGenBackend.h - Base class for TableGen Backends -----*- C++ -*-===// +// +// The TableGenBackend class is provided as a common interface for all TableGen +// backends. It provides useful services and an standardized interface. +// +//===----------------------------------------------------------------------===// + +#ifndef TABLEGENBACKEND_H +#define TABLEGENBACKEND_H + +#include +#include + +struct TableGenBackend { + + // run - All TableGen backends should implement the run method, which should + // be the main entry point. + virtual void run(std::ostream &OS) = 0; + + +public: // Useful helper routines... + void EmitSourceFileHeader(const std::string &Desc, std::ostream &OS) const; + +}; + +#endif diff --git a/utils/TableGen/TableGenBackend.cpp b/utils/TableGen/TableGenBackend.cpp new file mode 100644 index 00000000000..f00c6eedb74 --- /dev/null +++ b/utils/TableGen/TableGenBackend.cpp @@ -0,0 +1,17 @@ +//===- TableGenBackend.cpp - Base class for TableGen Backends ---*- C++ -*-===// +// +// This file provides useful services for TableGen backends... +// +//===----------------------------------------------------------------------===// + +#include "TableGenBackend.h" +#include + +void TableGenBackend::EmitSourceFileHeader(const std::string &Desc, + std::ostream &OS) { + OS << "//===- TableGen'erated file -------------------------------------*-" + " C++ -*-===//\n//\n// " << Desc << "\n//\n// Automatically generate" + "d file, do not edit!\n//\n//===------------------------------------" + "----------------------------------===//\n\n"; +} + diff --git a/utils/TableGen/TableGenBackend.h b/utils/TableGen/TableGenBackend.h new file mode 100644 index 00000000000..b9e8c49d4c5 --- /dev/null +++ b/utils/TableGen/TableGenBackend.h @@ -0,0 +1,26 @@ +//===- TableGenBackend.h - Base class for TableGen Backends -----*- C++ -*-===// +// +// The TableGenBackend class is provided as a common interface for all TableGen +// backends. It provides useful services and an standardized interface. +// +//===----------------------------------------------------------------------===// + +#ifndef TABLEGENBACKEND_H +#define TABLEGENBACKEND_H + +#include +#include + +struct TableGenBackend { + + // run - All TableGen backends should implement the run method, which should + // be the main entry point. + virtual void run(std::ostream &OS) = 0; + + +public: // Useful helper routines... + void EmitSourceFileHeader(const std::string &Desc, std::ostream &OS) const; + +}; + +#endif -- 2.34.1