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.