Triggering a standard syntax error if the input value is negative.

ID: 479

				
					using uCalcSoftware;

var uc = new uCalc();

static void DoublePositive(uCalc.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);
}

uc.DefineFunction("DoublePositive(x)", DoublePositive);
Console.WriteLine(uc.EvalStr("DoublePositive(10)"));
Console.WriteLine(uc.EvalStr("DoublePositive(-5)"));
				
			
20
Syntax error
				
					#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;
}
				
			
20
Syntax error
				
					Imports System
Imports uCalcSoftware
Public Module Program
   
   Public Sub DoublePositive(ByVal cb As uCalc.Callback)
      '// If input is negative, raise a syntax error.
      If cb.Arg(1) < 0 Then
         cb.Error.Raise(ErrorCode.Syntax_Error)
      End If
      cb.Return(cb.Arg(1) * 2)
   End Sub
   Public Sub Main()
      Dim uc As New uCalc()
      uc.DefineFunction("DoublePositive(x)", AddressOf DoublePositive)
      Console.WriteLine(uc.EvalStr("DoublePositive(10)"))
      Console.WriteLine(uc.EvalStr("DoublePositive(-5)"))
   End Sub
End Module
				
			
20
Syntax error