#include <ast.h>
Inheritance diagram for enumNode::
Public Methods | |
enumNode (const Coord coord=Coord::Unknown) | |
Create new enum type. More... | |
enumNode (idNode *id, decl_list *values, const Coord enum_coord, const Coord left_coord, const Coord right_coord) | |
Create a new enum during parsing. More... | |
virtual | ~enumNode () |
Destroy a enumNode. More... | |
virtual Node * | clone () const |
Clone the input node. More... | |
Type predicates | |
virtual bool | is_int () const |
virtual bool | is_integer () const |
virtual bool | is_arithmetic () const |
virtual bool | is_scalar () const |
AST Traversal | |
virtual void | visit (Visitor *the_visitor) |
Dispatch a Visitor. More... | |
virtual void | walk (Walker &the_walker) |
Dispatch a Walker. More... | |
virtual Node * | change (Changer &the_changer, bool redispatch=false) |
Dispatch a Changer. More... |
This class represents enum types. Note that it does not represent the definition of the enums, but just an instant of the type. Any time the source refers to one of the enum constants, or has a variable or parameter that accepts the enum, this is the type associated. The actual definition resides in an suespecNode.
The NodeType is Enum.
|
Create new enum type. The new enum type has no tag and doesn't refer to any definition. Use the sueNode::spec() methods to get and set the reference to the definition, which also contains the name.
|
|
Create a new enum during parsing.
|
|
Destroy a enumNode.
|
|
Dispatch a Changer. This abstract method works much the walker, but allows the tree to be changed.
Reimplemented from Node. |
|
Clone the input node. This is not a "deep" clone, so be careful. For a deep clone, use the clone_changer class.
Reimplemented from Node. |
|
Reimplemented from typeNode. |
|
Reimplemented from typeNode. |
|
Reimplemented from typeNode. |
|
Reimplemented from typeNode. |
|
Dispatch a Visitor. This abstract method is the entry point for the visitor design pattern. Each node subclass defines a visit() method that calls the appropriate at_ method in the visitor. For more information see the Visitor documentation.
Reimplemented from Node. |
|
Dispatch a Walker. This abstract method works much like the visitor, but instead walks the entire underlying subtree calling the appropriate at_ method at each node. For more information see the Walker documentation.
Reimplemented from Node. |