ROSE 0.11.145.192
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | List of all members
Rosebud::Ast::Project Class Reference

Description

Root of an AST for one or more input files.

The project represents all the input files that were parsed.

Definition at line 546 of file Ast.h.

#include <Rosebud/Ast.h>

Inheritance diagram for Rosebud::Ast::Project:
Inheritance graph
[legend]
Collaboration diagram for Rosebud::Ast::Project:
Collaboration graph
[legend]

Public Types

using Ptr = ProjectPtr
 Shared-ownership pointer.
 
- Public Types inherited from Rosebud::Ast::Node
using Ptr = NodePtr
 
- Public Types inherited from Sawyer::Tree::Vertex< Node >
using UserBase = Node
 User's base class.
 
using UserBasePtr = std::shared_ptr< UserBase >
 Pointer to user's base class.
 
using TraversalEvent = Sawyer::Tree::TraversalEvent
 Alias for traversal events.
 

Public Member Functions

std::vector< ClassPtrallClassesFileOrder ()
 Return all classes defined in the input.
 
ClassPtr findClassByName (const std::string &)
 Find a class by name.
 
- Public Member Functions inherited from Rosebud::Ast::Node
template<class T >
std::shared_ptr< T > findAncestor ()
 
- Public Member Functions inherited from Sawyer::Tree::Vertex< Node >
UserBasePtr pointer ()
 Returns a shared pointer to this vertex.
 
std::shared_ptr< T > isa ()
 Tests whether this object is a certain type.
 
auto traverseReverse (const Visitor &visitor)
 Traverse in reverse direction from children to parents.
 
auto traverse (const Visitor &visitor)
 Traverse in forward direction from parents to children.
 
auto traversePre (const Visitor &visitor)
 Pre-order forward traversal.
 
auto traversePost (const Visitor &visitor)
 Post-order forward traversal.
 
std::shared_ptr< T > findFirstAncestor ()
 Traversal that finds the closest ancestor of type T or derived from T.
 
std::shared_ptr< T > findLastAncestor ()
 Traversal that finds the farthest ancestor of type T or derived from T.
 
std::vector< std::shared_ptr< T > > findDescendants ()
 Traversal that finds all the descendants of a particular type.
 
UserBasePtr child (size_t i) const
 Returns the pointer for a child.
 
size_t nChildren () const
 Returns the number of children.
 

Static Public Member Functions

static Ptr instance ()
 Allocating constructor.
 

Public Attributes

EdgeVector< Filefiles
 Non-null list of input files.
 
- Public Attributes inherited from Sawyer::Tree::Vertex< Node >
ReverseEdge parent
 Pointer to the parent in the tree.
 

Protected Member Functions

 Project ()
 Default constructor used only by derived classes.
 
- Protected Member Functions inherited from Sawyer::Tree::Vertex< Node >
virtual void destructorHelper ()
 

Member Typedef Documentation

◆ Ptr

Shared-ownership pointer.

Definition at line 549 of file Ast.h.

Member Function Documentation

◆ allClassesFileOrder()

std::vector< ClassPtr > Rosebud::Ast::Project::allClassesFileOrder ( )

Return all classes defined in the input.

The returned classes are in the order they appear in a depth-first traversal of the AST, which is the same order they were encountered during parsing.

◆ findClassByName()

ClassPtr Rosebud::Ast::Project::findClassByName ( const std::string &  )

Find a class by name.

If the class name exists, then return a pointer to the class, otherwise return null.

Member Data Documentation

◆ files

EdgeVector<File> Rosebud::Ast::Project::files

Non-null list of input files.

Definition at line 553 of file Ast.h.


The documentation for this class was generated from the following file: