CsInterface Struct Reference

Interface AST node. More...

Inheritance diagram for CsInterface:

CsScopeNode CsNode List of all members.

Public Member Functions

 CsInterface ()
 CsInterface (LineInfo line_info)
virtual ~CsInterface ()
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
 Interface name.
CsTypeBasebase
 Base type list.
FastDeque< CsNode * > member_declarations
 Member declarations.
bool bBaseClassResolved
 Internal flag.
CsTokenIndex interface_token
CsTokenIndex identifier_token
CsTokenIndex lcurly_token
CsTokenIndex rcurly_token
CsTokenIndex semicolon_token

Detailed Description

Interface AST node.

EBNF grammar:

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

interface-modifiers:
  (interface-modifier)+

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

interface-body:
  "{" (interface-member-declarations)? "}"

interface-member-declarations:
  (interface-member-declaration)+

interface-member-declaration:
  interface-method-declaration
  interface-property-declaration
  interface-event-declaration
  interface-indexer-declaration

interface-method-declaration:
  (attributes)? ("new")? return-type identifier "(" formal-parameter-listopt ")" ";"

interface-property-declaration:
  (attributes)? ("new")? type identifier "{" interface-accessors "}"

interface-event-declaration:
  (attributes)? ("new")? "event" type identifier ";"

interface-indexer-declaration:
  (attributes)? ("new")? type "this" "[" formal-parameter-list "]" "{" interface-accessors "}"

interface-accessors:
  (attributes)? "get" ";"
  (attributes)? "set" ";"
  (attributes)? "get" ";" (attributes)? "set" ";"
  (attributes)? "set" ";" (attributes)? "get" ";"


Constructor & Destructor Documentation

CsInterface::CsInterface  )  [inline]
 

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

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


Member Function Documentation

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

Collect entities defined in this AST node.

Implements CsNode.

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

Collect entity references.

Implements CsNode.

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

Collect token indexes associated with this AST node.

Implements CsNode.

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

Recusively collect token indexes in source code order.

Implements CsNode.

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

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

Implements CsNode.

virtual void CsInterface::clearEntities  )  [virtual]
 

Clear all entity references (for internal purpose only).

Reimplemented from CsScopeNode.

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

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

Implements CsNode.

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

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

Implements CsNode.


Member Data Documentation

CsAttributes* CsInterface::attributes
 

Attributes.

CsTypeBase* CsInterface::base
 

Base type list.

bool CsInterface::bBaseClassResolved
 

Internal flag.

CsTokenIndex CsInterface::identifier_token
 

CsTokenIndex CsInterface::interface_token
 

CsTokenIndex CsInterface::lcurly_token
 

FastDeque<CsNode*> CsInterface::member_declarations
 

Member declarations.

CsModifiers CsInterface::modifiers
 

Modifiers.

PHashString CsInterface::name
 

Interface name.

CsTokenIndex CsInterface::rcurly_token
 

CsTokenIndex CsInterface::semicolon_token
 

© 2005 metaspec