Sage++

The Class Hierarchy for Sage++ Version 2.0

September 1996

Under Construction

Sage++ Top of Hierarchy
SgNode SgSymbol
SgType
SgLocatedNode SgStatement
SgExpression

Sage++ Statement Hierarchy
SgStatement
SgScopeStatement
SgGlobal
SgBasicBlock
SgParBlockStmt
SgIfStmt
SgWhileStmt
SgDoWhileStmt
SgSwitchStatement
SgForStatement
SgParForStmt
SgFunctionDefinition
SgClassDefinition
SgCatchOptionStmt
SgDeclarationStatement
SgVariableDeclaration
SgVariableDefinition
SgFunctionDeclaration SgMemberFunctionDeclaration
SgClassDeclaration
SgEnumDeclaration
SgTypedefDeclaration
SgTemplateClassDeclaration
SgFunctionTypeTable
SgExprStatement
SgLabelStatement
SgCaseOptionStmt
SgDefaultOptionStmt
SgBreakStmt
SgContinueStmt
SgReturnStmt
SgGotoStatement
SgTryStmt
SgAsmStmt
SgSpawnStmt

Sage++ Expression Hierarchy
SgExpression
SgUnaryOp
SgExpressionRoot
SgMinusOp
SgUnaryAddOp
SgSizeOfOp
SgNotOp
SgAddressOfOp
SgMinusMinusOp
SgPlusPlusOp
SgBitComplementOp
SgCastExp
SgBinaryOp
SgArrowExp
SgDotExp
SgDotStarOp
SgArrowStarOp
SgEqualityOp
SgLessThenOp
SgGreaterThenOp
SgNotEqualOp
SgLessOrEqualOp
SgGreaterOrEqualOp
SgAddOp
SgSubtractOp
SgMultiplyOp
SgDivideOp
SgIntegerDivideOp
SgModOp
SgAndOp
SgOrOp
SgBitXorOp
SgBitAndOp
SgBitOrOp
SgCommaOpExp
SgLshiftOp
SgRshiftOp
SgExprListExp
SgVarRefExp
SgFunctionRefExp
SgFunctionCallExp
SgMemberFunctionRefExp
SgConditionalExp
SgNewExp
SgThisExp
SgRefExp
SgInitializer
SgAggregateInitializer
SgConstructorInitializer
SgAssignInitializer
SgValueExp
SgBoolValExp
SgStringVal
SgShortVal
SgCharVal
SgUnsignedCharVal
SgWcharVal
SgUnsignedShortVal
SgIntVal
SgEnumVal
SgUnsignedIntVal
SgLongIntVal
SgLongLongIntVal
SgUnsignedLongVal
SgFloatVal
SgDoubleVal
SgLongDoubleVal

Sage++ Symbols Hierarchy
SgSymbol SgVariableSymbol
SgFunctionSymbol SgMemberFunctionSymbol
SgFunctionTypeSymbol
SgClassSymbol
SgEnumSymbol
SgEnumFieldSymbol
SgTypedefSymbol
SgLabelSymbol

Sage++ Types Hierarchy
SgType
SgTypeUnknown
SgTypeChar
SgTypeSignedChar
SgTypeUnsignedChar
SgTypeShort
SgTypeUnsignedShort
SgTypeSignedShort
SgTypeInt
SgTypeSignedInt
SgTypeUnsignedInt
SgTypeLong
SgTypeSignedLong
SgTypeUnsignedLong
SgTypeVoid
SgTypeGlobalVoid
SgTypeWchar
SgTypeFloat
SgTypeDouble
SgTypeLongLong
SgTypeUnsignedLongLong
SgTypeLongDouble
SgTypeString
SgTypeBool
SgTypeComplex
SgTypeDefault
SgPointerType SgPointerMemberType
SgReferenceType
SgNamedType
SgClassType
SgEnumType
SgTypedefType
SgModifierType
SgFunctionType SgMemberFunctionType SgPartialFunctionType
SgArrayType
SgTypeEllipse


Auxiliary classes used in the implementation of SAGE++2.0

Sage++2.0 Auxiliary Classes
SgName
SgInitializedName
SgBaseClass
SgSymbolTable
SgStatementPtr
SgDeclarationStatementPtr
SgTypePtr
SgExpressionPtr
SgAttribute
SgPragma
SgBitAttribute
FuncDecl_attr
ClassDecl_attr
SgAttributePtr
SgModifierNodes
Unparse_Info
Sg_Copy_Info
Sg_File_Info
Sg_Print_Info
SgFile
SgProject
Sg_Options
Sg_Tree_Traverser


NOTE:

All classes that handle list of objects (like SgStatementPtrList, SgDeclarationStatementPtrList, SgAttributePtrList, SgBaseClassList, SgInitializedNameList, SgTypePtrList, SgExpressionPtrList, etc.) are generated automatically from a generic class , which based on the definition of the respective object class creates a new class that manages a list of such objects.


Here is the documentation for Sage++ Version 1.9:
Sage++ v1.9 Table of Contents


[ IU CS ] [ Extreme! Computing ] [ pC++/Sage ]
sage@extreme.indiana.edu

Last modified: Wed Jan 27 11:52:55 EST 1999