#pragma once

#include "expression.h"
#include "expptr.h"

enum UOp
{
	MINUS
};

/**
 * Выражение с одним аргументом.
 */
class UnaryExpression : public Expression
{
	/// Подвыражение-аргумент.
	ExpPtr _exp;
	/// Операция.
	UOp _operation;
public:
	/**
	 * Конструктор.
	 *
	 * @param operation операция
	 * @param exp подвыражение-аргумент
	 */
	UnaryExpression(UOp operation, const ExpPtr & exp);
	
	/**
	 * Реализация.
	 */
	double eval();
};
