CsEnum Struct Reference

Enum AST node. More...

Inheritance diagram for CsEnum:

CsScopeNode CsNode List of all members.

Public Member Functions

 CsEnum ()
 CsEnum (LineInfo line_info)
virtual ~CsEnum ()
virtual void build_entities (CsDisplay &display)
 Build Entities - pass 2 (for internal purpose only).
virtual void type_lookup (CsDisplay &display)
 Type Lookup - pass 3 (for internal purpose only).
virtual void member_lookup (CsDisplay &display)
 Member Lookup - pass 4 (for internal purpose only).
virtual void addTokensRecursive (CsTokenCollector &tokenCollector)
 Recusively collect token indexes in source code order.
virtual void addTokens (CsTokenCollector &tokenCollector)
 Collect token indexes associated with this AST node.
virtual void addEntityDefinitions (CsEntityCollector &tokenCollector)
 Collect entities defined in this AST node.
virtual void addEntityReferences (CsEntityCollector &tokenCollector)
 Collect entity references.
virtual void clearEntities ()
 Clear all entity references (for internal purpose only).

Public Attributes

CsAttributesattributes
 Attributes.
CsModifiers modifiers
 Modifiers.
PHashString name
 Enumeration type name.
CsTokenType base
 Base class.
FastArray< CsEnumMember * > members
 Members.
CsTokenIndex enum_token
CsTokenIndex identifier_token
CsTokenIndex colon_token
CsTokenIndex base_token
CsTokenIndex lcurly_token
CsTokenIndex rcurly_token
CsTokenIndex semicolon_token

Detailed Description

Enum AST node.

EBNF grammar:

enum-declaration:
  (attributes)? (enum-modifiers)? "enum" identifier
  (enum-base)? enum-body (";")?

enum-base:
  ":" integral-type

enum-body:
  "{" (enum-member-declarations)? "}"
  "{" enum-member-declarations "," "}"

enum-modifiers:
  (enum-modifier)+

enum-modifier:
  "new"
  "public"
  "protected"
  "internal"
  "private"

enum-member-declarations:
  enum-member-declaration ( "," enum-member-declaration )*


Constructor & Destructor Documentation

CsEnum::CsEnum  )  [inline]
 

CsEnum::CsEnum LineInfo  line_info  )  [inline, explicit]
 

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


Member Function Documentation

virtual void CsEnum::addEntityDefinitions CsEntityCollector tokenCollector  )  [virtual]
 

Collect entities defined in this AST node.

Implements CsNode.

virtual void CsEnum::addEntityReferences CsEntityCollector tokenCollector  )  [virtual]
 

Collect entity references.

Implements CsNode.

virtual void CsEnum::addTokens CsTokenCollector tokenCollector  )  [virtual]
 

Collect token indexes associated with this AST node.

Implements CsNode.

virtual void CsEnum::addTokensRecursive CsTokenCollector tokenCollector  )  [virtual]
 

Recusively collect token indexes in source code order.

Implements CsNode.

virtual void CsEnum::build_entities CsDisplay &  display  )  [virtual]
 

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

Implements CsNode.

virtual void CsEnum::clearEntities  )  [virtual]
 

Clear all entity references (for internal purpose only).

Reimplemented from CsScopeNode.

virtual void CsEnum::member_lookup CsDisplay &  display  )  [virtual]
 

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

Implements CsNode.

virtual void CsEnum::type_lookup CsDisplay &  display  )  [virtual]
 

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

Implements CsNode.


Member Data Documentation

CsAttributes* CsEnum::attributes
 

Attributes.

CsTokenType CsEnum::base
 

Base class.

CsTokenIndex CsEnum::base_token
 

CsTokenIndex CsEnum::colon_token
 

CsTokenIndex CsEnum::enum_token
 

CsTokenIndex CsEnum::identifier_token
 

CsTokenIndex CsEnum::lcurly_token
 

FastArray<CsEnumMember*> CsEnum::members
 

Members.

CsModifiers CsEnum::modifiers
 

Modifiers.

PHashString CsEnum::name
 

Enumeration type name.

CsTokenIndex CsEnum::rcurly_token
 

CsTokenIndex CsEnum::semicolon_token
 

© 2005 metaspec