/* ### * IP: GHIDRA * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /// \file prettyprint.hh /// \brief Routines for emitting high-level (C) language syntax in a well formatted way. #ifndef __PRETTYPRINT__ #define __PRETTYPRINT__ #include "type.hh" class Varnode; class PcodeOp; class FlowBlock; class Funcdata; class Symbol; class PendPrint; extern AttributeId ATTRIB_BLOCKREF; ///< Marshaling attribute "blockref" extern AttributeId ATTRIB_CLOSE; ///< Marshaling attribute "close" extern AttributeId ATTRIB_COLOR; ///< Marshaling attribute "color" extern AttributeId ATTRIB_INDENT; ///< Marshaling attribute "indent" extern AttributeId ATTRIB_OFF; ///< Marshaling attribute "off" extern AttributeId ATTRIB_OPEN; ///< Marshaling attribute "open" extern AttributeId ATTRIB_OPREF; ///< Marshaling attribute "opref" extern AttributeId ATTRIB_VARREF; ///< Marshaling attribute "varref" extern ElementId ELEM_BREAK; ///< Marshaling element \ extern ElementId ELEM_CLANG_DOCUMENT; ///< Marshaling element \ extern ElementId ELEM_FUNCNAME; ///< Marshaling element \ extern ElementId ELEM_FUNCPROTO; ///< Marshaling element \ extern ElementId ELEM_LABEL; ///< Marshaling element \