The StaDyn Programming Language
Source code documentation of StaDyn, a hybrid static and dynamic typing language.
Tools.Visitor Class Referenceabstract

Abstract class to define different visits over the abstract syntax tree. More...

Inheritance diagram for Tools.Visitor:
Tools.VisitorAdapter CodeGeneration.VisitorCodeGenerationBase Debugger.VisitorDebug Semantic.SSAAlgorithm.VisitorSSA Semantic.SSAAlgorithm.VisitorSSA2 Semantic.VisitorSymbolIdentification Semantic.VisitorTypeDefinition Semantic.VisitorTypeInference Semantic.VisitorTypeLoad

Public Member Functions

abstract Object Visit (SourceFile node, Object obj)
 
abstract Object Visit (Namespace node, Object obj)
 
abstract Object Visit (DeclarationSet node, Object obj)
 
abstract Object Visit (FieldDeclarationSet node, Object obj)
 
abstract Object Visit (IdDeclaration node, Object obj)
 
abstract Object Visit (Definition node, Object obj)
 
abstract Object Visit (ConstantDefinition node, Object obj)
 
abstract Object Visit (ClassDefinition node, Object obj)
 
abstract Object Visit (InterfaceDefinition node, Object obj)
 
abstract Object Visit (PropertyDefinition node, Object obj)
 
abstract Object Visit (FieldDeclaration node, Object obj)
 
abstract Object Visit (FieldDefinition node, Object obj)
 
abstract Object Visit (ConstantFieldDefinition node, Object obj)
 
abstract Object Visit (MethodDeclaration node, Object obj)
 
abstract Object Visit (MethodDefinition node, Object obj)
 
abstract Object Visit (ConstructorDefinition node, Object obj)
 
abstract Object Visit (ArgumentExpression node, Object obj)
 
abstract Object Visit (ArithmeticExpression node, Object obj)
 
abstract Object Visit (ArrayAccessExpression node, Object obj)
 
abstract Object Visit (AssignmentExpression node, Object obj)
 
abstract Object Visit (BaseCallExpression node, Object obj)
 
abstract Object Visit (BaseExpression node, Object obj)
 
abstract Object Visit (BinaryExpression node, Object obj)
 
abstract Object Visit (BitwiseExpression node, Object obj)
 
abstract Object Visit (BoolLiteralExpression node, Object obj)
 
abstract Object Visit (CastExpression node, Object obj)
 
abstract Object Visit (CharLiteralExpression node, Object obj)
 
abstract Object Visit (CompoundExpression node, Object obj)
 
abstract Object Visit (DoubleLiteralExpression node, Object obj)
 
abstract Object Visit (FieldAccessExpression node, Object obj)
 
abstract Object Visit (IntLiteralExpression node, Object obj)
 
abstract Object Visit (InvocationExpression node, Object obj)
 
abstract Object Visit (IsExpression node, Object obj)
 
abstract Object Visit (LogicalExpression node, Object obj)
 
abstract Object Visit (NewArrayExpression node, Object obj)
 
abstract Object Visit (NewExpression node, Object obj)
 
abstract Object Visit (NullExpression node, Object obj)
 
abstract Object Visit (QualifiedIdentifierExpression node, Object obj)
 
abstract Object Visit (RelationalExpression node, Object obj)
 
abstract Object Visit (SingleIdentifierExpression node, Object obj)
 
abstract Object Visit (StringLiteralExpression node, Object obj)
 
abstract Object Visit (TernaryExpression node, Object obj)
 
abstract Object Visit (ThisExpression node, Object obj)
 
abstract Object Visit (UnaryExpression node, Object obj)
 
abstract Object Visit (AssertStatement node, Object obj)
 
abstract Object Visit (Block node, Object obj)
 
abstract Object Visit (BreakStatement node, Object obj)
 
abstract Object Visit (CatchStatement node, Object obj)
 
abstract Object Visit (ContinueStatement node, Object obj)
 
abstract Object Visit (DoStatement node, Object obj)
 
abstract Object Visit (ForeachStatement node, Object obj)
 
abstract Object Visit (ForStatement node, Object obj)
 
abstract Object Visit (IfElseStatement node, Object obj)
 
abstract Object Visit (MoveStatement node, Object obj)
 
abstract Object Visit (ReturnStatement node, Object obj)
 
abstract Object Visit (SwitchLabel node, Object obj)
 
abstract Object Visit (SwitchSection node, Object obj)
 
abstract Object Visit (SwitchStatement node, Object obj)
 
abstract Object Visit (ThetaStatement node, Object obj)
 
abstract Object Visit (ThrowStatement node, Object obj)
 
abstract Object Visit (ExceptionManagementStatement node, Object obj)
 
abstract Object Visit (WhileStatement node, Object obj)
 

Static Public Member Functions

static T getInheritedAttributes< T > (Object attributes, int index)
 Generic helper function that takes the visitor parameter an converts it into the appropiate inherited attribute. More...
 
static T getInheritedAttributes< T > (Object attributes)
 Overloaded version of the above method More...
 

Detailed Description

Abstract class to define different visits over the abstract syntax tree.

Implements Visitor pattern [Visitor].

Definition at line 29 of file Visitor.cs.

Member Function Documentation

static T Tools.Visitor.getInheritedAttributes< T > ( Object  attributes,
int  index 
)
static

Generic helper function that takes the visitor parameter an converts it into the appropiate inherited attribute.

Template Parameters
TThe expected type of the attribute
Parameters
attributesThe visitor parameter that encapsulates all the inherited attributes
indexThe index of the attribute
Returns
The expected inherited attribute

Definition at line 108 of file Visitor.cs.

static T Tools.Visitor.getInheritedAttributes< T > ( Object  attributes)
static

Overloaded version of the above method

Template Parameters
TThe expected type of the attribute
Parameters
attributesThe visitor parameter that encapsulates the inherited attribute
Returns
The expected inherited attribute

Definition at line 137 of file Visitor.cs.

abstract Object Tools.Visitor.Visit ( DeclarationSet  node,
Object  obj 
)
pure virtual

Implemented in Tools.VisitorAdapter.

abstract Object Tools.Visitor.Visit ( FieldDeclarationSet  node,
Object  obj 
)
pure virtual

Implemented in Tools.VisitorAdapter.

abstract Object Tools.Visitor.Visit ( PropertyDefinition  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( FieldDeclaration  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( MethodDeclaration  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( ArgumentExpression  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( BaseCallExpression  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( BaseExpression  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( BinaryExpression  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( BitwiseExpression  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( CompoundExpression  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( NullExpression  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( QualifiedIdentifierExpression  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( ThisExpression  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( UnaryExpression  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( AssertStatement  node,
Object  obj 
)
pure virtual

Implemented in Tools.VisitorAdapter.

abstract Object Tools.Visitor.Visit ( Block  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( BreakStatement  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( CatchStatement  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( ContinueStatement  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( ForeachStatement  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( MoveStatement  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( ReturnStatement  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( SwitchLabel  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( SwitchSection  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( ThetaStatement  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( ThrowStatement  node,
Object  obj 
)
pure virtual
abstract Object Tools.Visitor.Visit ( ExceptionManagementStatement  node,
Object  obj 
)
pure virtual

The documentation for this class was generated from the following file: