ROSE 0.11.145.192
Rosebud/BasicTypes.h
1#ifndef Rosebud_BasicTypes_H
2#define Rosebud_BasicTypes_H
3
4#include <Sawyer/Clexer.h>
5
463namespace Rosebud {
464
467
470
472enum class Expand {
473 NONE,
474 INTER,
475 PRIOR
476};
477
479enum class When {
480 NEVER,
481 ALWAYS,
482 AUTO
483};
484
485class Generator;
486using GeneratorPtr = std::shared_ptr<Generator>;
487class Serializer;
488using SerializerPtr = std::shared_ptr<Serializer>;
490// AST node types
491namespace Ast {
492class Node;
493using NodePtr = std::shared_ptr<Node>;
494class TokenList;
495using TokenListPtr = std::shared_ptr<TokenList>;
496class ArgumentList;
497using ArgumentListPtr = std::shared_ptr<ArgumentList>;
498class CppStack;
499using CppStackPtr = std::shared_ptr<CppStack>;
500class Attribute;
501using AttributePtr = std::shared_ptr<Attribute>;
502class Definition;
503using DefinitionPtr = std::shared_ptr<Definition>;
504class Property;
505using PropertyPtr = std::shared_ptr<Property>;
506class Class;
507using ClassPtr = std::shared_ptr<Class>;
508class File;
509using FilePtr = std::shared_ptr<File>;
510class Project;
511using ProjectPtr = std::shared_ptr<Project>;
512} // namespace
513
514} // namespace
515#endif
A node that holds a list of arguments.
Definition Ast.h:197
An attribute adjusting the details for a definition.
Definition Ast.h:218
Represents a class definition.
Definition Ast.h:363
Information about C preprocessor conditional compilation directives.
Definition Ast.h:132
Base class for class and property definitions.
Definition Ast.h:254
An input file.
Definition Ast.h:414
Root of an AST for one or more input files.
Definition Ast.h:546
Represents a class property definition.
Definition Ast.h:316
Node that holds a sequence of consecutive tokens from an input file.
Definition Ast.h:78
Base class for serialization generators.
Definition Serializer.h:13
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< ArgumentList > ArgumentListPtr
Shared-ownership pointer to a ArgumentList.
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< File > FilePtr
Shared-ownership pointer to a File.
std::shared_ptr< TokenList > TokenListPtr
Shared-ownership pointer to a TokenList.
std::shared_ptr< Attribute > AttributePtr
Shared-ownership pointer to a Attribute.
Rosebud is a tool to generate abstract syntax trees.
Definition Ast.h:14
When
When something should be done.
@ NEVER
Never do it.
@ AUTO
Sometimes do it.
@ ALWAYS
Always do it.
std::shared_ptr< Generator > GeneratorPtr
Shared-ownership pointer to a Generator.
Expand
How to obtain text when converting a sequence of tokens to a string.
@ NONE
Each token's [begin,end) individually.
@ INTER
From first token's begin to last token's end.
@ PRIOR
From first token's prior to last token's end.
std::shared_ptr< Serializer > SerializerPtr
Shared-ownership pointer to a Serializer.