CsNode Struct Reference

Abstract AST node. Base class for all AST node classes. More...

Inheritance diagram for CsNode:

CsArgument CsArgumentList CsAttribute CsAttributes CsAttributeSection CsCatchClause CsConstantDeclaration CsConstantDeclarator CsConstructorDeclaration CsConversionOperatorDeclaration CsDestructorDeclaration CsEnumMember CsEvent CsEventAccessor CsEventDeclarator CsExpression CsExpressionList CsFixedPointDeclarator CsFormalParameter CsFormalParameterList CsIndexer CsLabel CsLocalConstantDeclarator CsLocalVariableDeclarator CsMethod CsNamedArgument CsOperator CsProperty CsPropertyAccessor CsScopeNode CsStatement CsStatementExpressionList CsSwitchLabel CsSwitchSection CsTypeBase CsTypeRef CsUsingDirective CsVariableDeclaration CsVariableDeclarator List of all members.

Public Member Functions

 CsNode (cs_node type_)
 CsNode (cs_node type_, CsNode *parent_)
 CsNode (cs_node type_, LineInfo line_info_)
 CsNode (cs_node type_, LineInfo line_info_, CsNode *parent_)
virtual ~CsNode ()
virtual void build_entities (CsDisplay &display)=0
 Build Entities - pass 2 (for internal purpose only).
virtual void type_lookup (CsDisplay &display)=0
 Type Lookup - pass 3 (for internal purpose only).
virtual void member_lookup (CsDisplay &display)=0
 Member Lookup - pass 4 (for internal purpose only).
virtual void addTokensRecursive (CsTokenCollector &tokenCollector)=0
 Recusively collect token indexes in source code order.
virtual void addTokens (CsTokenCollector &tokenCollector)=0
 Collect token indexes associated with this AST node.
virtual void addEntityDefinitions (CsEntityCollector &tokenCollector)=0
 Collect entities defined in this AST node.
virtual void addEntityReferences (CsEntityCollector &tokenCollector)=0
 Collect entity references.
virtual void clearEntities ()=0
 Clear all entity references (for internal purpose only).
CS_GET_NODES const char * getFilePath () const
 Returns C# file path associated with CsCompilationUnit. Return null if CsCompilationUnit is not direct or indirect parent of this node.

Public Attributes

cs_node type: 8
 AST node type enumeration.
unsigned flags: 24
 Flags (for internal purpose).
CsNodeparent
 Parent node. Every node except compilation unit has parent.
LineInfo line_info
 Line/Column information.

Private Member Functions

 CsNode (const CsNode &rhs)
CsNodeoperator= (const CsNode &rhs)

Detailed Description

Abstract AST node. Base class for all AST node classes.


Constructor & Destructor Documentation

CsNode::CsNode cs_node  type_  )  [inline, explicit]
 

CsNode::CsNode cs_node  type_,
CsNode parent_
[inline]
 

CsNode::CsNode cs_node  type_,
LineInfo  line_info_
[inline]
 

CsNode::CsNode cs_node  type_,
LineInfo  line_info_,
CsNode parent_
[inline]
 

virtual CsNode::~CsNode  )  [inline, virtual]
 

CsNode::CsNode const CsNode rhs  )  [private]
 


Member Function Documentation

virtual void CsNode::addEntityDefinitions CsEntityCollector tokenCollector  )  [pure virtual]
 

Collect entities defined in this AST node.

Implemented in CsUsingAliasDirective, CsUsingNamespaceDirective, CsTypeRef, CsExpression, CsEmbeddedTypeMemberAccess, CsInvocationExpression, CsElementAccess, CsAsIsExpression, CsCastUnaryExpression, CsAssignmentExpression, CsExpressionList, CsNamedArgument, CsAttribute, CsAttributeSection, CsAttributes, CsTypeBase, CsClassStruct, CsInterface, CsEnumMember, CsEnum, CsFormalParameter, CsFormalParameterList, CsDelegate, CsNamespace, CsArgument, CsArgumentList, CsBlock, CsLabel, CsLabeledStatement, CsEmptyStatement, CsExpressionStatement, CsDeclarationStatement, CsLocalConstantDeclarator, CsLocalConstantDeclaration, CsIfStatement, CsSwitchLabel, CsSwitchSection, CsSwitchStatement, CsWhileStatement, CsDoWhileStatement, CsLocalVariableDeclarator, CsLocalVariableDeclaration, CsStatementExpressionList, CsForStatement, CsForeachStatement, CsBreakStatement, CsContinueStatement, CsGotoStatement, CsReturnStatement, CsThrowStatement, CsCatchClause, CsTryStatement, CsCheckedStatement, CsUncheckedStatement, CsLockStatement, CsUsingStatement, CsUnsafeStatement, CsFixedPointDeclarator, CsFixedStatement, CsConstructorDeclaration, CsConstantDeclarator, CsConstantDeclaration, CsVariableDeclarator, CsVariableDeclaration, CsArrayInitializer, CsMethod, CsPropertyAccessor, CsProperty, CsEventAccessor, CsEventDeclarator, CsEvent, CsIndexer, CsOperator, CsConversionOperatorDeclaration, CsDestructorDeclaration, CsCompilationUnit, CsMakeRefExpression, CsRefTypeExpression, CsRefValueExpression, and CsArgListExpression.

virtual void CsNode::addEntityReferences CsEntityCollector tokenCollector  )  [pure virtual]
 

Collect entity references.

Implemented in CsUsingAliasDirective, CsUsingNamespaceDirective, CsTypeRef, CsExpression, CsEmbeddedTypeMemberAccess, CsInvocationExpression, CsElementAccess, CsAsIsExpression, CsCastUnaryExpression, CsAssignmentExpression, CsExpressionList, CsNamedArgument, CsAttribute, CsAttributeSection, CsAttributes, CsTypeBase, CsClassStruct, CsInterface, CsEnumMember, CsEnum, CsFormalParameter, CsFormalParameterList, CsDelegate, CsNamespace, CsArgument, CsArgumentList, CsBlock, CsLabel, CsLabeledStatement, CsEmptyStatement, CsExpressionStatement, CsDeclarationStatement, CsLocalConstantDeclarator, CsLocalConstantDeclaration, CsIfStatement, CsSwitchLabel, CsSwitchSection, CsSwitchStatement, CsWhileStatement, CsDoWhileStatement, CsLocalVariableDeclarator, CsLocalVariableDeclaration, CsStatementExpressionList, CsForStatement, CsForeachStatement, CsBreakStatement, CsContinueStatement, CsGotoStatement, CsReturnStatement, CsThrowStatement, CsCatchClause, CsTryStatement, CsCheckedStatement, CsUncheckedStatement, CsLockStatement, CsUsingStatement, CsUnsafeStatement, CsFixedPointDeclarator, CsFixedStatement, CsConstructorDeclaration, CsConstantDeclarator, CsConstantDeclaration, CsVariableDeclarator, CsVariableDeclaration, CsArrayInitializer, CsMethod, CsPropertyAccessor, CsProperty, CsEventAccessor, CsEventDeclarator, CsEvent, CsIndexer, CsOperator, CsConversionOperatorDeclaration, CsDestructorDeclaration, CsCompilationUnit, CsMakeRefExpression, CsRefTypeExpression, CsRefValueExpression, and CsArgListExpression.

virtual void CsNode::addTokens CsTokenCollector tokenCollector  )  [pure virtual]
 

Collect token indexes associated with this AST node.

Implemented in CsUsingAliasDirective, CsUsingNamespaceDirective, CsTypeRef, CsSimpleName, CsLiteral, CsEmbeddedTypeMemberAccess, CsThisAccess, CsBaseMemberAccess, CsBaseIndexerAccess, CsTypeofExpression, CsCheckedExpression, CsUncheckedExpression, CsSizeofExpression, CsParenthesizedExpression, CsNewObjectExpression, CsNewArrayExpression, CsInvocationExpression, CsElementAccess, CsMemberAccess, CsPointerMemberAccess, CsPostIncrementDecrementExpression, CsBinaryExpression, CsAsIsExpression, CsConditionalExpression, CsOperatorUnaryExpression, CsPreIncrementDecrementExpression, CsCastUnaryExpression, CsAssignmentExpression, CsExpressionList, CsNamedArgument, CsAttribute, CsAttributeSection, CsAttributes, CsTypeBase, CsClass, CsStruct, CsInterface, CsEnumMember, CsEnum, CsFormalParameter, CsFormalParameterList, CsDelegate, CsNamespace, CsArgument, CsArgumentList, CsBlock, CsLabel, CsLabeledStatement, CsEmptyStatement, CsExpressionStatement, CsDeclarationStatement, CsLocalConstantDeclarator, CsLocalConstantDeclaration, CsIfStatement, CsSwitchLabel, CsSwitchSection, CsSwitchStatement, CsWhileStatement, CsDoWhileStatement, CsLocalVariableDeclarator, CsLocalVariableDeclaration, CsStatementExpressionList, CsForStatement, CsForeachStatement, CsBreakStatement, CsContinueStatement, CsGotoStatement, CsReturnStatement, CsThrowStatement, CsCatchClause, CsTryStatement, CsCheckedStatement, CsUncheckedStatement, CsLockStatement, CsUsingStatement, CsUnsafeStatement, CsFixedPointDeclarator, CsFixedStatement, CsStackAllocExpression, CsConstructorDeclaration, CsConstantDeclarator, CsConstantDeclaration, CsVariableDeclarator, CsVariableDeclaration, CsArrayInitializer, CsMethod, CsPropertyAccessor, CsProperty, CsEventAccessor, CsEventDeclarator, CsEvent, CsIndexer, CsOperator, CsConversionOperatorDeclaration, CsDestructorDeclaration, CsCompilationUnit, CsMakeRefExpression, CsRefTypeExpression, CsRefValueExpression, and CsArgListExpression.

virtual void CsNode::addTokensRecursive CsTokenCollector tokenCollector  )  [pure virtual]
 

Recusively collect token indexes in source code order.

Implemented in CsUsingAliasDirective, CsUsingNamespaceDirective, CsTypeRef, CsSimpleName, CsLiteral, CsEmbeddedTypeMemberAccess, CsThisAccess, CsBaseMemberAccess, CsBaseIndexerAccess, CsTypeofExpression, CsCheckedExpression, CsUncheckedExpression, CsSizeofExpression, CsParenthesizedExpression, CsNewObjectExpression, CsNewArrayExpression, CsInvocationExpression, CsElementAccess, CsMemberAccess, CsPointerMemberAccess, CsPostIncrementDecrementExpression, CsBinaryExpression, CsAsIsExpression, CsConditionalExpression, CsOperatorUnaryExpression, CsPreIncrementDecrementExpression, CsCastUnaryExpression, CsAssignmentExpression, CsExpressionList, CsNamedArgument, CsAttribute, CsAttributeSection, CsAttributes, CsTypeBase, CsClass, CsStruct, CsInterface, CsEnumMember, CsEnum, CsFormalParameter, CsFormalParameterList, CsDelegate, CsNamespace, CsArgument, CsArgumentList, CsBlock, CsLabel, CsLabeledStatement, CsEmptyStatement, CsExpressionStatement, CsDeclarationStatement, CsLocalConstantDeclarator, CsLocalConstantDeclaration, CsIfStatement, CsSwitchLabel, CsSwitchSection, CsSwitchStatement, CsWhileStatement, CsDoWhileStatement, CsLocalVariableDeclarator, CsLocalVariableDeclaration, CsStatementExpressionList, CsForStatement, CsForeachStatement, CsBreakStatement, CsContinueStatement, CsGotoStatement, CsReturnStatement, CsThrowStatement, CsCatchClause, CsTryStatement, CsCheckedStatement, CsUncheckedStatement, CsLockStatement, CsUsingStatement, CsUnsafeStatement, CsFixedPointDeclarator, CsFixedStatement, CsStackAllocExpression, CsConstructorDeclaration, CsConstantDeclarator, CsConstantDeclaration, CsVariableDeclarator, CsVariableDeclaration, CsArrayInitializer, CsMethod, CsPropertyAccessor, CsProperty, CsEventAccessor, CsEventDeclarator, CsEvent, CsIndexer, CsOperator, CsConversionOperatorDeclaration, CsDestructorDeclaration, CsCompilationUnit, CsMakeRefExpression, CsRefTypeExpression, CsRefValueExpression, and CsArgListExpression.

virtual void CsNode::build_entities CsDisplay &  display  )  [pure virtual]
 

Build Entities - pass 2 (for internal purpose only).

Implemented in CsUsingAliasDirective, CsUsingNamespaceDirective, CsTypeRef, CsExpression, CsThisAccess, CsBaseMemberAccess, CsBaseIndexerAccess, CsAsIsExpression, CsExpressionList, CsNamedArgument, CsAttribute, CsAttributeSection, CsAttributes, CsTypeBase, CsClassStruct, CsInterface, CsEnumMember, CsEnum, CsFormalParameter, CsFormalParameterList, CsDelegate, CsNamespace, CsArgument, CsArgumentList, CsBlock, CsLabel, CsLabeledStatement, CsEmptyStatement, CsExpressionStatement, CsDeclarationStatement, CsLocalConstantDeclarator, CsLocalConstantDeclaration, CsIfStatement, CsSwitchLabel, CsSwitchSection, CsSwitchStatement, CsWhileStatement, CsDoWhileStatement, CsLocalVariableDeclarator, CsLocalVariableDeclaration, CsStatementExpressionList, CsForStatement, CsForeachStatement, CsBreakStatement, CsContinueStatement, CsGotoStatement, CsReturnStatement, CsThrowStatement, CsCatchClause, CsTryStatement, CsCheckedStatement, CsUncheckedStatement, CsLockStatement, CsUsingStatement, CsUnsafeStatement, CsFixedPointDeclarator, CsFixedStatement, CsConstructorDeclaration, CsConstantDeclarator, CsConstantDeclaration, CsVariableDeclarator, CsVariableDeclaration, CsArrayInitializer, CsMethod, CsPropertyAccessor, CsProperty, CsEventAccessor, CsEventDeclarator, CsEvent, CsIndexer, CsOperator, CsConversionOperatorDeclaration, CsDestructorDeclaration, and CsCompilationUnit.

virtual void CsNode::clearEntities  )  [pure virtual]
 

Clear all entity references (for internal purpose only).

Implemented in CsScopeNode, CsUsingAliasDirective, CsUsingNamespaceDirective, CsScopeNodeWithUsingDirectives, CsTypeRef, CsExpression, CsEmbeddedTypeMemberAccess, CsBaseIndexerAccess, CsTypeofExpression, CsCheckedExpression, CsUncheckedExpression, CsSizeofExpression, CsParenthesizedExpression, CsNewObjectExpression, CsNewArrayExpression, CsInvocationExpression, CsElementAccess, CsMemberAccess, CsPointerMemberAccess, CsPostIncrementDecrementExpression, CsBinaryExpression, CsAsIsExpression, CsConditionalExpression, CsOperatorUnaryExpression, CsPreIncrementDecrementExpression, CsCastUnaryExpression, CsAssignmentExpression, CsExpressionList, CsNamedArgument, CsAttribute, CsAttributeSection, CsAttributes, CsTypeBase, CsClassStruct, CsClass, CsStruct, CsInterface, CsEnumMember, CsEnum, CsFormalParameter, CsFormalParameterList, CsDelegate, CsNamespace, CsArgument, CsArgumentList, CsBlock, CsLabel, CsLabeledStatement, CsEmptyStatement, CsExpressionStatement, CsDeclarationStatement, CsLocalConstantDeclarator, CsLocalConstantDeclaration, CsIfStatement, CsSwitchLabel, CsSwitchSection, CsSwitchStatement, CsWhileStatement, CsDoWhileStatement, CsLocalVariableDeclarator, CsLocalVariableDeclaration, CsStatementExpressionList, CsForStatement, CsForeachStatement, CsBreakStatement, CsContinueStatement, CsGotoStatement, CsReturnStatement, CsThrowStatement, CsCatchClause, CsTryStatement, CsCheckedStatement, CsUncheckedStatement, CsLockStatement, CsUsingStatement, CsUnsafeStatement, CsFixedPointDeclarator, CsFixedStatement, CsStackAllocExpression, CsConstructorDeclaration, CsConstantDeclarator, CsConstantDeclaration, CsVariableDeclarator, CsVariableDeclaration, CsArrayInitializer, CsMethod, CsPropertyAccessor, CsProperty, CsEventAccessor, CsEventDeclarator, CsEvent, CsIndexer, CsOperator, CsConversionOperatorDeclaration, CsDestructorDeclaration, CsCompilationUnit, CsMakeRefExpression, CsRefTypeExpression, CsRefValueExpression, and CsArgListExpression.

CS_GET_NODES const char* CsNode::getFilePath  )  const
 

Returns C# file path associated with CsCompilationUnit. Return null if CsCompilationUnit is not direct or indirect parent of this node.

virtual void CsNode::member_lookup CsDisplay &  display  )  [pure virtual]
 

Member Lookup - pass 4 (for internal purpose only).

Implemented in CsUsingAliasDirective, CsUsingNamespaceDirective, CsTypeRef, CsSimpleName, CsLiteral, CsEmbeddedTypeMemberAccess, CsThisAccess, CsBaseMemberAccess, CsBaseIndexerAccess, CsTypeofExpression, CsCheckedExpression, CsUncheckedExpression, CsSizeofExpression, CsParenthesizedExpression, CsNewObjectExpression, CsNewArrayExpression, CsInvocationExpression, CsElementAccess, CsMemberAccess, CsPointerMemberAccess, CsPostIncrementDecrementExpression, CsBinaryExpression, CsAsIsExpression, CsConditionalExpression, CsOperatorUnaryExpression, CsPreIncrementDecrementExpression, CsCastUnaryExpression, CsAssignmentExpression, CsExpressionList, CsNamedArgument, CsAttribute, CsAttributeSection, CsAttributes, CsTypeBase, CsClassStruct, CsInterface, CsEnumMember, CsEnum, CsFormalParameter, CsFormalParameterList, CsDelegate, CsNamespace, CsArgument, CsArgumentList, CsBlock, CsLabel, CsLabeledStatement, CsEmptyStatement, CsExpressionStatement, CsDeclarationStatement, CsLocalConstantDeclarator, CsLocalConstantDeclaration, CsIfStatement, CsSwitchLabel, CsSwitchSection, CsSwitchStatement, CsWhileStatement, CsDoWhileStatement, CsLocalVariableDeclarator, CsLocalVariableDeclaration, CsStatementExpressionList, CsForStatement, CsForeachStatement, CsBreakStatement, CsContinueStatement, CsGotoStatement, CsReturnStatement, CsThrowStatement, CsCatchClause, CsTryStatement, CsCheckedStatement, CsUncheckedStatement, CsLockStatement, CsUsingStatement, CsUnsafeStatement, CsFixedPointDeclarator, CsFixedStatement, CsStackAllocExpression, CsConstructorDeclaration, CsConstantDeclarator, CsConstantDeclaration, CsVariableDeclarator, CsVariableDeclaration, CsArrayInitializer, CsMethod, CsPropertyAccessor, CsProperty, CsEventAccessor, CsEventDeclarator, CsEvent, CsIndexer, CsOperator, CsConversionOperatorDeclaration, CsDestructorDeclaration, CsCompilationUnit, CsMakeRefExpression, CsRefTypeExpression, CsRefValueExpression, and CsArgListExpression.

CsNode& CsNode::operator= const CsNode rhs  )  [private]
 

virtual void CsNode::type_lookup CsDisplay &  display  )  [pure virtual]
 

Type Lookup - pass 3 (for internal purpose only).

Implemented in CsUsingAliasDirective, CsUsingNamespaceDirective, CsTypeRef, CsSimpleName, CsLiteral, CsEmbeddedTypeMemberAccess, CsThisAccess, CsBaseMemberAccess, CsBaseIndexerAccess, CsTypeofExpression, CsCheckedExpression, CsUncheckedExpression, CsSizeofExpression, CsParenthesizedExpression, CsNewObjectExpression, CsNewArrayExpression, CsInvocationExpression, CsElementAccess, CsMemberAccess, CsPointerMemberAccess, CsPostIncrementDecrementExpression, CsUnaryExpression, CsBinaryExpression, CsAsIsExpression, CsConditionalExpression, CsOperatorUnaryExpression, CsPreIncrementDecrementExpression, CsCastUnaryExpression, CsAssignmentExpression, CsExpressionList, CsNamedArgument, CsAttribute, CsAttributeSection, CsAttributes, CsTypeBase, CsClassStruct, CsInterface, CsEnumMember, CsEnum, CsFormalParameter, CsFormalParameterList, CsDelegate, CsNamespace, CsArgument, CsArgumentList, CsBlock, CsLabel, CsLabeledStatement, CsEmptyStatement, CsExpressionStatement, CsDeclarationStatement, CsLocalConstantDeclarator, CsLocalConstantDeclaration, CsIfStatement, CsSwitchLabel, CsSwitchSection, CsSwitchStatement, CsWhileStatement, CsDoWhileStatement, CsLocalVariableDeclarator, CsLocalVariableDeclaration, CsStatementExpressionList, CsForStatement, CsForeachStatement, CsBreakStatement, CsContinueStatement, CsGotoStatement, CsReturnStatement, CsThrowStatement, CsCatchClause, CsTryStatement, CsCheckedStatement, CsUncheckedStatement, CsLockStatement, CsUsingStatement, CsUnsafeStatement, CsFixedPointDeclarator, CsFixedStatement, CsStackAllocExpression, CsConstructorDeclaration, CsConstantDeclarator, CsConstantDeclaration, CsVariableDeclarator, CsVariableDeclaration, CsArrayInitializer, CsMethod, CsPropertyAccessor, CsProperty, CsEventAccessor, CsEventDeclarator, CsEvent, CsIndexer, CsOperator, CsConversionOperatorDeclaration, CsDestructorDeclaration, CsCompilationUnit, CsMakeRefExpression, CsRefTypeExpression, CsRefValueExpression, and CsArgListExpression.


Member Data Documentation

unsigned CsNode::flags
 

Flags (for internal purpose).

LineInfo CsNode::line_info
 

Line/Column information.

CsNode* CsNode::parent
 

Parent node. Every node except compilation unit has parent.

cs_node CsNode::type
 

AST node type enumeration.

Reimplemented in CsLiteral, CsTypeofExpression, CsSizeofExpression, CsNewObjectExpression, CsNewArrayExpression, CsAsIsExpression, CsCastUnaryExpression, CsFormalParameter, CsDelegate, CsLocalConstantDeclaration, CsLocalVariableDeclaration, CsForeachStatement, CsCatchClause, CsFixedStatement, CsStackAllocExpression, CsConstantDeclaration, CsVariableDeclaration, CsProperty, CsEvent, CsIndexer, CsOperator, CsConversionOperatorDeclaration, and CsRefValueExpression.

© 2005 metaspec