#include #include "Node.h" #include "parser/parser.h" #include "main/Compiler.h" using namespace std; void FunctionNode::process(refptr compiler) { refptr name = m_children[0]; refptr params = m_children[1]; refptr type = m_children[2]; compiler->beginFunction(name->getString()); compiler->writeFunction(type->getString()); compiler->writeFunction(" "); compiler->writeFunction(name->getString()); compiler->writeFunction("("); for (int i = 0, sz = params->getChildren().size(); i < sz; i++) { if (i > 0) { compiler->writeFunction(", "); } compiler->writeFunction(params->getChildren()[i]->getString()); } compiler->writeFunction(")\n"); compiler->writeFunction("{\n"); for (int i = 3, sz = m_children.size(); i < sz; i++) { m_children[i]->process(compiler); } compiler->writeFunction("}\n\n"); }