#include <iostream>
#include "uCalc.h"

using namespace std;
using namespace uCalcSoftware;

int main() {
   uCalc uc;
   uCalc uCalcA;
   uCalc uCalcB;
   uCalc uCalcC;

   uCalcA.DefineVariable("MyVar = 'I was cloned from uCalcA'");
   uCalcB.DefineVariable("MyVar = 'I was cloned from uCalcB'");
   uCalcC.DefineVariable("MyVar = 'I was cloned from uCalcC'");

   uCalcA.IsDefault(true);
   cout << uCalc::DefaultInstance().EvalStr("MyVar") << endl;

   uCalcB.IsDefault(true);
   cout << uCalc::DefaultInstance().EvalStr("MyVar") << endl;

   uCalcC.IsDefault(true);
   cout << uCalc::DefaultInstance().EvalStr("MyVar") << endl;

   cout << "---" << endl;

   // Now unsetting uCalc objects as default
   uCalcC.IsDefault(false);
   cout << uCalc::DefaultInstance().EvalStr("MyVar") << endl;

   uCalcB.IsDefault(false);
   cout << uCalc::DefaultInstance().EvalStr("MyVar") << endl;

   uCalcA.IsDefault(false);
   cout << uCalc::DefaultInstance().EvalStr("MyVar") << endl;


}