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

using namespace std;
using namespace uCalcSoftware;

#define tf(IsTrue) ((IsTrue) ? "True" : "False")

int main() {
   uCalc uc;
   uCalc uc1;
   uCalc uc2;

   uCalc::Transformer t1(uc1);
   uCalc::Transformer t2(uc2);

   auto tokens1 = t1.Tokens();
   auto tokens2 = t2.Tokens();

   auto parent1 = tokens1.uCalc();
   auto parent2 = tokens2.uCalc();

   cout << "tokens1 belongs to uc1: " << tf(parent1.Handle() == uc1.Handle()) << endl;
   cout << "tokens2 belongs to uc2: " << tf(parent2.Handle() == uc2.Handle()) << endl;
   cout << "tokens1 does not belong to uc2: " << tf(parent1.Handle() != uc2.Handle()) << endl;
}