top | up | prev | next

ast Namespace

Classes

class AdditiveExpressionNode
class AliasDeclarationNode
class AndExpressionNode
class ArrayDeclaratorNode
class ArrowNode
class AssignCaptureNode
class AssignmentExpressionNode
class AssignmentInitializerNode
class BaseClassSpecifierNode
class BaseClassSpecifierSequenceNode
class BinaryNode
class BooleanLiteralNode
class BracedInitializerListNode
class BreakStatementNode
class CaptureSequenceNode
class CaseStatementNode
class CastExpressionNode
class CatchAllNode
class CharacterLiteralNode
class ClassNode
class CommaExpressionNode
class CompoundStatementNode
class ConcreteNodeCreator
class ConditionalExpressionNode
class ConstNode
class ContinueStatementNode
class ConversionFunctionIdNode
class CppCastExpressionNode
class CtorInitializerNode
class DeclarationSequenceNode
class DeclarationStatementNode
class DefaultStatementNode
class DeleteExpressionNode
class DoStatementNode
class DotNode
class DtorIdNode
class ElaborateClassNameNode
class EnumTypeNode
class EnumeratorNode
class EnumeratorSequenceNode
class EqualityExpressionNode
class ExclusiveOrExpressionNode
class ExplicitInstantiationNode
class ExplicitSpecializationNode
class ExpressionInitializerNode
class ExpressionListInitializerNode
class ExpressionSequenceNode
class ExpressionStatementNode
class FloatingLiteralNode
class ForStatementNode
class ForwardClassDeclarationNode
class FunctionDeclaratorNode
class FunctionNode
class FunctionPtrIdNode
class GotoStatementNode
class HandlerNode
class HandlerSequenceNode
class IdDeclaratorNode
class IdentifierCaptureNode
class IdentifierNode
class IfStatementNode
class InclusiveOrExpressionNode
class InitDeclaratorNode
class IntegerLiteralNode
class InvokeExpressionNode
class LValueRefNode
class LabeledStatementNode
class LambdaExpressionNode
class LinkageSpecificationNode
class LiteralNode
class LogicalAndExpressionNode
class LogicalOrExpressionNode
class MemberAccessDeclarationNode
class MemberDeclarationNode
class MemberFunctionPtrIdNode
class MemberInitializerNode
class MemberInitializerSequenceNode
class MultiplicativeExpressionNode
class NamespaceNode
class NestedIdNode
class NewExpressionNode
class Node
class NodeCreator
class NodeFactory
class NullPtrLiteralNode
class OperatorFunctionIdNode
class PMExpressionNode
class ParameterNode
class ParameterSequenceNode
class ParenthesizedExprNode
class PointerNode
class PostfixDecNode
class PostfixIncNode
class Project
class RValueRefNode
class RangeForStatementNode
class Reader
class RefCaptureNode
class RelationalExpressionNode
class ReturnStatementNode
class ShiftExpressionNode
class SimpleDeclarationNode
class SimpleTypeNode
class Solution
class SourceCodeWriter
class SourceFileNode
class SourceFileResolverVisitor
class SourceFileSequenceNode
class SpecialMemberFunctionNode
class StatementSequenceNode
class StringLiteralNode
class SubscriptExpressionNode
class SwitchStatementNode
class TemplateArgumentNode
class TemplateArgumentSequenceNode
class TemplateDeclarationNode
class TemplateIdNode
class TemplateParameterSequenceNode
class ThisCaptureNode
class ThisNode
class ThrowExpressionNode
class TryStatementNode
class TypeIdExpressionNode
class TypeParameterNode
class TypedefNode
class UnaryExpressionNode
class UnaryNode
class UsingDeclarationNode
class UsingDirectiveNode
struct Version
class Visitor
class VolatileNode
class WhileStatementNode
class Writer

Functions

Node* CreatePrefixTypeExprNode(const Span& span_, Specifier cvSpecifiers, Node* typeExprNode)
Specifier DeclSpecifierMask() constexpr inline
Specifier DefaultDeleteSpecifierMask() constexpr inline
void Done()
bool HasPureSpecifier(Specifier specifiers)
void Init()
bool IsFunctionDeclarator(Node* declaratorNode)
void NodeDone()
void NodeInit()
std::u32string OpStr(Operator op)
void ResolveSourceFiles(Node* ast, std::vector<SourceFileNode*>& sourceFiles)
std::u32string SpecifierStr(Specifier specifiers)
std::u32string ToString(ClassKey classKey)
std::u32string ToString(EnumKey enumKey)
std::u32string ToString(SimpleTypeSpecifier specifier)
std::u32string ToString(Suffix suffix)
Specifier VirtPureSpecifierMask() constexpr inline
SimpleTypeSpecifierFlags operator&(SimpleTypeSpecifierFlags left, SimpleTypeSpecifierFlags right) constexpr inline
Specifier operator&(Specifier left, Specifier right) constexpr inline
Suffix operator&(Suffix left, Suffix right) inline
SimpleTypeSpecifierFlags operator|(SimpleTypeSpecifierFlags left, SimpleTypeSpecifierFlags right) constexpr inline
Specifier operator|(Specifier left, Specifier right) constexpr inline
Suffix operator|(Suffix left, Suffix right) inline
SimpleTypeSpecifierFlags operator~(SimpleTypeSpecifierFlags flags) constexpr inline

Enumerations

enum class Base
enum class ClassKey
enum class EnumKey
enum class NodeType
enum class Operator
enum class SimpleTypeSpecifier
enum class SimpleTypeSpecifierFlags
enum class Specifier
enum class Suffix

Function Details

CreatePrefixTypeExprNode Function

Node * sngcpp::ast::CreatePrefixTypeExprNode(const Span& span_, Specifier cvSpecifiers, Node * typeExprNode)

Definition at line 38 of TypeExpr.cpp
Declaration at line 29 of TypeExpr.hpp


DeclSpecifierMask Function

Specifier sngcpp::ast::DeclSpecifierMask() constexpr inline

Definition at line 55 of Specifier.hpp :
56 {
57     return Specifier::register_ | Specifier::static_ | Specifier::threadLocal | Specifier::extern_ | Specifier::mutable_ | 
58         Specifier::inline_ | Specifier::virtual_ | Specifier::explicit_ | 
59         Specifier::friend_ | Specifier::constExpr;
60 }



DefaultDeleteSpecifierMask Function

Specifier sngcpp::ast::DefaultDeleteSpecifierMask() constexpr inline

Definition at line 67 of Specifier.hpp :
68 {
69     return Specifier::default_ | Specifier::delete_;
70 }



Done Function

void sngcpp::ast::Done()

Definition at line 16 of InitDone.cpp :
17 {
18     NodeDone();
19 }


Declaration at line 13 of InitDone.hpp


HasPureSpecifier Function

bool sngcpp::ast::HasPureSpecifier(Specifier specifiers)

Definition at line 106 of Function.cpp :
107 {
108     return (specifiers & Specifier::pure_) != Specifier::none;
109 }


Declaration at line 56 of Function.hpp


Init Function

void sngcpp::ast::Init()

Definition at line 11 of InitDone.cpp :
12 {
13     NodeInit();
14 }


Declaration at line 12 of InitDone.hpp


IsFunctionDeclarator Function

bool sngcpp::ast::IsFunctionDeclarator(Node * declaratorNode)

Definition at line 101 of Function.cpp :
102 {
103     return declaratorNode->IsFunctionDeclaratorNode();
104 }


Declaration at line 55 of Function.hpp

Calls: sngcpp::ast::Node::IsFunctionDeclaratorNode


NodeDone Function

void sngcpp::ast::NodeDone()

Definition at line 314 of Node.cpp :
315 {
316     NodeFactory::Done();
317 }


Declaration at line 128 of Node.hpp

Calls: sngcpp::ast::NodeFactory::Done


NodeInit Function

void sngcpp::ast::NodeInit()

Definition at line 309 of Node.cpp :
310 {
311     NodeFactory::Init();
312 }


Declaration at line 127 of Node.hpp

Calls: sngcpp::ast::NodeFactory::Init


OpStr Function

std::u32string sngcpp::ast::OpStr(Operator op)

Definition at line 13 of Expression.cpp
Declaration at line 23 of Expression.hpp


ResolveSourceFiles Function

void sngcpp::ast::ResolveSourceFiles(Node * ast, std::vector<SourceFileNode *>& sourceFiles)

Definition at line 146 of SourceFile.cpp :
147 {
148     SourceFileResolverVisitor resolver(sourceFiles);
149     ast->Accept(resolver);
150 }


Declaration at line 69 of SourceFile.hpp

Calls: sngcpp::ast::Node::Accept


SpecifierStr Function

std::u32string sngcpp::ast::SpecifierStr(Specifier specifiers)

Definition at line 10 of Specifier.cpp
Declaration at line 53 of Specifier.hpp


ToString Function

std::u32string sngcpp::ast::ToString(ClassKey classKey)

Definition at line 14 of Class.cpp :
 15 {
 16     switch (classKey)
 17     {
 18         case ClassKey::class_: return U"class";
 19         case ClassKey::struct_: return U"struct";
 20         case ClassKey::union_: return U"union";
 21         case ClassKey::typename_: return U"typename";
 22     }
 23     return std::u32string();
 24 }


Declaration at line 18 of Class.hpp


ToString Function

std::u32string sngcpp::ast::ToString(EnumKey enumKey)

Definition at line 13 of Enumeration.cpp :
 14 {
 15     switch (enumKey)
 16     {
 17         case EnumKey::enumClass_: return U"enum class";
 18         case EnumKey::enumStruct_: return U"enum struct";
 19         case EnumKey::enum_: return U"enum";
 20     }
 21     return std::u32string();
 22 }


Declaration at line 18 of Enumeration.hpp


ToString Function

std::u32string sngcpp::ast::ToString(SimpleTypeSpecifier specifier)

Definition at line 18 of SimpleType.cpp :
 19 {
 20     return simpleTypeSpecifierStr[uint8_t(specifier)];
 21 }


Declaration at line 41 of SimpleType.hpp

Called by: sngcpp::ast::SimpleTypeNode::Id , sngcpp::ast::SimpleTypeNode::Str


ToString Function

std::u32string sngcpp::ast::ToString(Suffix suffix)

Definition at line 13 of Literal.cpp
Declaration at line 37 of Literal.hpp


VirtPureSpecifierMask Function

Specifier sngcpp::ast::VirtPureSpecifierMask() constexpr inline

Definition at line 62 of Specifier.hpp :
63 {
64     return Specifier::override_ | Specifier::final_ | Specifier::new_ | Specifier::pure_;
65 }



operator& Function

SimpleTypeSpecifierFlags sngcpp::ast::operator&(SimpleTypeSpecifierFlags left, SimpleTypeSpecifierFlags right) constexpr inline

Definition at line 31 of SimpleType.hpp :
32 {
33     return SimpleTypeSpecifierFlags(uint16_t(left) & uint16_t(right));
34 }



operator& Function

Specifier sngcpp::ast::operator&(Specifier left, Specifier right) constexpr inline

Definition at line 48 of Specifier.hpp :
49 {
50     return Specifier(uint32_t(left) & uint32_t(right));
51 }



operator& Function

Suffix sngcpp::ast::operator&(Suffix left, Suffix right) inline

Definition at line 27 of Literal.hpp :
 28 {
 29     return Suffix(uint8_t(left) & uint8_t(right));
 30 }



operator| Function

SimpleTypeSpecifierFlags sngcpp::ast::operator|(SimpleTypeSpecifierFlags left, SimpleTypeSpecifierFlags right) constexpr inline

Definition at line 26 of SimpleType.hpp :
27 {
28     return SimpleTypeSpecifierFlags(uint16_t(left) | uint16_t(right));
29 }



operator| Function

Specifier sngcpp::ast::operator|(Specifier left, Specifier right) constexpr inline

Definition at line 43 of Specifier.hpp :
44 {
45     return Specifier(uint32_t(left) | uint32_t(right));
46 }



operator| Function

Suffix sngcpp::ast::operator|(Suffix left, Suffix right) inline

Definition at line 22 of Literal.hpp :
 23 {
 24     return Suffix(uint8_t(left) | uint8_t(right));
 25 }



operator~ Function

SimpleTypeSpecifierFlags sngcpp::ast::operator~(SimpleTypeSpecifierFlags flags) constexpr inline

Definition at line 36 of SimpleType.hpp :
37 {
38     return SimpleTypeSpecifierFlags(~uint16_t(flags));
39 }



top | up | prev | next