top | up | prev | next

SourceWriter Class

Definition at line 14 of SourceWriter.hpp

Constructors

SourceWriter(CodeFormatter& formatter_)

Member Functions

void Visit(AddNode& addNode) override
void Visit(AddrOfNode& addrOfNode) override
void Visit(AliasNode& aliasNode) override
void Visit(ArrayLiteralNode& arrayLiteralNode) override
void Visit(ArrayNode& arrayNode) override
void Visit(ArrowNode& arrowNode) override
void Visit(AsNode& asNode) override
void Visit(AssertStatementNode& assertStatementNode) override
void Visit(AssignmentStatementNode& assignmentStatementNode) override
void Visit(Attribute& attribute) override
void Visit(Attributes& attributes) override
void Visit(AxiomNode& axiomNode) override
void Visit(AxiomStatementNode& axiomStatementNode) override
void Visit(BaseInitializerNode& baseInitializerNode) override
void Visit(BaseNode& baseNode) override
void Visit(BitAndNode& bitAndNode) override
void Visit(BitOrNode& bitOrNode) override
void Visit(BitXorNode& bitXorNode) override
void Visit(BoolNode& boolNode) override
void Visit(BooleanLiteralNode& booleanLiteralNode) override
void Visit(BreakStatementNode& breakStatementNode) override
void Visit(ByteLiteralNode& byteLiteralNode) override
void Visit(ByteNode& byteNode) override
void Visit(CaseStatementNode& caseStatementNode) override
void Visit(CastNode& castNode) override
void Visit(CatchNode& catchNode) override
void Visit(CharLiteralNode& charLiteralNode) override
void Visit(CharNode& charNode) override
void Visit(ClassDelegateNode& classDelegateNode) override
void Visit(ClassNode& classNode) override
void Visit(CommentNode& comment) override
void Visit(CompileUnitNode& compileUnitNode) override
void Visit(ComplementNode& complementNode) override
void Visit(CompoundStatementNode& compoundStatementNode) override
void Visit(ConceptIdNode& conceptIdNode) override
void Visit(ConceptNode& conceptNode) override
void Visit(ConditionalCompilationConjunctionNode& conditionalCompilationConjunctionNode) override
void Visit(ConditionalCompilationDisjunctionNode& conditionalCompilationDisjunctionNode) override
void Visit(ConditionalCompilationNotNode& conditionalCompilationNotNode) override
void Visit(ConditionalCompilationPartNode& conditionalCompilationPartNode) override
void Visit(ConditionalCompilationPrimaryNode& conditionalCompilationPrimaryNode) override
void Visit(ConditionalCompilationStatementNode& conditionalCompilationStatementNode) override
void Visit(ConjunctionNode& conjunctionNode) override
void Visit(ConjunctiveConstraintNode& conjunctiveConstraintNode) override
void Visit(ConstNode& constNode) override
void Visit(ConstantNode& constantNode) override
void Visit(ConstructNode& constructNode) override
void Visit(ConstructionStatementNode& constructionStatementNode) override
void Visit(ConstructorConstraintNode& constructorConstraintNode) override
void Visit(ConstructorNode& constructorNode) override
void Visit(ContinueStatementNode& continueStatementNode) override
void Visit(ConversionFunctionNode& conversionFunctionNode) override
void Visit(CursorIdNode& cursorIdNode) override
void Visit(DefaultStatementNode& defaultStatementNode) override
void Visit(DelegateNode& delegateNode) override
void Visit(DeleteStatementNode& deleteStatementNode) override
void Visit(DerefNode& derefNode) override
void Visit(DestroyStatementNode& destroyStatementNode) override
void Visit(DestructorConstraintNode& destructorConstraintNode) override
void Visit(DestructorNode& destructorNode) override
void Visit(DisjunctionNode& disjunctionNode) override
void Visit(DisjunctiveConstraintNode& disjunctiveConstraintNode) override
void Visit(DivNode& divNode) override
void Visit(DoStatementNode& doStatementNode) override
void Visit(DotNode& dotNode) override
void Visit(DoubleLiteralNode& doubleLiteralNode) override
void Visit(DoubleNode& doubleNode) override
void Visit(EmptyStatementNode& emptyStatementNode) override
void Visit(EnumConstantNode& enumConstantNode) override
void Visit(EnumTypeNode& enumTypeNode) override
void Visit(EqualNode& equalNode) override
void Visit(EquivalenceNode& equivalenceNode) override
void Visit(ExpressionStatementNode& expressionStatementNode) override
void Visit(FloatLiteralNode& floatLiteralNode) override
void Visit(FloatNode& floatNode) override
void Visit(ForStatementNode& forStatementNode) override
void Visit(FunctionConstraintNode& functionConstraintNode) override
void Visit(FunctionNode& functionNode) override
void Visit(GlobalVariableNode& globalVariableNode) override
void Visit(GotoCaseStatementNode& gotoCaseStatementNode) override
void Visit(GotoDefaultStatementNode& gotoDefaultStatementNode) override
void Visit(GotoStatementNode& gotoStatementNode) override
void Visit(GreaterNode& greaterNode) override
void Visit(GreaterOrEqualNode& greaterOrEqualNode) override
void Visit(IdentifierNode& identifierNode) override
void Visit(IfStatementNode& ifStatementNode) override
void Visit(ImplicationNode& implicationNode) override
void Visit(IndexingNode& indexingNode) override
void Visit(IntLiteralNode& intLiteralNode) override
void Visit(IntNode& intNode) override
void Visit(InterfaceNode& interfaceNode) override
void Visit(InvokeNode& invokeNode) override
void Visit(IsConstraintNode& isConstraintNode) override
void Visit(IsNode& isNode) override
void Visit(LValueRefNode& lvalueRefNode) override
void Visit(LabelNode& labelNode) override
void Visit(LabeledStatementNode& labeledStatementNode) override
void Visit(LessNode& lessNode) override
void Visit(LessOrEqualNode& lessOrEqualNode) override
void Visit(LongLiteralNode& longLiteralNode) override
void Visit(LongNode& longNode) override
void Visit(MemberFunctionConstraintNode& memberFunctionConstraintNode) override
void Visit(MemberFunctionNode& memberFunctionNode) override
void Visit(MemberInitializerNode& memberInitializerNode) override
void Visit(MemberVariableNode& memberVariableNode) override
void Visit(MulNode& mulNode) override
void Visit(MultiParamConstraintNode& multiParamConstraintNode) override
void Visit(NamespaceImportNode& namespaceImportNode) override
void Visit(NamespaceNode& namespaceNode) override
void Visit(NewNode& newNode) override
void Visit(NotEqualNode& notEqualNode) override
void Visit(NotNode& notNode) override
void Visit(NullLiteralNode& nullLiteralNode) override
void Visit(ParameterNode& parameterNode) override
void Visit(ParenthesizedConditionalCompilationExpressionNode& parenthesizeCondCompExprNode) override
void Visit(ParenthesizedConstraintNode& parenthesizedConstraintNode) override
void Visit(ParenthesizedExpressionNode& parenthesizedExpressionNode) override
void Visit(PointerNode& pointerNode) override
void Visit(PostfixDecrementNode& postfixDecrementNode) override
void Visit(PostfixIncrementNode& postfixIncrementNode) override
void Visit(PredicateConstraintNode& predicateConstraintNode) override
void Visit(PrefixDecrementNode& prefixDecrementNode) override
void Visit(PrefixIncrementNode& prefixIncrementNode) override
void Visit(RValueRefNode& rvalueRefNode) override
void Visit(RangeForStatementNode& rangeForStatementNode) override
void Visit(RemNode& remNode) override
void Visit(ReturnStatementNode& returnStatementNode) override
void Visit(SByteLiteralNode& sbyteLiteralNode) override
void Visit(SByteNode& sbyteNode) override
void Visit(ShiftLeftNode& shiftLeftNode) override
void Visit(ShiftRightNode& shiftRightNode) override
void Visit(ShortLiteralNode& shortLiteralNode) override
void Visit(ShortNode& shortNode) override
void Visit(SizeOfNode& sizeOfNode) override
void Visit(StaticConstructorNode& staticConstructorNode) override
void Visit(StringLiteralNode& stringLiteralNode) override
void Visit(StructuredLiteralNode& structuredLiteralNode) override
void Visit(SubNode& subNode) override
void Visit(SwitchStatementNode& switchStatementNode) override
void Visit(TemplateIdNode& templateIdNode) override
void Visit(TemplateParameterNode& templateParameterNode) override
void Visit(ThisInitializerNode& thisInitializerNode) override
void Visit(ThisNode& thisNode) override
void Visit(ThrowStatementNode& throwStatementNode) override
void Visit(TryStatementNode& tryStatementNode) override
void Visit(TypeIdNode& typeIdNode) override
void Visit(TypeNameConstraintNode& typeNameConstraintNode) override
void Visit(TypeNameNode& typeNameNode) override
void Visit(TypedefNode& typedefNode) override
void Visit(UCharLiteralNode& ucharLiteralNode) override
void Visit(UCharNode& ucharNode) override
void Visit(UIntLiteralNode& uintLiteralNode) override
void Visit(UIntNode& uintNode) override
void Visit(ULongLiteralNode& ulongLiteralNode) override
void Visit(ULongNode& ulongNode) override
void Visit(UShortLiteralNode& ushortLiteralNode) override
void Visit(UShortNode& ushortNode) override
void Visit(UStringLiteralNode& ustringLiteralNode) override
void Visit(UnaryMinusNode& unaryMinusNode) override
void Visit(UnaryPlusNode& unaryPlusNode) override
void Visit(UuidLiteralNode& uuidLiteralNode) override
void Visit(VoidNode& voidNode) override
void Visit(WCharLiteralNode& wcharLiteralNode) override
void Visit(WCharNode& wcharNode) override
void Visit(WStringLiteralNode& wstringLiteralNode) override
void Visit(WhereConstraintNode& whereConstraintNode) override
void Visit(WhileStatementNode& whileStatementNode) override
void WriteEmptyLine()
void WriteWarning(const std::string& message)

Member Variables

bool emptyLine
CodeFormatter& formatter
bool omitNewLine
bool omitSemicolon

Constructor Details

SourceWriter Constructor

sngcm::ast::SourceWriter::SourceWriter(CodeFormatter & formatter_)

Definition at line 31 of SourceWriter.cpp :
  31 : formatter(formatter_)omitNewLine(false)omitSemicolon(false)emptyLine(false)
  32 {
  33 }


Declaration at line 17 of SourceWriter.hpp


Member Function Details

Visit Member Function

void sngcm::ast::SourceWriter::Visit(AddNode & addNode) override

Definition at line 1781 of SourceWriter.cpp :
1782 {
1783     addNode.Left()->Accept(*this);
1784     formatter.Write(" + ");
1785     addNode.Right()->Accept(*this);
1786 }


Declaration at line 160 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(AddrOfNode & addrOfNode) override

Definition at line 1852 of SourceWriter.cpp :
1853 {
1854     formatter.Write("&");
1855     addrOfNode.Subject()->Accept(*this);
1856 }


Declaration at line 171 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(AliasNode & aliasNode) override

Definition at line 309 of SourceWriter.cpp :
 310 {
 311     formatter.Write("using ");
 312     aliasNode.Id()->Accept(*this);
 313     formatter.Write(" = ");
 314     aliasNode.Qid()->Accept(*this);
 315     formatter.WriteLine(";");
 316 }


Declaration at line 58 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::AliasNode::Id , sngcm::ast::AliasNode::Qid , sngcm::ast::IdentifierNode::Accept , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ArrayLiteralNode & arrayLiteralNode) override

Definition at line 219 of SourceWriter.cpp
Declaration at line 52 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ArrayLiteralNode::Values , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ArrayNode & arrayNode) override

Definition at line 1651 of SourceWriter.cpp :
1652 {
1653     arrayNode.Subject()->Accept(*this);
1654     formatter.Write("[");
1655     if (arrayNode.Size())
1656     {
1657         arrayNode.Size()->Accept(*this);
1658     }
1659     formatter.Write("]");
1660 }


Declaration at line 141 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ArrayNode::Size , sngcm::ast::ArrayNode::Subject , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ArrowNode & arrowNode) override

Definition at line 1669 of SourceWriter.cpp :
1670 {
1671     arrowNode.Subject()->Accept(*this);
1672     formatter.Write("->");
1673     arrowNode.MemberId()->Accept(*this);
1674 }


Declaration at line 144 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ArrowNode::MemberId , sngcm::ast::IdentifierNode::Accept , sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(AsNode & asNode) override

Definition at line 1871 of SourceWriter.cpp :
1872 {
1873     asNode.Expr()->Accept(*this);
1874     formatter.Write(" as ");
1875     asNode.TargetTypeExpr()->Accept(*this);
1876 }


Declaration at line 174 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::AsNode::Expr , sngcm::ast::AsNode::TargetTypeExpr , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(AssertStatementNode & assertStatementNode) override

Definition at line 1433 of SourceWriter.cpp :
1434 {
1435     formatter.Write("#assert ");
1436     assertStatementNode.AssertExpr()->Accept(*this);
1437     formatter.WriteLine(";");
1438 }


Declaration at line 121 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::AssertStatementNode::AssertExpr , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(AssignmentStatementNode & assignmentStatementNode) override

Definition at line 1273 of SourceWriter.cpp
Declaration at line 109 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::AssignmentStatementNode::SourceExpr , sngcm::ast::AssignmentStatementNode::TargetExpr , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(Attribute & attribute) override

Definition at line 2015 of SourceWriter.cpp :
2016 {
2017     formatter.Write(soulng::unicode::ToUtf8(attribute.Name()));
2018     if (!attribute.Value().empty())
2019     {
2020         formatter.Write("=");
2021         formatter.Write("\"" + soulng::util::StringStr(soulng::unicode::ToUtf8(attribute.Value())) + "\"");
2022     }
2023 }


Declaration at line 189 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Attribute::Name , sngcm::ast::Attribute::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(Attributes & attributes) override

Definition at line 2025 of SourceWriter.cpp
Declaration at line 190 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Attributes::GetAttributes , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(AxiomNode & axiomNode) override

Definition at line 977 of SourceWriter.cpp
Declaration at line 91 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::AxiomNode::Id , sngcm::ast::AxiomNode::Parameters , sngcm::ast::AxiomNode::Statements , sngcm::ast::IdentifierNode::Accept , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::DecIndent , soulng::util::CodeFormatter::IncIndent , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(AxiomStatementNode & axiomStatementNode) override

Definition at line 971 of SourceWriter.cpp :
 972 {
 973     axiomStatementNode.Expression()->Accept(*this);
 974     formatter.WriteLine(";");
 975 }


Declaration at line 90 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::AxiomStatementNode::Expression , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(BaseInitializerNode & baseInitializerNode) override

Definition at line 486 of SourceWriter.cpp
Declaration at line 66 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::InitializerNode::Arguments , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(BaseNode & baseNode) override

Definition at line 1983 of SourceWriter.cpp :
1984 {
1985     formatter.Write("base");
1986 }


Declaration at line 186 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(BitAndNode & bitAndNode) override

Definition at line 1718 of SourceWriter.cpp :
1719 {
1720     bitAndNode.Left()->Accept(*this);
1721     formatter.Write(" & ");
1722     bitAndNode.Right()->Accept(*this);
1723 }


Declaration at line 151 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(BitOrNode & bitOrNode) override

Definition at line 1704 of SourceWriter.cpp :
1705 {
1706     bitOrNode.Left()->Accept(*this);
1707     formatter.Write(" | ");
1708     bitOrNode.Right()->Accept(*this);
1709 }


Declaration at line 149 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(BitXorNode & bitXorNode) override

Definition at line 1711 of SourceWriter.cpp :
1712 {
1713     bitXorNode.Left()->Accept(*this);
1714     formatter.Write(" ^ ");
1715     bitXorNode.Right()->Accept(*this);
1716 }


Declaration at line 150 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(BoolNode & boolNode) override

Definition at line 35 of SourceWriter.cpp :
  36 {
  37     formatter.Write("bool");
  38 }


Declaration at line 18 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(BooleanLiteralNode & booleanLiteralNode) override

Definition at line 110 of SourceWriter.cpp :
 111 {
 112     if (booleanLiteralNode.Value())
 113     {
 114         formatter.Write("true");
 115     }
 116     else
 117     {
 118         formatter.Write("false");
 119     }
 120 }


Declaration at line 34 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BooleanLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(BreakStatementNode & breakStatementNode) override

Definition at line 1207 of SourceWriter.cpp :
1208 {
1209     formatter.WriteLine("break;");
1210 }


Declaration at line 103 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ByteLiteralNode & byteLiteralNode) override

Definition at line 127 of SourceWriter.cpp :
 128 {
 129     formatter.Write(std::to_string(byteLiteralNode.Value()) + "u");
 130 }


Declaration at line 36 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ByteLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ByteNode & byteNode) override

Definition at line 45 of SourceWriter.cpp :
  46 {
  47     formatter.Write("byte");
  48 }


Declaration at line 20 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(CaseStatementNode & caseStatementNode) override

Definition at line 1352 of SourceWriter.cpp
Declaration at line 114 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::CaseStatementNode::CaseExprs , sngcm::ast::CaseStatementNode::Statements , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(CastNode & castNode) override

Definition at line 1935 of SourceWriter.cpp :
1936 {
1937     formatter.Write("cast<");
1938     castNode.TargetTypeExpr()->Accept(*this);
1939     formatter.Write(">(");
1940     castNode.SourceExpr()->Accept(*this);
1941     formatter.Write(")");
1942 }


Declaration at line 182 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::CastNode::SourceExpr , sngcm::ast::CastNode::TargetTypeExpr , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(CatchNode & catchNode) override

Definition at line 1420 of SourceWriter.cpp
Declaration at line 120 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::CatchNode::CatchBlock , sngcm::ast::CatchNode::Id , sngcm::ast::CatchNode::TypeExpr , sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::IdentifierNode::Accept , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(CharLiteralNode & charLiteralNode) override

Definition at line 172 of SourceWriter.cpp :
 173 {
 174     formatter.Write("'");
 175     formatter.Write(soulng::util::CharStr(charLiteralNode.Value()));
 176     formatter.Write("'");
 177 }


Declaration at line 45 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::CharLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(CharNode & charNode) override

Definition at line 90 of SourceWriter.cpp :
  91 {
  92     formatter.Write("char");
  93 }


Declaration at line 29 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ClassDelegateNode & classDelegateNode) override

Definition at line 818 of SourceWriter.cpp
Declaration at line 76 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ClassDelegateNode::GetSpecifiers , sngcm::ast::ClassDelegateNode::Id , sngcm::ast::ClassDelegateNode::Parameters , sngcm::ast::ClassDelegateNode::ReturnTypeExpr , sngcm::ast::IdentifierNode::Accept , sngcm::ast::Node::Accept , sngcm::ast::NodeList::Count , sngcm::ast::SourceWriter::WriteEmptyLine , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ClassNode & classNode) override

Definition at line 410 of SourceWriter.cpp
Declaration at line 64 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Attributes::Accept , sngcm::ast::ClassNode::BaseClassOrInterfaces , sngcm::ast::ClassNode::GetAttributes , sngcm::ast::ClassNode::GetSpecifiers , sngcm::ast::ClassNode::Id , sngcm::ast::ClassNode::Members , sngcm::ast::ClassNode::TemplateParameters , sngcm::ast::ClassNode::WhereConstraint , sngcm::ast::IdentifierNode::Accept , sngcm::ast::NodeList::Count , sngcm::ast::SourceWriter::WriteEmptyLine , sngcm::ast::WhereConstraintNode::Accept , soulng::util::CodeFormatter::DecIndent , soulng::util::CodeFormatter::IncIndent , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(CommentNode & comment) override

Definition at line 2040 of SourceWriter.cpp :
2041 {
2042     formatter.WriteLine("// " + soulng::unicode::ToUtf8(comment.Comment()));
2043     formatter.WriteLine();
2044 }


Declaration at line 191 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::CommentNode::Comment , soulng::util::CodeFormatter::WriteLine , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(CompileUnitNode & compileUnitNode) override

Definition at line 254 of SourceWriter.cpp :
 255 {
 256     compileUnitNode.GlobalNs()->Accept(*this);
 257 }


Declaration at line 56 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::CompileUnitNode::GlobalNs , sngcm::ast::NamespaceNode::Accept


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ComplementNode & complementNode) override

Definition at line 1858 of SourceWriter.cpp :
1859 {
1860     formatter.Write("~");
1861     complementNode.Subject()->Accept(*this);
1862 }


Declaration at line 172 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(CompoundStatementNode & compoundStatementNode) override

Definition at line 1092 of SourceWriter.cpp
Declaration at line 97 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::CompoundStatementNode::Statements , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::DecIndent , soulng::util::CodeFormatter::IncIndent , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConceptIdNode & conceptIdNode) override

Definition at line 1007 of SourceWriter.cpp
Declaration at line 92 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConceptIdNode::Id , sngcm::ast::ConceptIdNode::TypeParameters , sngcm::ast::IdentifierNode::Accept , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConceptNode & conceptNode) override

Definition at line 1024 of SourceWriter.cpp
Declaration at line 93 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConceptIdNode::Accept , sngcm::ast::ConceptNode::Axioms , sngcm::ast::ConceptNode::Constraints , sngcm::ast::ConceptNode::GetSpecifiers , sngcm::ast::ConceptNode::Id , sngcm::ast::ConceptNode::Refinement , sngcm::ast::ConceptNode::TypeParameters , sngcm::ast::ConstraintNode::IsHeaderConstraint , sngcm::ast::IdentifierNode::Accept , sngcm::ast::Node::Accept , sngcm::ast::NodeList::Count , sngcm::ast::SourceWriter::WriteEmptyLine , soulng::util::CodeFormatter::DecIndent , soulng::util::CodeFormatter::IncIndent , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConditionalCompilationConjunctionNode & conditionalCompilationConjunctionNode) override

Definition at line 1456 of SourceWriter.cpp :
1457 {
1458     conditionalCompilationConjunctionNode.Left()->Accept(*this);
1459     formatter.Write(" && ");
1460     conditionalCompilationConjunctionNode.Right()->Accept(*this);
1461 }


Declaration at line 124 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConditionalCompilationBinaryExpressionNode::Left , sngcm::ast::ConditionalCompilationBinaryExpressionNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConditionalCompilationDisjunctionNode & conditionalCompilationDisjunctionNode) override

Definition at line 1449 of SourceWriter.cpp :
1450 {
1451     conditionalCompilationDisjunctionNode.Left()->Accept(*this);
1452     formatter.Write(" || ");
1453     conditionalCompilationDisjunctionNode.Right()->Accept(*this);
1454 }


Declaration at line 123 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConditionalCompilationBinaryExpressionNode::Left , sngcm::ast::ConditionalCompilationBinaryExpressionNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConditionalCompilationNotNode & conditionalCompilationNotNode) override

Definition at line 1463 of SourceWriter.cpp :
1464 {
1465     formatter.Write("!");
1466     conditionalCompilationNotNode.Expr()->Accept(*this);
1467 }


Declaration at line 125 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConditionalCompilationNotNode::Expr , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConditionalCompilationPartNode & conditionalCompilationPartNode) override

Definition at line 1440 of SourceWriter.cpp :
1441 {
1442     int n = conditionalCompilationPartNode.Statements().Count();
1443     for (int i = 0; i < n; ++i)
1444     {
1445         conditionalCompilationPartNode.Statements()[i]->Accept(*this);
1446     }
1447 }


Declaration at line 122 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConditionalCompilationPartNode::Statements , sngcm::ast::NodeList::Count


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConditionalCompilationPrimaryNode & conditionalCompilationPrimaryNode) override

Definition at line 1469 of SourceWriter.cpp :
1470 {
1471     formatter.Write(soulng::unicode::ToUtf8(conditionalCompilationPrimaryNode.Symbol()));
1472 }


Declaration at line 126 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConditionalCompilationPrimaryNode::Symbol , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConditionalCompilationStatementNode & conditionalCompilationStatementNode) override

Definition at line 1481 of SourceWriter.cpp
Declaration at line 128 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConditionalCompilationPartNode::Accept , sngcm::ast::ConditionalCompilationPartNode::Expr , sngcm::ast::ConditionalCompilationStatementNode::ElifParts , sngcm::ast::ConditionalCompilationStatementNode::ElsePart , sngcm::ast::ConditionalCompilationStatementNode::IfPart , sngcm::ast::Node::Accept , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::DecIndent , soulng::util::CodeFormatter::IncIndent , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConjunctionNode & conjunctionNode) override

Definition at line 1697 of SourceWriter.cpp :
1698 {
1699     conjunctionNode.Left()->Accept(*this);
1700     formatter.Write(" && ");
1701     conjunctionNode.Right()->Accept(*this);
1702 }


Declaration at line 148 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConjunctiveConstraintNode & conjunctiveConstraintNode) override

Definition at line 858 of SourceWriter.cpp :
 859 {
 860     conjunctiveConstraintNode.Left()->Accept(*this);
 861     formatter.Write(" and ");
 862     conjunctiveConstraintNode.Right()->Accept(*this);
 863 }


Declaration at line 80 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryConstraintNode::Left , sngcm::ast::BinaryConstraintNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConstNode & constNode) override

Definition at line 1627 of SourceWriter.cpp :
1628 {
1629     formatter.Write("const ");
1630     constNode.Subject()->Accept(*this);
1631 }


Declaration at line 137 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConstNode::Subject , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConstantNode & constantNode) override

Definition at line 1534 of SourceWriter.cpp
Declaration at line 131 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConstantNode::GetSpecifiers , sngcm::ast::ConstantNode::Id , sngcm::ast::ConstantNode::TypeExpr , sngcm::ast::ConstantNode::Value , sngcm::ast::IdentifierNode::Accept , sngcm::ast::Node::Accept , sngcm::ast::Node::GetNodeType , sngcm::ast::Node::Parent , sngcm::ast::SourceWriter::WriteEmptyLine , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConstructNode & constructNode) override

Definition at line 1944 of SourceWriter.cpp
Declaration at line 183 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConstructNode::Arguments , sngcm::ast::ConstructNode::TypeExpr , sngcm::ast::Node::Accept , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConstructionStatementNode & constructionStatementNode) override

Definition at line 1224 of SourceWriter.cpp
Declaration at line 106 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConstructionStatementNode::Arguments , sngcm::ast::ConstructionStatementNode::Assignment , sngcm::ast::ConstructionStatementNode::Empty , sngcm::ast::ConstructionStatementNode::Id , sngcm::ast::ConstructionStatementNode::TypeExpr , sngcm::ast::IdentifierNode::Accept , sngcm::ast::Node::Accept , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConstructorConstraintNode & constructorConstraintNode) override

Definition at line 910 of SourceWriter.cpp
Declaration at line 86 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConstructorConstraintNode::Parameters , sngcm::ast::ConstructorConstraintNode::TypeParamId , sngcm::ast::IdentifierNode::Accept , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConstructorNode & constructorNode) override

Definition at line 565 of SourceWriter.cpp
Declaration at line 69 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Attributes::Accept , sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::ConstructorNode::ClassId , sngcm::ast::ConstructorNode::Initializers , sngcm::ast::FunctionNode::Body , sngcm::ast::FunctionNode::GetAttributes , sngcm::ast::FunctionNode::GetSpecifiers , sngcm::ast::FunctionNode::Parameters , sngcm::ast::FunctionNode::WhereConstraint , sngcm::ast::IdentifierNode::Accept , sngcm::ast::NodeList::Count , sngcm::ast::WhereConstraintNode::Accept , soulng::util::CodeFormatter::DecIndent , soulng::util::CodeFormatter::IncIndent , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ContinueStatementNode & continueStatementNode) override

Definition at line 1212 of SourceWriter.cpp :
1213 {
1214     formatter.WriteLine("continue;");
1215 }


Declaration at line 104 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ConversionFunctionNode & conversionFunctionNode) override

Definition at line 706 of SourceWriter.cpp
Declaration at line 72 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Attributes::Accept , sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::ConversionFunctionNode::IsConst , sngcm::ast::FunctionNode::Body , sngcm::ast::FunctionNode::GetAttributes , sngcm::ast::FunctionNode::GetSpecifiers , sngcm::ast::FunctionNode::ReturnTypeExpr , sngcm::ast::FunctionNode::WhereConstraint , sngcm::ast::Node::Accept , sngcm::ast::WhereConstraintNode::Accept , soulng::util::CodeFormatter::DecIndent , soulng::util::CodeFormatter::IncIndent , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(CursorIdNode & cursorIdNode) override

Definition at line 330 of SourceWriter.cpp :
 331 {
 332     WriteWarning("sngcm::writer::SourceWriter: cursor id nodes not supported");
 333 }


Declaration at line 61 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::SourceWriter::WriteWarning


Visit Member Function

void sngcm::ast::SourceWriter::Visit(DefaultStatementNode & defaultStatementNode) override

Definition at line 1372 of SourceWriter.cpp
Declaration at line 115 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::DefaultStatementNode::Statements , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(DelegateNode & delegateNode) override

Definition at line 792 of SourceWriter.cpp
Declaration at line 75 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::DelegateNode::GetSpecifiers , sngcm::ast::DelegateNode::Id , sngcm::ast::DelegateNode::Parameters , sngcm::ast::DelegateNode::ReturnTypeExpr , sngcm::ast::IdentifierNode::Accept , sngcm::ast::Node::Accept , sngcm::ast::NodeList::Count , sngcm::ast::SourceWriter::WriteEmptyLine , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(DeleteStatementNode & deleteStatementNode) override

Definition at line 1259 of SourceWriter.cpp :
1260 {
1261     formatter.Write("delete ");
1262     deleteStatementNode.Expression()->Accept(*this);
1263     formatter.WriteLine(";");
1264 }


Declaration at line 107 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::DeleteStatementNode::Expression , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(DerefNode & derefNode) override

Definition at line 1846 of SourceWriter.cpp :
1847 {
1848     formatter.Write("*");
1849     derefNode.Subject()->Accept(*this);
1850 }


Declaration at line 170 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(DestroyStatementNode & destroyStatementNode) override

Definition at line 1266 of SourceWriter.cpp :
1267 {
1268     formatter.Write("destroy ");
1269     destroyStatementNode.Expression()->Accept(*this);
1270     formatter.WriteLine(";");
1271 }


Declaration at line 108 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::DestroyStatementNode::Expression , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(DestructorConstraintNode & destructorConstraintNode) override

Definition at line 926 of SourceWriter.cpp :
 927 {
 928     formatter.Write("~");
 929     destructorConstraintNode.TypeParamId()->Accept(*this);
 930     formatter.WriteLine("();");
 931 }


Declaration at line 87 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::DestructorConstraintNode::TypeParamId , sngcm::ast::IdentifierNode::Accept , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(DestructorNode & destructorNode) override

Definition at line 623 of SourceWriter.cpp
Declaration at line 70 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Attributes::Accept , sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::DestructorNode::ClassId , sngcm::ast::FunctionNode::Body , sngcm::ast::FunctionNode::GetAttributes , sngcm::ast::FunctionNode::GetSpecifiers , sngcm::ast::FunctionNode::WhereConstraint , sngcm::ast::IdentifierNode::Accept , sngcm::ast::WhereConstraintNode::Accept , soulng::util::CodeFormatter::DecIndent , soulng::util::CodeFormatter::IncIndent , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(DisjunctionNode & disjunctionNode) override

Definition at line 1690 of SourceWriter.cpp :
1691 {
1692     disjunctionNode.Left()->Accept(*this);
1693     formatter.Write(" || ");
1694     disjunctionNode.Right()->Accept(*this);
1695 }


Declaration at line 147 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(DisjunctiveConstraintNode & disjunctiveConstraintNode) override

Definition at line 851 of SourceWriter.cpp :
 852 {
 853     disjunctiveConstraintNode.Left()->Accept(*this);
 854     formatter.Write(" or ");
 855     disjunctiveConstraintNode.Right()->Accept(*this);
 856 }


Declaration at line 79 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryConstraintNode::Left , sngcm::ast::BinaryConstraintNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(DivNode & divNode) override

Definition at line 1802 of SourceWriter.cpp :
1803 {
1804     divNode.Left()->Accept(*this);
1805     formatter.Write(" / ");
1806     divNode.Right()->Accept(*this);
1807 }


Declaration at line 163 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(DoStatementNode & doStatementNode) override

Definition at line 1158 of SourceWriter.cpp
Declaration at line 101 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::DoStatementNode::Condition , sngcm::ast::DoStatementNode::Statement , sngcm::ast::Node::Accept , sngcm::ast::Node::GetNodeType , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(DotNode & dotNode) override

Definition at line 1662 of SourceWriter.cpp :
1663 {
1664     dotNode.Subject()->Accept(*this);
1665     formatter.Write(".");
1666     dotNode.MemberId()->Accept(*this);
1667 }


Declaration at line 143 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::DotNode::MemberId , sngcm::ast::IdentifierNode::Accept , sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(DoubleLiteralNode & doubleLiteralNode) override

Definition at line 167 of SourceWriter.cpp :
 168 {
 169     formatter.Write(std::to_string(doubleLiteralNode.Value()));
 170 }


Declaration at line 44 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::DoubleLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(DoubleNode & doubleNode) override

Definition at line 85 of SourceWriter.cpp :
  86 {
  87     formatter.Write("double");
  88 }


Declaration at line 28 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(EmptyStatementNode & emptyStatementNode) override

Definition at line 1301 of SourceWriter.cpp :
1302 {
1303     if (!omitSemicolon)
1304     {
1305         formatter.Write(";");
1306     }
1307     if (!omitNewLine)
1308     {
1309         formatter.WriteLine();
1310     }
1311 }


Declaration at line 111 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(EnumConstantNode & enumConstantNode) override

Definition at line 1597 of SourceWriter.cpp :
1598 {
1599     enumConstantNode.Id()->Accept(*this);
1600     if (enumConstantNode.HasValue())
1601     {
1602         formatter.Write(" = ");
1603         enumConstantNode.GetValue()->Accept(*this);
1604     }
1605 }


Declaration at line 133 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::EnumConstantNode::GetValue , sngcm::ast::EnumConstantNode::HasValue , sngcm::ast::EnumConstantNode::Id , sngcm::ast::IdentifierNode::Accept , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(EnumTypeNode & enumTypeNode) override

Definition at line 1558 of SourceWriter.cpp
Declaration at line 132 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::EnumTypeNode::Constants , sngcm::ast::EnumTypeNode::GetSpecifiers , sngcm::ast::EnumTypeNode::GetUnderlyingType , sngcm::ast::EnumTypeNode::Id , sngcm::ast::IdentifierNode::Accept , sngcm::ast::Node::Accept , sngcm::ast::Node::GetNodeType , sngcm::ast::Node::Parent , sngcm::ast::NodeList::Count , sngcm::ast::SourceWriter::WriteEmptyLine , soulng::util::CodeFormatter::DecIndent , soulng::util::CodeFormatter::IncIndent , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(EqualNode & equalNode) override

Definition at line 1725 of SourceWriter.cpp :
1726 {
1727     equalNode.Left()->Accept(*this);
1728     formatter.Write(" == ");
1729     equalNode.Right()->Accept(*this);
1730 }


Declaration at line 152 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(EquivalenceNode & equivalenceNode) override

Definition at line 1676 of SourceWriter.cpp :
1677 {
1678     equivalenceNode.Left()->Accept(*this);
1679     formatter.Write(" <=> ");
1680     equivalenceNode.Right()->Accept(*this);
1681 }


Declaration at line 145 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ExpressionStatementNode & expressionStatementNode) override

Definition at line 1288 of SourceWriter.cpp
Declaration at line 110 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ExpressionStatementNode::Expression , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(FloatLiteralNode & floatLiteralNode) override

Definition at line 162 of SourceWriter.cpp :
 163 {
 164     formatter.Write(std::to_string(floatLiteralNode.Value()) + "f");
 165 }


Declaration at line 43 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::FloatLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(FloatNode & floatNode) override

Definition at line 80 of SourceWriter.cpp :
  81 {
  82     formatter.Write("float");
  83 }


Declaration at line 27 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ForStatementNode & forStatementNode) override

Definition at line 1175 of SourceWriter.cpp
Declaration at line 102 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ForStatementNode::ActionS , sngcm::ast::ForStatementNode::Condition , sngcm::ast::ForStatementNode::InitS , sngcm::ast::ForStatementNode::LoopS , sngcm::ast::Node::Accept , sngcm::ast::Node::GetNodeType , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(FunctionConstraintNode & functionConstraintNode) override

Definition at line 953 of SourceWriter.cpp
Declaration at line 89 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::FunctionConstraintNode::GroupId , sngcm::ast::FunctionConstraintNode::Parameters , sngcm::ast::FunctionConstraintNode::ReturnTypeExpr , sngcm::ast::Node::Accept , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(FunctionNode & functionNode) override

Definition at line 351 of SourceWriter.cpp
Declaration at line 63 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Attributes::Accept , sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::FunctionNode::Body , sngcm::ast::FunctionNode::GetAttributes , sngcm::ast::FunctionNode::GetSpecifiers , sngcm::ast::FunctionNode::GroupId , sngcm::ast::FunctionNode::Parameters , sngcm::ast::FunctionNode::ReturnTypeExpr , sngcm::ast::FunctionNode::TemplateParameters , sngcm::ast::FunctionNode::WhereConstraint , sngcm::ast::Node::Accept , sngcm::ast::NodeList::Count , sngcm::ast::SourceWriter::WriteEmptyLine , sngcm::ast::WhereConstraintNode::Accept , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(GlobalVariableNode & globalVariableNode) override

Definition at line 1995 of SourceWriter.cpp
Declaration at line 188 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::GlobalVariableNode::GetSpecifiers , sngcm::ast::GlobalVariableNode::Id , sngcm::ast::GlobalVariableNode::Initializer , sngcm::ast::GlobalVariableNode::TypeExpr , sngcm::ast::IdentifierNode::Accept , sngcm::ast::Node::Accept , sngcm::ast::SourceWriter::WriteEmptyLine , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(GotoCaseStatementNode & gotoCaseStatementNode) override

Definition at line 1386 of SourceWriter.cpp :
1387 {
1388     formatter.Write("goto case ");
1389     gotoCaseStatementNode.CaseExpr()->Accept(*this);
1390     formatter.WriteLine(";");
1391 }


Declaration at line 116 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::GotoCaseStatementNode::CaseExpr , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(GotoDefaultStatementNode & gotoDefaultStatementNode) override

Definition at line 1393 of SourceWriter.cpp :
1394 {
1395     formatter.WriteLine("goto default;");
1396 }


Declaration at line 117 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(GotoStatementNode & gotoStatementNode) override

Definition at line 1217 of SourceWriter.cpp :
1218 {
1219     formatter.Write("goto ");
1220     formatter.Write(soulng::unicode::ToUtf8(gotoStatementNode.Target()));
1221     formatter.WriteLine(";");
1222 }


Declaration at line 105 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::GotoStatementNode::Target , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(GreaterNode & greaterNode) override

Definition at line 1746 of SourceWriter.cpp :
1747 {
1748     greaterNode.Left()->Accept(*this);
1749     formatter.Write(" > ");
1750     greaterNode.Right()->Accept(*this);
1751 }


Declaration at line 155 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(GreaterOrEqualNode & greaterOrEqualNode) override

Definition at line 1760 of SourceWriter.cpp :
1761 {
1762     greaterOrEqualNode.Left()->Accept(*this);
1763     formatter.Write(" >= ");
1764     greaterOrEqualNode.Right()->Accept(*this);
1765 }


Declaration at line 157 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(IdentifierNode & identifierNode) override

Definition at line 325 of SourceWriter.cpp :
 326 {
 327     formatter.Write(soulng::unicode::ToUtf8(identifierNode.Str()));
 328 }


Declaration at line 60 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IdentifierNode::Str , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(IfStatementNode & ifStatementNode) override

Definition at line 1116 of SourceWriter.cpp
Declaration at line 99 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IfStatementNode::Condition , sngcm::ast::IfStatementNode::ElseS , sngcm::ast::IfStatementNode::ThenS , sngcm::ast::Node::Accept , sngcm::ast::Node::GetNodeType , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ImplicationNode & implicationNode) override

Definition at line 1683 of SourceWriter.cpp :
1684 {
1685     implicationNode.Left()->Accept(*this);
1686     formatter.Write(" => ");
1687     implicationNode.Right()->Accept(*this);
1688 }


Declaration at line 146 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(IndexingNode & indexingNode) override

Definition at line 1878 of SourceWriter.cpp :
1879 {
1880     indexingNode.Subject()->Accept(*this);
1881     formatter.Write("[");
1882     indexingNode.Index()->Accept(*this);
1883     formatter.Write("]");
1884 }


Declaration at line 175 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IndexingNode::Index , sngcm::ast::IndexingNode::Subject , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(IntLiteralNode & intLiteralNode) override

Definition at line 142 of SourceWriter.cpp :
 143 {
 144     formatter.Write(std::to_string(intLiteralNode.Value()));
 145 }


Declaration at line 39 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IntLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(IntNode & intNode) override

Definition at line 60 of SourceWriter.cpp :
  61 {
  62     formatter.Write("int");
  63 }


Declaration at line 23 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(InterfaceNode & interfaceNode) override

Definition at line 763 of SourceWriter.cpp
Declaration at line 74 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Attributes::Accept , sngcm::ast::IdentifierNode::Accept , sngcm::ast::InterfaceNode::GetAttributes , sngcm::ast::InterfaceNode::GetSpecifiers , sngcm::ast::InterfaceNode::Id , sngcm::ast::InterfaceNode::Members , sngcm::ast::NodeList::Count , sngcm::ast::SourceWriter::WriteEmptyLine , soulng::util::CodeFormatter::DecIndent , soulng::util::CodeFormatter::IncIndent , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(InvokeNode & invokeNode) override

Definition at line 1886 of SourceWriter.cpp
Declaration at line 176 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::InvokeNode::Arguments , sngcm::ast::InvokeNode::Subject , sngcm::ast::Node::Accept , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(IsConstraintNode & isConstraintNode) override

Definition at line 880 of SourceWriter.cpp :
 881 {
 882     isConstraintNode.TypeExpr()->Accept(*this);
 883     formatter.Write(" is ");
 884     isConstraintNode.ConceptOrTypeName()->Accept(*this);
 885 }


Declaration at line 83 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IsConstraintNode::ConceptOrTypeName , sngcm::ast::IsConstraintNode::TypeExpr , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(IsNode & isNode) override

Definition at line 1864 of SourceWriter.cpp :
1865 {
1866     isNode.Expr()->Accept(*this);
1867     formatter.Write(" is ");
1868     isNode.TargetTypeExpr()->Accept(*this);
1869 }


Declaration at line 173 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IsNode::Expr , sngcm::ast::IsNode::TargetTypeExpr , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(LValueRefNode & lvalueRefNode) override

Definition at line 1633 of SourceWriter.cpp :
1634 {
1635     lvalueRefNode.Subject()->Accept(*this);
1636     formatter.Write("&");
1637 }


Declaration at line 138 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::LValueRefNode::Subject , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(LabelNode & labelNode) override

Definition at line 1080 of SourceWriter.cpp :
1081 {
1082     formatter.Write(soulng::unicode::ToUtf8(labelNode.Label()));
1083     formatter.Write(": ");
1084 }


Declaration at line 95 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::LabelNode::Label , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(LabeledStatementNode & labeledStatementNode) override

Definition at line 1086 of SourceWriter.cpp :
1087 {
1088     labeledStatementNode.Label()->Accept(*this);
1089     labeledStatementNode.Stmt()->Accept(*this);
1090 }


Declaration at line 96 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::LabelNode::Accept , sngcm::ast::LabeledStatementNode::Label , sngcm::ast::LabeledStatementNode::Stmt , sngcm::ast::Node::Accept


Visit Member Function

void sngcm::ast::SourceWriter::Visit(LessNode & lessNode) override

Definition at line 1739 of SourceWriter.cpp :
1740 {
1741     lessNode.Left()->Accept(*this);
1742     formatter.Write(" < ");
1743     lessNode.Right()->Accept(*this);
1744 }


Declaration at line 154 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(LessOrEqualNode & lessOrEqualNode) override

Definition at line 1753 of SourceWriter.cpp :
1754 {
1755     lessOrEqualNode.Left()->Accept(*this);
1756     formatter.Write(" <= ");
1757     lessOrEqualNode.Right()->Accept(*this);
1758 }


Declaration at line 156 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(LongLiteralNode & longLiteralNode) override

Definition at line 152 of SourceWriter.cpp :
 153 {
 154     formatter.Write(std::to_string(longLiteralNode.Value()));
 155 }


Declaration at line 41 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::LongLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(LongNode & longNode) override

Definition at line 70 of SourceWriter.cpp :
  71 {
  72     formatter.Write("long");
  73 }


Declaration at line 25 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(MemberFunctionConstraintNode & memberFunctionConstraintNode) override

Definition at line 933 of SourceWriter.cpp
Declaration at line 88 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IdentifierNode::Accept , sngcm::ast::MemberFunctionConstraintNode::GroupId , sngcm::ast::MemberFunctionConstraintNode::Parameters , sngcm::ast::MemberFunctionConstraintNode::ReturnTypeExpr , sngcm::ast::MemberFunctionConstraintNode::TypeParamId , sngcm::ast::Node::Accept , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(MemberFunctionNode & memberFunctionNode) override

Definition at line 657 of SourceWriter.cpp
Declaration at line 71 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Attributes::Accept , sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::FunctionNode::Body , sngcm::ast::FunctionNode::GetAttributes , sngcm::ast::FunctionNode::GetSpecifiers , sngcm::ast::FunctionNode::GroupId , sngcm::ast::FunctionNode::Parameters , sngcm::ast::FunctionNode::ReturnTypeExpr , sngcm::ast::FunctionNode::WhereConstraint , sngcm::ast::MemberFunctionNode::IsConst , sngcm::ast::Node::Accept , sngcm::ast::NodeList::Count , sngcm::ast::WhereConstraintNode::Accept , soulng::util::CodeFormatter::DecIndent , soulng::util::CodeFormatter::IncIndent , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(MemberInitializerNode & memberInitializerNode) override

Definition at line 501 of SourceWriter.cpp
Declaration at line 67 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IdentifierNode::Accept , sngcm::ast::InitializerNode::Arguments , sngcm::ast::MemberInitializerNode::MemberId , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(MemberVariableNode & memberVariableNode) override

Definition at line 744 of SourceWriter.cpp
Declaration at line 73 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Attributes::Accept , sngcm::ast::IdentifierNode::Accept , sngcm::ast::MemberVariableNode::GetAttributes , sngcm::ast::MemberVariableNode::GetSpecifiers , sngcm::ast::MemberVariableNode::Id , sngcm::ast::MemberVariableNode::TypeExpr , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(MulNode & mulNode) override

Definition at line 1795 of SourceWriter.cpp :
1796 {
1797     mulNode.Left()->Accept(*this);
1798     formatter.Write(" * ");
1799     mulNode.Right()->Accept(*this);
1800 }


Declaration at line 162 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(MultiParamConstraintNode & multiParamConstraintNode) override

Definition at line 887 of SourceWriter.cpp
Declaration at line 84 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IdentifierNode::Accept , sngcm::ast::MultiParamConstraintNode::ConceptId , sngcm::ast::MultiParamConstraintNode::TypeExprs , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(NamespaceImportNode & namespaceImportNode) override

Definition at line 318 of SourceWriter.cpp :
 319 {
 320     formatter.Write("using ");
 321     namespaceImportNode.Ns()->Accept(*this);
 322     formatter.WriteLine(";");
 323 }


Declaration at line 59 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IdentifierNode::Accept , sngcm::ast::NamespaceImportNode::Ns , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(NamespaceNode & namespaceNode) override

Definition at line 259 of SourceWriter.cpp
Declaration at line 57 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IdentifierNode::Accept , sngcm::ast::IdentifierNode::Str , sngcm::ast::NamespaceNode::Id , sngcm::ast::NamespaceNode::IsUnnamedNs , sngcm::ast::NamespaceNode::Members , sngcm::ast::NodeList::Count , sngcm::ast::SourceWriter::WriteEmptyLine , soulng::util::CodeFormatter::DecIndent , soulng::util::CodeFormatter::IncIndent , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(NewNode & newNode) override

Definition at line 1961 of SourceWriter.cpp
Declaration at line 184 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::NewNode::Arguments , sngcm::ast::NewNode::TypeExpr , sngcm::ast::Node::Accept , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(NotEqualNode & notEqualNode) override

Definition at line 1732 of SourceWriter.cpp :
1733 {
1734     notEqualNode.Left()->Accept(*this);
1735     formatter.Write(" != ");
1736     notEqualNode.Right()->Accept(*this);
1737 }


Declaration at line 153 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(NotNode & notNode) override

Definition at line 1816 of SourceWriter.cpp :
1817 {
1818     formatter.Write("!");
1819     notNode.Subject()->Accept(*this);
1820 }


Declaration at line 165 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(NullLiteralNode & nullLiteralNode) override

Definition at line 214 of SourceWriter.cpp :
 215 {
 216     formatter.Write("null");
 217 }


Declaration at line 51 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ParameterNode & parameterNode) override

Definition at line 1607 of SourceWriter.cpp :
1608 {
1609     parameterNode.TypeExpr()->Accept(*this);
1610     if (parameterNode.Id())
1611     {
1612         formatter.Write(" ");
1613         parameterNode.Id()->Accept(*this);
1614     }
1615 }


Declaration at line 134 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IdentifierNode::Accept , sngcm::ast::Node::Accept , sngcm::ast::ParameterNode::Id , sngcm::ast::ParameterNode::TypeExpr , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ParenthesizedConditionalCompilationExpressionNode & parenthesizeCondCompExprNode) override

Definition at line 1474 of SourceWriter.cpp :
1475 {
1476     formatter.Write("(");
1477     parenthesizeCondCompExprNode.Expr()->Accept(*this);
1478     formatter.Write(")");
1479 }


Declaration at line 127 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::ParenthesizedConditionalCompilationExpressionNode::Expr , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ParenthesizedConstraintNode & parenthesizedConstraintNode) override

Definition at line 844 of SourceWriter.cpp :
 845 {
 846     formatter.Write("(");
 847     parenthesizedConstraintNode.Constraint()->Accept(*this);
 848     formatter.Write(")");
 849 }


Declaration at line 78 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::ParenthesizedConstraintNode::Constraint , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ParenthesizedExpressionNode & parenthesizedExpressionNode) override

Definition at line 1988 of SourceWriter.cpp :
1989 {
1990     formatter.Write("(");
1991     parenthesizedExpressionNode.Subject()->Accept(*this);
1992     formatter.Write(")");
1993 }


Declaration at line 187 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(PointerNode & pointerNode) override

Definition at line 1645 of SourceWriter.cpp :
1646 {
1647     pointerNode.Subject()->Accept(*this);
1648     formatter.Write("*");
1649 }


Declaration at line 140 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::PointerNode::Subject , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(PostfixDecrementNode & postfixDecrementNode) override

Definition at line 1908 of SourceWriter.cpp :
1909 {
1910     postfixDecrementNode.Subject()->Accept(*this);
1911     formatter.Write("--");
1912 }


Declaration at line 178 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(PostfixIncrementNode & postfixIncrementNode) override

Definition at line 1902 of SourceWriter.cpp :
1903 {
1904     postfixIncrementNode.Subject()->Accept(*this);
1905     formatter.Write("++");
1906 }


Declaration at line 177 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(PredicateConstraintNode & predicateConstraintNode) override

Definition at line 875 of SourceWriter.cpp :
 876 {
 877     predicateConstraintNode.InvokeExpr()->Accept(*this);
 878 }


Declaration at line 82 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::PredicateConstraintNode::InvokeExpr


Visit Member Function

void sngcm::ast::SourceWriter::Visit(PrefixDecrementNode & prefixDecrementNode) override

Definition at line 1840 of SourceWriter.cpp :
1841 {
1842     formatter.Write("--");
1843     prefixDecrementNode.Subject()->Accept(*this);
1844 }


Declaration at line 169 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(PrefixIncrementNode & prefixIncrementNode) override

Definition at line 1834 of SourceWriter.cpp :
1835 {
1836     formatter.Write("++");
1837     prefixIncrementNode.Subject()->Accept(*this);
1838 }


Declaration at line 168 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(RValueRefNode & rvalueRefNode) override

Definition at line 1639 of SourceWriter.cpp :
1640 {
1641     rvalueRefNode.Subject()->Accept(*this);
1642     formatter.Write("&&");
1643 }


Declaration at line 139 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::RValueRefNode::Subject , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(RangeForStatementNode & rangeForStatementNode) override

Definition at line 1313 of SourceWriter.cpp
Declaration at line 112 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IdentifierNode::Accept , sngcm::ast::Node::Accept , sngcm::ast::Node::GetNodeType , sngcm::ast::RangeForStatementNode::Action , sngcm::ast::RangeForStatementNode::Container , sngcm::ast::RangeForStatementNode::Id , sngcm::ast::RangeForStatementNode::TypeExpr , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(RemNode & remNode) override

Definition at line 1809 of SourceWriter.cpp :
1810 {
1811     remNode.Left()->Accept(*this);
1812     formatter.Write(" % ");
1813     remNode.Right()->Accept(*this);
1814 }


Declaration at line 164 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ReturnStatementNode & returnStatementNode) override

Definition at line 1105 of SourceWriter.cpp :
1106 {
1107     formatter.Write("return");
1108     if (returnStatementNode.Expression())
1109     {
1110         formatter.Write(" ");
1111         returnStatementNode.Expression()->Accept(*this);
1112     }
1113     formatter.WriteLine(";");
1114 }


Declaration at line 98 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::ReturnStatementNode::Expression , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(SByteLiteralNode & sbyteLiteralNode) override

Definition at line 122 of SourceWriter.cpp :
 123 {
 124     formatter.Write(std::to_string(sbyteLiteralNode.Value()));
 125 }


Declaration at line 35 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::SByteLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(SByteNode & sbyteNode) override

Definition at line 40 of SourceWriter.cpp :
  41 {
  42     formatter.Write("sbyte");
  43 }


Declaration at line 19 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ShiftLeftNode & shiftLeftNode) override

Definition at line 1767 of SourceWriter.cpp :
1768 {
1769     shiftLeftNode.Left()->Accept(*this);
1770     formatter.Write(" << ");
1771     shiftLeftNode.Right()->Accept(*this);
1772 }


Declaration at line 158 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ShiftRightNode & shiftRightNode) override

Definition at line 1774 of SourceWriter.cpp :
1775 {
1776     shiftRightNode.Left()->Accept(*this);
1777     formatter.Write(" >> ");
1778     shiftRightNode.Right()->Accept(*this);
1779 }


Declaration at line 159 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ShortLiteralNode & shortLiteralNode) override

Definition at line 132 of SourceWriter.cpp :
 133 {
 134     formatter.Write(std::to_string(shortLiteralNode.Value()));
 135 }


Declaration at line 37 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ShortLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ShortNode & shortNode) override

Definition at line 50 of SourceWriter.cpp :
  51 {
  52     formatter.Write("short");
  53 }


Declaration at line 21 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(SizeOfNode & sizeOfNode) override

Definition at line 1914 of SourceWriter.cpp :
1915 {
1916     formatter.Write("sizeof(");
1917     sizeOfNode.Expression()->Accept(*this);
1918     formatter.Write(")");
1919 }


Declaration at line 179 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::SizeOfNode::Expression , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(StaticConstructorNode & staticConstructorNode) override

Definition at line 517 of SourceWriter.cpp
Declaration at line 68 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Attributes::Accept , sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::FunctionNode::Body , sngcm::ast::FunctionNode::GetAttributes , sngcm::ast::FunctionNode::GetSpecifiers , sngcm::ast::FunctionNode::WhereConstraint , sngcm::ast::IdentifierNode::Accept , sngcm::ast::NodeList::Count , sngcm::ast::StaticConstructorNode::ClassId , sngcm::ast::StaticConstructorNode::Initializers , sngcm::ast::WhereConstraintNode::Accept , soulng::util::CodeFormatter::DecIndent , soulng::util::CodeFormatter::IncIndent , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(StringLiteralNode & stringLiteralNode) override

Definition at line 193 of SourceWriter.cpp :
 194 {
 195     formatter.Write("\"");
 196     formatter.Write(soulng::util::StringStr(stringLiteralNode.Value()));
 197 formatter.Write("\"");
 198 }


Declaration at line 48 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::StringLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(StructuredLiteralNode & structuredLiteralNode) override

Definition at line 234 of SourceWriter.cpp
Declaration at line 53 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::NodeList::Count , sngcm::ast::StructuredLiteralNode::Members , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(SubNode & subNode) override

Definition at line 1788 of SourceWriter.cpp :
1789 {
1790     subNode.Left()->Accept(*this);
1791     formatter.Write(" - ");
1792     subNode.Right()->Accept(*this);
1793 }


Declaration at line 161 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(SwitchStatementNode & switchStatementNode) override

Definition at line 1332 of SourceWriter.cpp
Declaration at line 113 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::DefaultStatementNode::Accept , sngcm::ast::Node::Accept , sngcm::ast::NodeList::Count , sngcm::ast::SwitchStatementNode::Cases , sngcm::ast::SwitchStatementNode::Condition , sngcm::ast::SwitchStatementNode::Default , soulng::util::CodeFormatter::DecIndent , soulng::util::CodeFormatter::IncIndent , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(TemplateIdNode & templateIdNode) override

Definition at line 335 of SourceWriter.cpp
Declaration at line 62 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::NodeList::Count , sngcm::ast::TemplateIdNode::Primary , sngcm::ast::TemplateIdNode::TemplateArguments , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(TemplateParameterNode & templateParameterNode) override

Definition at line 1617 of SourceWriter.cpp :
1618 {
1619     templateParameterNode.Id()->Accept(*this);
1620     if (templateParameterNode.DefaultTemplateArgument())
1621     {
1622         formatter.Write(" = ");
1623         templateParameterNode.DefaultTemplateArgument()->Accept(*this);
1624     }
1625 }


Declaration at line 135 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IdentifierNode::Accept , sngcm::ast::Node::Accept , sngcm::ast::TemplateParameterNode::DefaultTemplateArgument , sngcm::ast::TemplateParameterNode::Id , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ThisInitializerNode & thisInitializerNode) override

Definition at line 471 of SourceWriter.cpp
Declaration at line 65 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::InitializerNode::Arguments , sngcm::ast::NodeList::Count , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ThisNode & thisNode) override

Definition at line 1978 of SourceWriter.cpp :
1979 {
1980     formatter.Write("this");
1981 }


Declaration at line 185 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ThrowStatementNode & throwStatementNode) override

Definition at line 1398 of SourceWriter.cpp :
1399 {
1400     formatter.Write("throw");
1401     if (throwStatementNode.Expression())
1402     {
1403         formatter.Write(" ");
1404         throwStatementNode.Expression()->Accept(*this);
1405     }
1406     formatter.WriteLine(";");
1407 }


Declaration at line 118 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::ThrowStatementNode::Expression , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(TryStatementNode & tryStatementNode) override

Definition at line 1409 of SourceWriter.cpp :
1410 {
1411     formatter.WriteLine("try");
1412     tryStatementNode.TryBlock()->Accept(*this);
1413     int n = tryStatementNode.Catches().Count();
1414     for (int i = 0; i < n; ++i)
1415     {
1416         tryStatementNode.Catches()[i]->Accept(*this);
1417     }
1418 }


Declaration at line 119 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::NodeList::Count , sngcm::ast::TryStatementNode::Catches , sngcm::ast::TryStatementNode::TryBlock , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(TypeIdNode & typeIdNode) override

Definition at line 1928 of SourceWriter.cpp :
1929 {
1930     formatter.Write("typeid(");
1931     typeIdNode.Expression()->Accept(*this);
1932     formatter.Write(")");
1933 }


Declaration at line 181 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::TypeIdNode::Expression , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(TypeNameConstraintNode & typeNameConstraintNode) override

Definition at line 903 of SourceWriter.cpp :
 904 {
 905     formatter.Write("typename ");
 906     typeNameConstraintNode.TypeId()->Accept(*this);
 907     formatter.WriteLine(";");
 908 }


Declaration at line 85 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::TypeNameConstraintNode::TypeId , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(TypeNameNode & typeNameNode) override

Definition at line 1921 of SourceWriter.cpp :
1922 {
1923     formatter.Write("typename(");
1924     typeNameNode.Expression()->Accept(*this);
1925     formatter.Write(")");
1926 }


Declaration at line 180 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::TypeNameNode::Expression , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(TypedefNode & typedefNode) override

Definition at line 1512 of SourceWriter.cpp
Declaration at line 130 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IdentifierNode::Accept , sngcm::ast::Node::Accept , sngcm::ast::Node::GetNodeType , sngcm::ast::Node::Parent , sngcm::ast::SourceWriter::WriteEmptyLine , sngcm::ast::TypedefNode::GetSpecifiers , sngcm::ast::TypedefNode::Id , sngcm::ast::TypedefNode::TypeExpr , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(UCharLiteralNode & ucharLiteralNode) override

Definition at line 186 of SourceWriter.cpp :
 187 {
 188     formatter.Write("u'");
 189     formatter.Write(soulng::unicode::ToUtf8(soulng::util::CharStr(ucharLiteralNode.Value())));
 190     formatter.Write("'");
 191 }


Declaration at line 47 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::UCharLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(UCharNode & ucharNode) override

Definition at line 100 of SourceWriter.cpp :
 101 {
 102     formatter.Write("uchar");
 103 }


Declaration at line 31 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(UIntLiteralNode & uintLiteralNode) override

Definition at line 147 of SourceWriter.cpp :
 148 {
 149     formatter.Write(std::to_string(uintLiteralNode.Value()) + "u");
 150 }


Declaration at line 40 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::UIntLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(UIntNode & uintNode) override

Definition at line 65 of SourceWriter.cpp :
  66 {
  67     formatter.Write("uint");
  68 }


Declaration at line 24 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ULongLiteralNode & ulongLiteralNode) override

Definition at line 157 of SourceWriter.cpp :
 158 {
 159     formatter.Write(std::to_string(ulongLiteralNode.Value()) + "u");
 160 }


Declaration at line 42 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ULongLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(ULongNode & ulongNode) override

Definition at line 75 of SourceWriter.cpp :
  76 {
  77     formatter.Write("ulong");
  78 }


Declaration at line 26 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(UShortLiteralNode & ushortLiteralNode) override

Definition at line 137 of SourceWriter.cpp :
 138 {
 139     formatter.Write(std::to_string(ushortLiteralNode.Value()) + "u");
 140 }


Declaration at line 38 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::UShortLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(UShortNode & ushortNode) override

Definition at line 55 of SourceWriter.cpp :
  56 {
  57     formatter.Write("ushort");
  58 }


Declaration at line 22 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(UStringLiteralNode & ustringLiteralNode) override

Definition at line 207 of SourceWriter.cpp :
 208 {
 209     formatter.Write("u\"");
 210     formatter.Write(soulng::util::StringStr(soulng::unicode::ToUtf8(ustringLiteralNode.Value())));
 211     formatter.Write("\"");
 212 }


Declaration at line 50 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::UStringLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(UnaryMinusNode & unaryMinusNode) override

Definition at line 1828 of SourceWriter.cpp :
1829 {
1830     formatter.Write("-");
1831     unaryMinusNode.Subject()->Accept(*this);
1832 }


Declaration at line 167 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(UnaryPlusNode & unaryPlusNode) override

Definition at line 1822 of SourceWriter.cpp :
1823 {
1824     formatter.Write("+");
1825     unaryPlusNode.Subject()->Accept(*this);
1826 }


Declaration at line 166 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(UuidLiteralNode & uuidLiteralNode) override

Definition at line 249 of SourceWriter.cpp :
 250 {
 251     WriteWarning("sngcm::writer::SourceWriter: uuid literals not supported");
 252 }


Declaration at line 54 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::SourceWriter::WriteWarning


Visit Member Function

void sngcm::ast::SourceWriter::Visit(VoidNode & voidNode) override

Definition at line 105 of SourceWriter.cpp :
 106 {
 107     formatter.Write("void");
 108 }


Declaration at line 32 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(WCharLiteralNode & wcharLiteralNode) override

Definition at line 179 of SourceWriter.cpp :
 180 {
 181     formatter.Write("w'");
 182     formatter.Write(soulng::unicode::ToUtf8(soulng::util::CharStr(char32_t(wcharLiteralNode.Value()))));
 183     formatter.Write("'");
 184 }


Declaration at line 46 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::WCharLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(WCharNode & wcharNode) override

Definition at line 95 of SourceWriter.cpp :
  96 {
  97     formatter.Write("wchar");
  98 }


Declaration at line 30 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(WStringLiteralNode & wstringLiteralNode) override

Definition at line 200 of SourceWriter.cpp :
 201 {
 202     formatter.Write("w\"");
 203     formatter.Write(soulng::util::StringStr(soulng::unicode::ToUtf8(wstringLiteralNode.Value())));
 204     formatter.Write("\"");
 205 }


Declaration at line 49 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::WStringLiteralNode::Value , soulng::util::CodeFormatter::Write


Visit Member Function

void sngcm::ast::SourceWriter::Visit(WhereConstraintNode & whereConstraintNode) override

Definition at line 865 of SourceWriter.cpp :
 866 {
 867     formatter.Write("where ");
 868     whereConstraintNode.Constraint()->Accept(*this);
 869     if (whereConstraintNode.Semicolon())
 870     {
 871         formatter.WriteLine(";");
 872     }
 873 }


Declaration at line 81 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::WhereConstraintNode::Constraint , sngcm::ast::WhereConstraintNode::Semicolon , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


Visit Member Function

void sngcm::ast::SourceWriter::Visit(WhileStatementNode & whileStatementNode) override

Definition at line 1143 of SourceWriter.cpp
Declaration at line 100 of SourceWriter.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::Node::GetNodeType , sngcm::ast::WhileStatementNode::Condition , sngcm::ast::WhileStatementNode::Statement , soulng::util::CodeFormatter::Write , soulng::util::CodeFormatter::WriteLine


WriteEmptyLine Member Function

void sngcm::ast::SourceWriter::WriteEmptyLine()

Definition at line 2051 of SourceWriter.cpp :
2052 {
2053     if (emptyLine)
2054     {
2055         formatter.WriteLine();
2056         emptyLine = false;
2057     }
2058 }


Declaration at line 193 of SourceWriter.hpp

Calls: soulng::util::CodeFormatter::WriteLine

Called by: sngcm::ast::SourceWriter::Visit , sngcm::ast::SourceWriter::Visit , sngcm::ast::SourceWriter::Visit , sngcm::ast::SourceWriter::Visit , sngcm::ast::SourceWriter::Visit , sngcm::ast::SourceWriter::Visit , sngcm::ast::SourceWriter::Visit , sngcm::ast::SourceWriter::Visit , sngcm::ast::SourceWriter::Visit , sngcm::ast::SourceWriter::Visit , sngcm::ast::SourceWriter::Visit


WriteWarning Member Function

void sngcm::ast::SourceWriter::WriteWarning(const std::string& message)

Definition at line 2046 of SourceWriter.cpp :
2047 {
2048     std::cerr << message << std::endl;
2049 }


Declaration at line 192 of SourceWriter.hpp

Called by: sngcm::ast::SourceWriter::Visit , sngcm::ast::SourceWriter::Visit


top | up | prev | next