1#ifndef ROSE_sageContainer_H 
    2#define ROSE_sageContainer_H 
    5#include <Cxx_GrammarDeclarations.h> 
    6#include <Cxx_GrammarVariants.h> 
    8#include <Rose/BinaryAnalysis/Address.h> 
    9#include <Rose/BinaryAnalysis/RelativeVirtualAddress.h> 
   16#include <unordered_set> 
   17#include <unordered_map> 
   24typedef Rose_STL_Container<SgInitializedName*> SgInitializedNamePtrList;
 
   25typedef SgInitializedNamePtrList*              SgInitializedNamePtrListPtr;
 
   33typedef Rose_STL_Container<SgDeclarationStatement*> SgDeclarationStatementPtrList;
 
   38typedef SgDeclarationStatementPtrList*              SgDeclarationStatementPtrListPtr;
 
   40#ifdef ROSE_ENABLE_BINARY_ANALYSIS 
   45typedef Rose_STL_Container<SgAsmBlock*>     SgAsmBlockPtrList;
 
   48typedef SgAsmBlockPtrList*                  SgAsmBlockPtrListPtr;
 
   51typedef Rose_STL_Container<SgAsmInterpretation*> SgAsmInterpretationPtrList;
 
   54typedef Rose_STL_Container<SgAsmGenericSection*> SgAsmGenericSectionPtrList;
 
   55typedef SgAsmGenericSectionPtrList*              SgAsmGenericSectionPtrListPtr;
 
   57typedef Rose_STL_Container<SgAsmGenericFile*> SgAsmGenericFilePtrList;
 
   58typedef SgAsmGenericSectionPtrList*           SgAsmGenericFilePtrListPtr;
 
   68typedef Rose_STL_Container<SgAsmPEImportItem*> SgAsmPEImportItemPtrList;
 
   69typedef SgAsmPEImportItemPtrList*              SgAsmPEImportItemPtrListPtr;
 
   71typedef Rose_STL_Container<SgAsmPEImportDirectory*> SgAsmPEImportDirectoryPtrList;
 
   72typedef SgAsmPEImportDirectoryPtrList*              SgAsmPEImportDirectoryPtrListPtr;
 
   74typedef Rose_STL_Container<SgAsmPEImportItem*> SgAsmPEImportItemPtrList;
 
   75typedef SgAsmPEImportItemPtrList*              SgAsmPEImportItemPtrListPtr;
 
   78typedef Rose_STL_Container<SgAsmElfSymbol*> SgAsmElfSymbolPtrList;
 
   79typedef SgAsmElfSymbolPtrList*              SgAsmElfSymbolPtrListPtr;
 
   82typedef Rose_STL_Container<SgAsmCoffSymbol*> SgAsmCoffSymbolPtrList;
 
   83typedef SgAsmCoffSymbolPtrList*              SgAsmCoffSymbolPtrListPtr;
 
   86typedef Rose_STL_Container<SgAsmGenericSymbol*> SgAsmGenericSymbolPtrList;
 
   87typedef SgAsmGenericSymbolPtrList*              SgAsmGenericSymbolPtrListPtr;
 
   91typedef Rose_STL_Container<SgStatement*>    SgStatementPtrList;
 
   92typedef SgStatementPtrList*                 SgStatementPtrListPtr;
 
   96typedef Rose_STL_Container<SgBaseClass*>    SgBaseClassPtrList;
 
   97typedef SgBaseClassPtrList*                 SgBaseClassPtrListPtr;
 
  100typedef Rose_STL_Container<SgNode*>         SgNodePtrList;
 
  101typedef SgNodePtrList*                      SgNodePtrListPtr;
 
  104typedef Rose_STL_Container<SgType*>         SgTypePtrList;
 
  105typedef SgTypePtrList*                      SgTypePtrListPtr;
 
  108typedef Rose_STL_Container<SgExpression*>   SgExpressionPtrList;
 
  109typedef SgExpressionPtrList*                SgExpressionPtrListPtr;
 
  112typedef Rose_STL_Container<SgKeyDatumPair*>  SgKeyDatumPairPtrList;
 
  115typedef Rose_STL_Container<SgComprehension*>  SgComprehensionPtrList;
 
  117typedef Rose_STL_Container<VariantT>       VariantTList;
 
  121typedef Rose_STL_Container<SgVarRefExp*>   SgVarRefExpPtrList;
 
  122typedef SgVarRefExpPtrList*                SgVarRefExpPtrListPtr;
 
  125typedef Rose_STL_Container<SgAttribute*>    SgAttributePtrList;
 
  126typedef SgAttributePtrList*                 SgAttributePtrListPtr;
 
  131typedef Rose_STL_Container<unsigned char>   SgCharList;
 
  132typedef SgCharList*                         SgCharListPtr;
 
  140typedef std::vector<SgFile*>                SgFilePtrList;
 
  141typedef SgFilePtrList*                      SgFilePtrListPtr;
 
  149typedef std::vector<SgFileId>                 SgFileIdList;
 
  152typedef int                                   SgFileLineNumber;
 
  153typedef std::vector<SgFileLineNumber>         SgFileLineNumberList;
 
  157typedef Rose_STL_Container<std::string>     SgStringList;
 
  158typedef SgStringList*                       SgStringListPtr;
 
  165typedef std::set<SgNode*>                   SgNodeSet;
 
  166typedef SgNodeSet*                          SgNodeSetPtr;
 
  169using SgUnorderedNodeSet    = std::unordered_set<SgNode*>;
 
  170using SgUnorderedNodeSetPtr = SgUnorderedNodeSet*;
 
  174using SgUnorderedMapNodeToString    = std::unordered_map<SgNode*,std::string>;
 
  175using SgUnorderedMapNodeToStringPtr = SgUnorderedMapNodeToString*;
 
  189typedef std::vector<SgModifierType*>        SgModifierTypePtrVector;
 
  195typedef std::vector<bool>                   SgBitVector;
 
  199typedef Rose_STL_Container<SgTemplateParameter*> SgTemplateParameterPtrList;
 
  200typedef SgTemplateParameterPtrList*              SgTemplateParameterPtrListPtr;
 
  204typedef Rose_STL_Container<SgTemplateArgument*>  SgTemplateArgumentPtrList;
 
  205typedef SgTemplateArgumentPtrList*               SgTemplateArgumentPtrListPtr;
 
  215typedef std::vector<SgDirectory*>           SgDirectoryPtrList;
 
  216typedef SgDirectoryPtrList*                 SgDirectoryPtrListPtr;
 
  220typedef Rose_STL_Container<SgQualifiedName*> SgQualifiedNamePtrList;
 
  221typedef SgQualifiedNamePtrList*              SgQualifiedNamePtrListPtr;
 
  230typedef std::vector<SgBasicBlockPtr>        SgBasicBlockPtrList;
 
  231typedef SgBasicBlockPtrList*                SgBasicBlockPtrListPtr;
 
  233#ifdef ROSE_ENABLE_BINARY_ANALYSIS 
  235typedef Rose_STL_Container<SgAsmStatement*> SgAsmStatementPtrList;
 
  236typedef SgAsmStatementPtrList*              SgAsmStatementPtrListPtr;
 
  238typedef Rose_STL_Container<SgAsmInstruction*> SgAsmInstructionPtrList;
 
  239typedef SgAsmInstructionPtrList*              SgAsmInstructionPtrListPtr;
 
  242typedef Rose_STL_Container<SgAsmExpression*> SgAsmExpressionPtrList;
 
  243typedef SgAsmExpressionPtrList*              SgAsmExpressionPtrListPtr;
 
  245typedef Rose_STL_Container<SgAsmIntegerValueExpression*> SgAsmIntegerValuePtrList;
 
  246typedef SgAsmIntegerValuePtrList*                SgAsmIntegerValuePtrListPtr;
 
  249typedef Rose_STL_Container<SgAsmSynthesizedDeclaration*> SgAsmSynthesizedDeclarationPtrList;
 
  250typedef SgAsmSynthesizedDeclarationPtrList*              SgAsmSynthesizedDeclarationPtrListPtr;
 
  252typedef Rose_STL_Container<SgAsmX86Instruction*> SgAsmX86InstructionPtrList;
 
  253#ifdef ROSE_ENABLE_ASM_AARCH64 
  254typedef Rose_STL_Container<SgAsmAarch64Instruction*> SgAsmAarch64InstructionPtrList;
 
  259typedef Rose_STL_Container<SgNameGroup*>           SgNameGroupPtrList;
 
  260typedef SgNameGroupPtrList*                        SgNameGroupPtrListPtr;
 
  263typedef Rose_STL_Container<SgDataStatementGroup*>  SgDataStatementGroupPtrList;
 
  264typedef SgDataStatementGroupPtrList*               SgDataStatementGroupPtrListPtr;
 
  267typedef Rose_STL_Container<SgDataStatementObject*> SgDataStatementObjectPtrList;
 
  268typedef SgDataStatementObjectPtrList*              SgDataStatementObjectPtrListPtr;
 
  271typedef Rose_STL_Container<SgDataStatementValue*>  SgDataStatementValuePtrList;
 
  272typedef SgDataStatementValuePtrList*               SgDataStatementValuePtrListPtr;
 
  275typedef Rose_STL_Container<SgCommonBlockObject*>   SgCommonBlockObjectPtrList;
 
  276typedef SgCommonBlockObjectPtrList*                SgCommonBlockObjectPtrListPtr;
 
  279typedef Rose_STL_Container<SgDimensionObject*>     SgDimensionObjectPtrList;
 
  280typedef SgDimensionObjectPtrList*                  SgDimensionObjectPtrListPtr;
 
  283typedef Rose_STL_Container<SgLabelSymbol*>     SgLabelSymbolPtrList;
 
  284typedef SgLabelSymbolPtrList*                  SgLabelSymbolPtrListPtr;
 
  287typedef Rose_STL_Container<SgFormatItem*>      SgFormatItemPtrList;
 
  288typedef SgFormatItemPtrList*                   SgFormatItemPtrListPtr;
 
  293typedef Rose_STL_Container<Rose::BinaryAnalysis::Address> SgAddressList;
 
  294typedef SgAddressList* SgAddressListPtr;
 
  296#ifdef ROSE_ENABLE_BINARY_ANALYSIS 
  297typedef Rose_STL_Container<rose_rva_t>         SgRVAList;
 
  298typedef SgRVAList*                             SgRVAListPtr;
 
  300typedef Rose_STL_Container<SgAsmPEExportEntry*> SgAsmPEExportEntryPtrList;
 
  301typedef SgAsmPEExportEntryPtrList*              SgAsmPEExportEntryPtrListPtr;
 
  304typedef Rose_STL_Container<uint16_t>           SgUnsigned16List;
 
  305typedef SgUnsigned16List*                      SgUnsigned16ListPtr;
 
  307typedef Rose_STL_Container<unsigned>           SgUnsignedList;
 
  308typedef SgUnsignedList*                        SgUnsignedListPtr;
 
  311typedef Rose_STL_Container<size_t>             SgSizeTList;
 
  312typedef SgSizeTList*                           SgSizeTListPtr;
 
  314#ifdef ROSE_ENABLE_BINARY_ANALYSIS 
  315typedef Rose_STL_Container<SgAsmNEEntryPoint*> SgAsmNEEntryPointPtrList;
 
  316typedef SgAsmNEEntryPointPtrList*              SgAsmNEEntryPointPtrListPtr;
 
  318typedef Rose_STL_Container<SgAsmNERelocEntry*> SgAsmNERelocEntryPtrList;
 
  319typedef SgAsmNERelocEntryPtrList*              SgAsmNERelocEntryPtrListPtr;
 
  321typedef Rose_STL_Container<SgAsmLEPageTableEntry*> SgAsmLEPageTableEntryPtrList;
 
  322typedef SgAsmLEPageTableEntryPtrList*              SgAsmLEPageTableEntryPtrListPtr;
 
  324typedef Rose_STL_Container<SgAsmLEEntryPoint*> SgAsmLEEntryPointPtrList;
 
  325typedef SgAsmLEEntryPointPtrList*              SgAsmLEEntryPointPtrListPtr;
 
  329typedef Rose_STL_Container<SgAsmLERelocEntry*> SgAsmLERelocEntryPtrList;
 
  330typedef SgAsmLERelocEntryPtrList*              SgAsmLERelocEntryPtrListPtr;
 
  332typedef Rose_STL_Container<SgAsmGenericHeader*> SgAsmGenericHeaderPtrList;
 
  333typedef SgAsmGenericHeaderPtrList*              SgAsmGenericHeaderPtrListPtr;
 
  335typedef Rose_STL_Container<SgAsmGenericDLL*> SgAsmGenericDLLPtrList;
 
  336typedef SgAsmGenericDLLPtrList*              SgAsmGenericDLLPtrListPtr;
 
  339typedef Rose_STL_Container<unsigned char>    SgUnsignedCharList;
 
  340typedef SgUnsignedCharList*                  SgUnsignedCharListPtr;
 
  345typedef Rose_STL_Container<SgModuleStatement*> SgModuleStatementPtrList;
 
  346typedef SgModuleStatementPtrList*              SgModuleStatementPtrListPtr;
 
  349typedef Rose_STL_Container<SgJavaPackageDeclaration*> SgJavaPackageDeclarationPtrList;
 
  352typedef Rose_STL_Container<SgJavaImportStatement*> SgJavaImportStatementPtrList;
 
  355typedef Rose_STL_Container<SgClassDeclaration*> SgClassDeclarationPtrList;
 
  358typedef Rose_STL_Container<SgRenamePair*> SgRenamePairPtrList;
 
  359typedef SgRenamePairPtrList*              SgRenamePairPtrListPtr;
 
  362typedef Rose_STL_Container<SgInterfaceBody*> SgInterfaceBodyPtrList;
 
  363typedef SgInterfaceBodyPtrList*              SgInterfaceBodyPtrListPtr;
 
  365#ifdef ROSE_ENABLE_BINARY_ANALYSIS 
  367typedef Rose_STL_Container<SgAsmDwarfLine*> SgAsmDwarfLinePtrList;
 
  368typedef SgAsmDwarfLinePtrList*              SgAsmDwarfLinePtrListPtr;
 
  370typedef Rose_STL_Container<SgAsmDwarfMacro*> SgAsmDwarfMacroPtrList;
 
  371typedef SgAsmDwarfMacroPtrList*              SgAsmDwarfMacroPtrListPtr;
 
  373typedef Rose_STL_Container<SgAsmDwarfConstruct*> SgAsmDwarfConstructPtrList;
 
  374typedef SgAsmDwarfConstructPtrList*              SgAsmDwarfConstructPtrListPtr;
 
  376typedef Rose_STL_Container<SgAsmDwarfCompilationUnit*> SgAsmDwarfCompilationUnitPtrList;
 
  377typedef SgAsmDwarfCompilationUnitPtrList*              SgAsmDwarfCompilationUnitPtrListPtr;
 
  383typedef Rose_STL_Container<SgOmpClause*>   SgOmpClausePtrList;
 
  384typedef SgOmpClausePtrList*                SgOmpClausePtrListPtr;
 
  386typedef Rose_STL_Container<SgOmpSectionStatement*>   SgOmpSectionStatementPtrList;
 
  387typedef SgOmpSectionStatementPtrList*                SgOmpSectionStatementPtrListPtr;
 
  390typedef Rose_STL_Container<SgJavaMemberValuePair*> SgJavaMemberValuePairPtrList;
 
  391typedef SgJavaMemberValuePairPtrList* SgJavaMemberValuePairPtrListPtr;
 
  399#ifdef ROSE_ENABLE_BINARY_ANALYSIS 
  401typedef Rose_STL_Container<SgAsmRegisterReferenceExpression*> SgAsmRegisterReferenceExpressionPtrList;
 
  402typedef SgAsmRegisterReferenceExpressionPtrList* SgAsmRegisterReferenceExpressionPtrListPtr;
 
  406typedef Rose_STL_Container<SgLambdaCapture*>     SgLambdaCapturePtrList;
 
  407typedef SgLambdaCapturePtrList*                  SgLambdaCapturePtrListPtr;
 
  411typedef Rose_STL_Container<SgSourceFile*>        SgSourceFilePtrList;
 
  412typedef SgSourceFilePtrList*                     SgSourceFilePtrListPtr;
 
  416typedef Rose_STL_Container<SgIncludeFile*>        SgIncludeFilePtrList;
 
  417typedef SgIncludeFilePtrList*                     SgIncludeFilePtrListPtr;
 
  421typedef Rose_STL_Container<SgAdaComponentClause*> SgAdaComponentClausePtrList;
 
  422typedef SgAdaComponentClausePtrList*              SgAdaComponentClausePtrListPtr;
 
  425class TokenStreamSequenceToNodeMapping;
 
  427class PreviousAndNextNodeData;
 
  432#ifdef ROSE_ENABLE_BINARY_ANALYSIS 
  433#include <SgSharedVector.h> 
  438typedef Rose_STL_Container<SgAsmElfRelocEntry*>   SgAsmElfRelocEntryPtrList;
 
  439typedef SgAsmElfRelocEntryPtrList*                SgAsmElfRelocEntryPtrListPtr;
 
  441typedef Rose_STL_Container<SgAsmElfNoteEntry*>    SgAsmElfNoteEntryPtrList;
 
  442typedef SgAsmElfNoteEntryPtrList*                 SgAsmElfNoteEntryPtrListPtr;
 
  444typedef Rose_STL_Container<SgAsmElfDynamicEntry*> SgAsmElfDynamicEntryPtrList;
 
  445typedef SgAsmElfDynamicEntryPtrList*              SgAsmElfDynamicEntryPtrListPtr;
 
  447typedef Rose_STL_Container<SgAsmElfEHFrameEntryCI*> SgAsmElfEHFrameEntryCIPtrList;
 
  448typedef SgAsmElfEHFrameEntryCIPtrList*              SgAsmElfEHFrameEntryCIPtrListPtr;
 
  450typedef Rose_STL_Container<SgAsmElfEHFrameEntryFD*> SgAsmElfEHFrameEntryFDPtrList;
 
  451typedef SgAsmElfEHFrameEntryFDPtrList*              SgAsmElfEHFrameEntryFDPtrListPtr;
 
  453typedef Rose_STL_Container<SgAsmElfSegmentTableEntry*> SgAsmElfSegmentTableEntryPtrList;
 
  454typedef SgAsmElfSegmentTableEntryPtrList* SgAsmElfSegmentTableEntryPtrListPtr;
 
  456typedef Rose_STL_Container<SgAsmElfSymverEntry*> SgAsmElfSymverEntryPtrList;
 
  457typedef SgAsmElfSymverEntryPtrList*              SgAsmElfSymverEntryPtrListPtr;
 
  459typedef Rose_STL_Container<SgAsmElfSymverDefinedEntry*> SgAsmElfSymverDefinedEntryPtrList;
 
  460typedef SgAsmElfSymverDefinedEntryPtrList*              SgAsmElfSymverDefinedEntryPtrListPtr;
 
  462typedef Rose_STL_Container<SgAsmElfSymverDefinedAux*> SgAsmElfSymverDefinedAuxPtrList;
 
  463typedef SgAsmElfSymverDefinedAuxPtrList*              SgAsmElfSymverDefinedAuxPtrListPtr;
 
  465typedef Rose_STL_Container<SgAsmElfSymverNeededEntry*> SgAsmElfSymverNeededEntryPtrList;
 
  466typedef SgAsmElfSymverNeededEntryPtrList*              SgAsmElfSymverNeededEntryPtrListPtr;
 
  468typedef Rose_STL_Container<SgAsmElfSymverNeededAux*> SgAsmElfSymverNeededAuxPtrList;
 
  469typedef SgAsmElfSymverNeededAuxPtrList*              SgAsmElfSymverNeededAuxPtrListPtr;
 
  471typedef Rose_STL_Container<SgAsmJvmAttribute*> SgAsmJvmAttributePtrList;
 
  472typedef SgAsmJvmAttributePtrList*              SgAsmJvmAttributePtrListPtr;
 
  474typedef Rose_STL_Container<SgAsmJvmBootstrapMethod*> SgAsmJvmBootstrapMethodPtrList;
 
  475typedef SgAsmJvmBootstrapMethodPtrList*              SgAsmJvmBootstrapMethodPtrListPtr;
 
  477typedef Rose_STL_Container<SgAsmJvmInnerClassesEntry*> SgAsmJvmInnerClassesEntryPtrList;
 
  478typedef SgAsmJvmInnerClassesEntryPtrList*              SgAsmJvmInnerClassesEntryPtrListPtr;
 
  480typedef Rose_STL_Container<SgAsmJvmConstantPoolEntry*> SgAsmJvmConstantPoolEntryPtrList;
 
  481typedef SgAsmJvmConstantPoolEntryPtrList*              SgAsmJvmConstantPoolEntryPtrListPtr;
 
  483typedef Rose_STL_Container<SgAsmJvmExceptionHandler*> SgAsmJvmExceptionHandlerPtrList;
 
  484typedef SgAsmJvmExceptionHandlerPtrList*              SgAsmJvmExceptionHandlerPtrListPtr;
 
  486typedef Rose_STL_Container<SgAsmJvmField*> SgAsmJvmFieldPtrList;
 
  487typedef SgAsmJvmFieldPtrList*              SgAsmJvmFieldPtrListPtr;
 
  489typedef Rose_STL_Container<SgAsmJvmMethodParametersEntry*> SgAsmJvmMethodParametersEntryPtrList;
 
  490typedef SgAsmJvmMethodParametersEntryPtrList*              SgAsmJvmMethodParametersEntryPtrListPtr;
 
  492typedef Rose_STL_Container<SgAsmJvmLineNumberEntry*> SgAsmJvmLineNumberEntryPtrList;
 
  493typedef SgAsmJvmLineNumberEntryPtrList*              SgAsmJvmLineNumberEntryPtrListPtr;
 
  495typedef Rose_STL_Container<SgAsmJvmLocalVariableEntry*> SgAsmJvmLocalVariableEntryPtrList;
 
  496typedef SgAsmJvmLocalVariableEntryPtrList*              SgAsmJvmLocalVariableEntryPtrListPtr;
 
  498typedef Rose_STL_Container<SgAsmJvmLocalVariableTypeEntry*> SgAsmJvmLocalVariableTypeEntryPtrList;
 
  499typedef SgAsmJvmLocalVariableTypeEntryPtrList*              SgAsmJvmLocalVariableTypeEntryPtrListPtr;
 
  501typedef Rose_STL_Container<SgAsmJvmMethod*> SgAsmJvmMethodPtrList;
 
  502typedef SgAsmJvmMethodPtrList*              SgAsmJvmMethodPtrListPtr;
 
  504typedef Rose_STL_Container<SgAsmJvmStackMapFrame*> SgAsmJvmStackMapFramePtrList;
 
  505typedef SgAsmJvmStackMapFramePtrList*              SgAsmJvmStackMapFramePtrListPtr;
 
  507typedef Rose_STL_Container<SgAsmJvmStackMapVerificationType*> SgAsmJvmStackMapVerificationTypePtrList;
 
  508typedef SgAsmJvmStackMapVerificationTypePtrList*              SgAsmJvmStackMapVerificationTypePtrListPtr;
 
  510typedef Rose_STL_Container<SgAsmPERVASizePair*> SgAsmPERVASizePairPtrList;
 
  511typedef SgAsmPERVASizePairPtrList* SgAsmPERVASizePairPtrListPtr;
 
  516typedef Rose_STL_Container<SgToken*> SgTokenPtrList;
 
  517typedef SgTokenPtrList* SgTokenPtrListPtr;
 
  524typedef std::pair<int,int> LineColumnFilePosition;
 
  525typedef std::pair<int,LineColumnFilePosition> FileIdLineColumnFilePosition;
 
  527typedef std::pair<uint64_t,FileIdLineColumnFilePosition> AddressFileIdLineColumnFilePositionPair;
 
  528typedef std::pair<FileIdLineColumnFilePosition,uint64_t> FileIdLineColumnFilePositionAddressPair;
 
  532typedef std::multimap<uint64_t,FileIdLineColumnFilePosition> SgInstructionAddressSourcePositionMapPtrList;
 
  533typedef std::multimap<FileIdLineColumnFilePosition,uint64_t> SgSourcePositionInstructionAddressMapPtrList;
 
  535typedef std::pair<SgInstructionAddressSourcePositionMapPtrList*,SgSourcePositionInstructionAddressMapPtrList*> DwarfInstructionSourceMapReturnType;
 
  537ROSE_DLL_API std::ostream& operator<<(std::ostream&, 
const SgName&);
 
  540std::ostream& operator<<(std::ostream&, 
const std::vector<bool>&);
 
  543std::ostream& operator<<(std::ostream&, 
const std::set<int>&);
 
  546std::ostream& operator<<(std::ostream&, 
const std::map<SgNode*,int>&);
 
  549std::ostream& operator<<(std::ostream&, 
const std::map<SgNode*,std::string>&);
 
  551#ifdef ROSE_ENABLE_BINARY_ANALYSIS 
  552std::ostream& operator<<(std::ostream&, 
const Rose_STL_Container<SgAsmStatement*>&);
 
  553std::ostream& operator<<(std::ostream&, 
const Rose_STL_Container<SgAsmExpression*>&);
 
  557std::ostream& operator<<(std::ostream&, 
const Rose_STL_Container<SgDataStatementObject*>&);
 
  558std::ostream& operator<<(std::ostream&, 
const Rose_STL_Container<SgDataStatementValue*>&);
 
  559std::ostream& operator<<(std::ostream&, 
const Rose_STL_Container<SgCommonBlockObject*>&);
 
  560std::ostream& operator<<(std::ostream&, 
const Rose_STL_Container<SgDimensionObject*>&);
 
  561std::ostream& operator<<(std::ostream&, 
const Rose_STL_Container<SgLabelSymbol*>&);
 
  562std::ostream& operator<<(std::ostream&, 
const Rose_STL_Container<SgFormatItem*>&);
 
  571std::ostream & operator<< ( std::ostream & os, 
const Rose_STL_Container<std::string> & l );
 
  575std::ostream& operator<<(std::ostream&, 
const std::multimap<Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address>&);
 
  576std::ostream& operator<<(std::ostream&,
 
  577                         const std::vector<std::pair<Rose::BinaryAnalysis::Address, Rose::BinaryAnalysis::Address>>&);
 
  580std::ostream & operator<< ( std::ostream & os, 
const struct stat & sb );
 
  585#ifdef ROSE_ENABLE_BINARY_ANALYSIS 
  587std::ostream & operator<< ( std::ostream & os, 
const Rose_STL_Container<SgAsmStatement*> & l );
 
  591std::ostream & operator<< ( std::ostream & os, 
const std::set<SgSymbol*> & l );
 
Base class for references to a machine register.
 
This class represents the concept of a block (not a basic block from control flow analysis).
 
This class represents the concept of a declaration statement.
 
This class represents a directory within a projects file structure of files and directories.
 
This class represents the notion of an expression. Expressions are derived from SgLocatedNodes,...
 
This class represents a source file for a project (which may contian many source files and or directo...
 
This class represents the notion of a declared variable.
 
This class represents strings within the IR nodes.
 
This class represents the base class for all IR nodes within Sage III.
 
This class represents a OLD concept of the structure require for qualified names when they were in th...
 
This class represents the notion of a statement.
 
This class represents template argument within the use of a template to build an instantiation.
 
This class represents the base class for all types.
 
This class represents the variable refernece in expressions.