sencha-lang/Sencha-lang/Elements/SenchaFunction.h

38 lines
797 B
C++

/*
* SenchaFunction.h
*
* Created on: Dec 30, 2012
* Author: att
*/
#ifndef SENCHAFUNCTION_H_
#define SENCHAFUNCTION_H_
#include <string>
#include <iostream>
#include <vector>
#include "SenchaObject.h"
#include "Element.h"
#include "../Utils/to_string.h"
#include "../AST/ASTNode.h"
/**
* SenchaFunction is a class which is an abstraction of function written in SenchaLang.
* It stores name of the function, its body, and provides () call operator.
*/
class SenchaFunction : public Element
{
public:
SenchaFunction(std::string name, std::vector<std::string> names_of_arguments, ASTNode * body);
SenchaObject operator()();
std::string name;
std::vector<std::string> names_of_arguments;
virtual ~SenchaFunction();
private:
ASTNode * body;
};
#endif /* SENCHAFUNCTION_H_ */