ROSE 0.11.145.147
Public Types | Public Member Functions | Static Public Member Functions | List of all members
Rosebud::RosettaGenerator Class Reference

Description

Generator that produces ROSETTA output.

Definition at line 8 of file RosettaGenerator.h.

#include <Rosebud/RosettaGenerator.h>

Inheritance diagram for Rosebud::RosettaGenerator:
Inheritance graph
[legend]
Collaboration diagram for Rosebud::RosettaGenerator:
Collaboration graph
[legend]

Public Types

using Ptr = std::shared_ptr< RosettaGenerator >
 
- Public Types inherited from Rosebud::Generator
using Ptr = GeneratorPtr
 

Public Member Functions

virtual std::string name () const override
 Property: Every generator should have a unique name.
 
virtual std::string purpose () const override
 Property: Single-line description for documentation.
 
virtual void adjustParser (Sawyer::CommandLine::Parser &) override
 Add command-line switches and documentation to a parser.
 
virtual void generate (const Ast::ProjectPtr &) override
 Generate code.
 
virtual std::string propertyDataMemberName (const Ast::PropertyPtr &p) const override
 Data member name for a property.
 
virtual std::vector< std::string > propertyAccessorNames (const Ast::PropertyPtr &) const override
 Accessor names for a property.
 
virtual std::vector< std::string > propertyMutatorNames (const Ast::PropertyPtr &) const override
 Mutator names for a property.
 
- Public Member Functions inherited from Rosebud::Generator
void commandLine (const std::vector< std::string > &)
 Property: Entire Rosebud command line.
 
const std::vector< std::string > & commandLine () const
 Property: Entire Rosebud command line.
 

Static Public Member Functions

static Ptr instance ()
 
- Static Public Member Functions inherited from Rosebud::Generator
static void registerGenerator (const Ptr &)
 Register a backend for use later.
 
static const std::vector< Ptr > & registeredGenerators ()
 Return all registered backends.
 
static Ptr lookup (const std::string &)
 Return the registered generator with the specified name.
 
static void addAllToParser (Sawyer::CommandLine::Parser &)
 Add all known generator switches to parser.
 

Additional Inherited Members

- Protected Member Functions inherited from Rosebud::CxxGenerator
virtual std::string machineGenerated (char commentType='/')
 Return a title comment that says the file is machine generated.
 
virtual std::string ctorInitializerExpression (const Ast::PropertyPtr &, const std::string &expr)
 Expression for initializing a property in a constructor, or empty.
 
virtual std::string resetStatement (const Ast::PropertyPtr &)
 Statement to initialize a property.
 
virtual std::string propertyDataMemberType (const Ast::PropertyPtr &)
 Type for the data member for a property.
 
virtual std::string propertyAccessorReturnType (const Ast::PropertyPtr &)
 Type for the return value for a property accessor.
 
virtual std::string propertyMutatorArgumentType (const Ast::PropertyPtr &)
 Type for the argument for a property mutator.
 
virtual std::string initialValue (const Ast::PropertyPtr &)
 Initial value expression for the property.
 
virtual std::string valueType (const Ast::PropertyPtr &)
 Type of value for initializing a property.
 
virtual void genDestructor (std::ostream &header, std::ostream &impl, const Ast::ClassPtr &)
 Emit code for the class destructor.
 
virtual void genDefaultConstructor (std::ostream &header, std::ostream &impl, const Ast::ClassPtr &, Access)
 Emit code for the class default constructor.
 
virtual bool genArgsConstructor (std::ostream &header, std::ostream &impl, const Ast::ClassPtr &, const Hierarchy &, Access)
 Emit code for the constructor with ctor_args property arguments.
 
virtual void genConstructorBody (std::ostream &, const Ast::ClassPtr &)
 Emit code for the constructor body.
 
virtual void genInitProperties (std::ostream &header, std::ostream &impl, const Ast::ClassPtr &)
 Emit code that initializes all local properties.
 
virtual std::string removePointer (const std::string &) const
 Given a type name, remove the outer pointer if present.
 
- Protected Member Functions inherited from Rosebud::Generator
std::string generatedByRosebud (const std::string &prefix)
 Return a multi-line comment that this file was generated by Rosebud.
 
- Protected Attributes inherited from Rosebud::CxxGenerator
size_t outputWidth = 130
 

Member Typedef Documentation

◆ Ptr

using Rosebud::RosettaGenerator::Ptr = std::shared_ptr<RosettaGenerator>

Definition at line 10 of file RosettaGenerator.h.

Constructor & Destructor Documentation

◆ RosettaGenerator()

Rosebud::RosettaGenerator::RosettaGenerator ( )
inlineprotected

Definition at line 22 of file RosettaGenerator.h.

Member Function Documentation

◆ name()

virtual std::string Rosebud::RosettaGenerator::name ( ) const
overridevirtual

Property: Every generator should have a unique name.

Implements Rosebud::Generator.

◆ purpose()

virtual std::string Rosebud::RosettaGenerator::purpose ( ) const
overridevirtual

Property: Single-line description for documentation.

Implements Rosebud::Generator.

◆ adjustParser()

virtual void Rosebud::RosettaGenerator::adjustParser ( Sawyer::CommandLine::Parser )
overridevirtual

Add command-line switches and documentation to a parser.

Any command-line switches and documentation that is specific to the backend are added to the specified parser. In order to not conflict with other backends that might also be adding switch parsers, the backend should create a switch group and give it a unique prefix.

Reimplemented from Rosebud::Generator.

◆ generate()

virtual void Rosebud::RosettaGenerator::generate ( const Ast::ProjectPtr )
overridevirtual

Generate code.

The specified project AST is used to generate code.

Implements Rosebud::Generator.

◆ propertyDataMemberName()

virtual std::string Rosebud::RosettaGenerator::propertyDataMemberName ( const Ast::PropertyPtr ) const
overridevirtual

Data member name for a property.

Returns the name of the class data member that stores the value of the property. The returned value must be a valid C++ name for the property data member. Each property has exactly one data member.

Reimplemented from Rosebud::Generator.

◆ propertyAccessorNames()

virtual std::vector< std::string > Rosebud::RosettaGenerator::propertyAccessorNames ( const Ast::PropertyPtr ) const
overridevirtual

Accessor names for a property.

Returns a list of zero or more C++ member function names to use as accessor names. If no names are returned, then no accessor functions are declared or defined.

Reimplemented from Rosebud::Generator.

◆ propertyMutatorNames()

virtual std::vector< std::string > Rosebud::RosettaGenerator::propertyMutatorNames ( const Ast::PropertyPtr ) const
overridevirtual

Mutator names for a property.

Returns a list of zero or more C++ member function names to use as mutator names. If no names are returned, then no mutator functions are declared or defined.

Reimplemented from Rosebud::Generator.


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