text: // Pharos Demangler
  //
  // Copyright 2017 Carnegie Mellon University. All Rights Reserved.
  //
  // NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING
  // INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. CARNEGIE MELLON
  // UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR
  // IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF
  // FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS
  // OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT
  // MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT,
  // TRADEMARK, OR COPYRIGHT INFRINGEMENT.
  //
  // Released under a BSD-style license, please see license.txt or contact
  // permission@sei.cmu.edu for full terms.
  //
  // [DISTRIBUTION STATEMENT A] This material has been approved for public
  // release and unlimited distribution.  Please see Copyright notice for
  // non-US Government use and distribution.
  //
  // DM17-0949
  
  #ifndef Include_codes_hpp
  #define Include_codes_hpp
  
  namespace demangle {
  
  #define CODE_ENUM(e, s) e
  
  enum class Code : unsigned {
    #include "code_data.hpp"
  };
  
  char const * code_string(Code c);
  
  template <typename T>
  T & operator<<(T & s, Code c) {
    return s << code_string(c);
  }
  
  } // namespace demangle
  
  #endif  // Include_codes_hpp
  
  /* Local Variables:   */
  /* mode: c++          */
  /* fill-column:    95 */
  /* comment-column: 0  */
  /* End:               */
  