Пример #1
0
void TemplateIdNode::Read(Reader& reader)
{
    subject.reset(reader.ReadNode());
    subject->SetParent(this);
    templateArguments.Read(reader);
    templateArguments.SetParent(this);
}
Пример #2
0
void FunctionNode::Read(Reader& reader)
{
    specifiers = reader.ReadSpecifiers();
    bool hasReturnTypeExpr = reader.ReadBool();
    if (hasReturnTypeExpr)
    {
        returnTypeExpr.reset(reader.ReadNode());
        returnTypeExpr->SetParent(this);
    }
    groupId.reset(reader.ReadFunctionGroupIdNode());
    groupId->SetParent(this);
    templateParameters.Read(reader);
    templateParameters.SetParent(this);
    parameters.Read(reader);
    parameters.SetParent(this);
    bool hasConstraint = reader.ReadBool();
    if (hasConstraint)
    {
        constraint.reset(reader.ReadWhereConstraintNode());
        constraint->SetParent(this);
    }
    bool hasBody = reader.ReadBool();
    if (hasBody)
    {
        body.reset(reader.ReadCompoundStatementNode());
        body->SetParent(this);
    }
}
Пример #3
0
void TypedefNode::Read(Reader& reader)
{
    specifiers = reader.ReadSpecifiers();
    typeExpr.reset(reader.ReadNode());
    typeExpr->SetParent(this);
    id.reset(reader.ReadIdentifierNode());
    id->SetParent(this);
}
Пример #4
0
void TemplateParameterNode::Read(Reader& reader)
{
    id.reset(reader.ReadIdentifierNode());
    id->SetParent(this);
    bool hasDefaultTemplateArgument = reader.ReadBool();
    if (hasDefaultTemplateArgument)
    {
        defaultTemplateArgument.reset(reader.ReadNode());
        defaultTemplateArgument->SetParent(this);
    }
}