Move creation of the root element of JSON AST to the SourceUnit visitor

This commit is contained in:
Alex Sinyagin
2016-08-18 12:51:17 +00:00
parent 406f3a4b5d
commit 5061eb2b2b
2 changed files with 18 additions and 5 deletions
+16 -5
View File
@@ -89,11 +89,6 @@ ASTJsonConverter::ASTJsonConverter(
map<string, unsigned> _sourceIndices
): m_ast(&_ast), m_sourceIndices(_sourceIndices)
{
Json::Value children(Json::arrayValue);
m_astJson["name"] = "root";
m_astJson["children"] = children;
m_jsonNodePtrs.push(&m_astJson["children"]);
}
void ASTJsonConverter::print(ostream& _stream)
@@ -108,6 +103,17 @@ Json::Value const& ASTJsonConverter::json()
return m_astJson;
}
bool ASTJsonConverter::visit(SourceUnit const&)
{
Json::Value children(Json::arrayValue);
m_astJson["name"] = "root";
m_astJson["children"] = children;
m_jsonNodePtrs.push(&m_astJson["children"]);
return true;
}
bool ASTJsonConverter::visit(ImportDirective const& _node)
{
addJsonNode(_node, "Import", { make_pair("file", _node.path())});
@@ -390,6 +396,11 @@ bool ASTJsonConverter::visit(Literal const& _node)
return true;
}
void ASTJsonConverter::endVisit(SourceUnit const&)
{
goUp();
}
void ASTJsonConverter::endVisit(ImportDirective const&)
{
}