#include <sstream>
#include <string>
#include "node.hpp"
#include "parser.hpp"

int main(int argc, char *argv[])
{
	std::string lin;
	while (!std::cin.eof() && std::cin.peek()!=';')
		lin+= char(std::cin.get());
	lin+= std::cin.get();
	Parser e(lin, NULL, NULL);
	Node* p= e.Tree();
	std::cout << "expr: " <<  p->print() << std::endl;
	Node* d= p->deriv();
	std::cout << "deriv: " <<  d->print() << std::endl;
	std::cout << "expr.eval(2)= " <<  p->eval(2) << std::endl;
	std::cout << "deriv.eval(2)= " <<  d->eval(2) << std::endl;
	delete d;
	delete p;
	return EXIT_SUCCESS;
}
