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

using namespace std;
using namespace uCalcSoftware;

void ucalc_call DoublePositive(uCalcBase::Callback cb) {
   // If input is negative, raise a syntax error.
   if (cb.Arg(1) < 0) {
      cb.Error().Raise(ErrorCode::Syntax_Error);
   }
   cb.Return(cb.Arg(1) * 2);
}
int main() {
   uCalc uc;
   uc.DefineFunction("DoublePositive(x)", DoublePositive);
   cout << uc.EvalStr("DoublePositive(10)") << endl;
   cout << uc.EvalStr("DoublePositive(-5)") << endl;
}