1#ifndef Rosebud_YamlGenerator_H
2#define Rosebud_YamlGenerator_H
3#include <Rosebud/Generator.h>
5#include <Sawyer/Yaml.h>
12 using Ptr = std::shared_ptr<YamlGenerator>;
15 int indentationAmount = 2;
21 static Ptr instance();
22 virtual std::string
name()
const override;
23 virtual std::string
purpose()
const override;
Base class for backend code generators.
Generator that produces a YAML description of the input.
virtual std::string name() const override
Property: Every generator should have a unique name.
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 purpose() const override
Property: Single-line description for documentation.
The parser for a program command line.
Graph containing user-defined vertices and edges.
std::shared_ptr< Class > ClassPtr
Shared-ownership pointer to a Class.
std::shared_ptr< Property > PropertyPtr
Shared-ownership pointer to a Property.
std::shared_ptr< Node > NodePtr
Shared-ownership pointer to a Node.
std::shared_ptr< Definition > DefinitionPtr
Shared-ownership pointer to a Definition.
std::shared_ptr< Project > ProjectPtr
Shared-ownership pointer to a Project.
std::shared_ptr< CppStack > CppStackPtr
Shared-ownership pointer to a CppStack.
std::shared_ptr< Attribute > AttributePtr
Shared-ownership pointer to a Attribute.
Rosebud is a tool to generate abstract syntax trees.