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

using namespace std;
using namespace uCalcSoftware;

void ucalc_call SharedCallback(uCalcBase::Callback cb) {
   cout << "Callback triggered by: " << cb.Item().Name() << endl;
}
int main() {
   uCalc uc;
   // Define two different symbols that use the same callback
   uc.DefineFunction("FuncA(x, y)", SharedCallback);
   uc.DefineOperator("{x} OpB {y}", 100, Associativity::LeftToRight, SharedCallback);

   // Call both symbols
   uc.EvalStr("FuncA(1, 2)");
   uc.EvalStr("1 OpB 2");

}