/*
 * PostfixExpression.h
 *
 *  Created on: Dec 5, 2012
 *      Author: attero
 */

#ifndef POSTFIXEXPRESSION_H_
#define POSTFIXEXPRESSION_H_
#include "ASTExpression.h"
#include "ASTStatement.h"
#include "../ContextManager.h"
#include "../Elements/SenchaArray.h"

/**
 * PostfixExpression is in current implementation an abstraction
 * of function call
 */
class PostfixExpression : public ASTExpression {
public:
	std::string name;
	std::string operation;
	ContextManager * context_manager;
	std::vector<ASTExpression *> arguments;
	ASTExpression * access_index_expr;
	void add_argument(ASTExpression * expression);

	virtual SenchaObject evaluate();
	virtual SenchaObject execute();


	PostfixExpression( std::string name, ContextManager * context);
	PostfixExpression(std::string name, ContextManager * context_manager, ASTExpression * access_index_expr);
	virtual ~PostfixExpression();
};

#endif /* POSTFIXEXPRESSION_H_ */
