Compiler projects using llvm
// This file defines extra methods for classes in stringtab.h
// that are specific to code generation.
#ifndef STRINGTAB_HANDCODE_H
#define STRINGTAB_HANDCODE_H

#include <iostream>
class CgenClassTable;
namespace llvm { class GlobalVariable; }

// Extra methods added to classes in stringtab.h
#define StringEntry_EXTRAS                                                     \
  void code_def(CgenClassTable *class_table);                \
  void code_ref(CgenClassTable *class_table);                \
  llvm::GlobalVariable* ptr;

#define IntEntry_EXTRAS                                                        \
  void code_ref(CgenClassTable *class_table);

#define StrTable_EXTRAS                                                        \
  void code_string_table(CgenClassTable *class_table);  \
  std::string get_file() const;

#endif /* STRINGTAB_HANDCODE_H */