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.
CsIdentifier identifier
 Enumeration type name.
CsTokenType base
 Underlying type.
FastArray< CsEnumMember * > members
 Members.
CsTokenIndex enum_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::build_entities ( CsDisplay &  display  )  [virtual]

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

Implements CsNode.

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

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

Implements CsNode.

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

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

Implements CsNode.

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

Recusively collect token indexes in source code order.

Implements CsNode.

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

Collect token indexes associated with this AST node.

Implements CsNode.

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::clearEntities (  )  [virtual]

Clear all entity references (for internal purpose only).

Reimplemented from CsScopeNode.


Member Data Documentation

Enumeration type name.

Underlying type.

Members.

© 2008 metaspec