SyntaxNode* ActionMake::Invoke(const std::vector<void*>& container) { SyntaxNode* ans = new SyntaxNode(SyntaxNodeOperation, argument_.text); SyntaxNode** nodes = new SyntaxNode*[argument_.parameters.size()]; for (int i = 0; i < (int)argument_.parameters.size(); ++i) { if (argument_.parameters[i] == 0) { nodes[i] = nullptr; } else { nodes[i] = (SyntaxNode*)container[container.size() - argument_.parameters[i]]; } } ans->AddChildren(nodes, argument_.parameters.size()); delete[] nodes; return ans; }