Alien-SmokeQt
view release on metacpan or search on metacpan
generator/parser/codegenerator.cpp view on Meta::CPAN
}
void CodeGenerator::visitInitializerClause(InitializerClauseAST* node)
{
if (node->initializer_list) {
m_output << "{";
visitCommaPrint(node->initializer_list);
m_output << "}";
} else {
visit(node->expression);
}
}
void CodeGenerator::visitJumpStatement(JumpStatementAST* node)
{
print(node->op, true);
print(node->identifier);
m_output << ";";
}
void CodeGenerator::visitLabeledStatement(LabeledStatementAST* node)
{
print(node->label, true);
visit(node->expression);
m_output << ":";
visit(node->statement);
}
void CodeGenerator::visitLinkageBody(LinkageBodyAST* node)
{
m_output << "{";
DefaultVisitor::visitLinkageBody(node);
m_output << "}";
}
void CodeGenerator::visitLinkageSpecification(LinkageSpecificationAST* node)
{
printToken(Token_extern, true);
print(node->extern_type, true);
DefaultVisitor::visitLinkageSpecification(node);
}
void CodeGenerator::visitMemInitializer(MemInitializerAST* node)
{
visit(node->initializer_id);
m_output << "(";
visit(node->expression);
m_output << ")";
}
void CodeGenerator::visitName(NameAST* node)
{
if (node->global)
printToken( Token_scope );
if (node->qualified_names) {
commaPrintNodes( this, node->qualified_names, token_text( Token_scope ) );
printToken( Token_scope );
}
visit(node->unqualified_name);
}
void CodeGenerator::visitNamespace(NamespaceAST* node)
{
printToken( Token_namespace, true );
print(node->namespace_name);
DefaultVisitor::visitNamespace(node);
}
void CodeGenerator::visitNamespaceAliasDefinition(NamespaceAliasDefinitionAST* node)
{
printToken( Token_namespace, true );
print(node->namespace_name);
m_output << "=";
DefaultVisitor::visitNamespaceAliasDefinition(node);
m_output << ";";
}
void CodeGenerator::visitNewDeclarator(NewDeclaratorAST* node)
{
visit(node->ptr_op);
visit(node->sub_declarator);
surroundPrintNodes(this, node->expressions, "[", "]");
}
void CodeGenerator::visitNewExpression(NewExpressionAST* node)
{
print(node->scope_token);
print(node->new_token, true);
if (node->expression) {
m_output << "(";
visit(node->expression);
m_output << ")";
}
if (node->type_id) {
m_output << "(";
visit(node->type_id);
m_output << ")";
}
visit(node->new_type_id);
visit(node->new_initializer);
}
( run in 1.105 second using v1.01-cache-2.11-cpan-e1769b4cff6 )