Return and other type-specific versions of Return
ID: 85
using uCalcSoftware;
var uc = new uCalc();
static void BooleanAnd(uCalc.Callback cb) {
cb.ReturnBool(cb.ArgBool(1) && cb.ArgBool(2));
}
static void AddInt16(uCalc.Callback cb) {
//C# promots Int16 to int for arithmetic hence (Int16) to convert it back
cb.ReturnInt16((Int16)(cb.ArgInt16(1) + cb.ArgInt16(2)));
}
static void AddInt32(uCalc.Callback cb) {
cb.ReturnInt32(cb.ArgInt32(1) + cb.ArgInt32(2));
}
static void AddInt64(uCalc.Callback cb) {
cb.ReturnInt64(cb.ArgInt64(1) + cb.ArgInt64(2));
}
uc.DefineFunction("BooleanAnd(x As Bool, y As Bool) As Bool", BooleanAnd);
uc.DefineFunction("AddInt16(x As Int16, y As Int16) As Int16", AddInt16);
uc.DefineFunction("AddInt32(x As Int32, y As Int32) As Int32", AddInt32);
uc.DefineFunction("AddInt64(x As Int64, y As Int64) As Int64", AddInt64);
Console.WriteLine(uc.EvalStr("BooleanAnd(true, false)"));
Console.WriteLine(uc.EvalStr("AddInt16(5.2, 4.1)"));
Console.WriteLine(uc.EvalStr("AddInt32(2, 3)"));
Console.WriteLine(uc.EvalStr("AddInt64(10, 20)"));
false
9
5
30 using uCalcSoftware; var uc = new uCalc(); static void BooleanAnd(uCalc.Callback cb) { cb.ReturnBool(cb.ArgBool(1) && cb.ArgBool(2)); } static void AddInt16(uCalc.Callback cb) { //C# promots Int16 to int for arithmetic hence (Int16) to convert it back cb.ReturnInt16((Int16)(cb.ArgInt16(1) + cb.ArgInt16(2))); } static void AddInt32(uCalc.Callback cb) { cb.ReturnInt32(cb.ArgInt32(1) + cb.ArgInt32(2)); } static void AddInt64(uCalc.Callback cb) { cb.ReturnInt64(cb.ArgInt64(1) + cb.ArgInt64(2)); } uc.DefineFunction("BooleanAnd(x As Bool, y As Bool) As Bool", BooleanAnd); uc.DefineFunction("AddInt16(x As Int16, y As Int16) As Int16", AddInt16); uc.DefineFunction("AddInt32(x As Int32, y As Int32) As Int32", AddInt32); uc.DefineFunction("AddInt64(x As Int64, y As Int64) As Int64", AddInt64); Console.WriteLine(uc.EvalStr("BooleanAnd(true, false)")); Console.WriteLine(uc.EvalStr("AddInt16(5.2, 4.1)")); Console.WriteLine(uc.EvalStr("AddInt32(2, 3)")); Console.WriteLine(uc.EvalStr("AddInt64(10, 20)"));
#include
#include "uCalc.h"
using namespace std;
using namespace uCalcSoftware;
void ucalc_call BooleanAnd(uCalcBase::Callback cb) {
cb.ReturnBool(cb.ArgBool(1) && cb.ArgBool(2));
}
void ucalc_call AddInt16(uCalcBase::Callback cb) {
cb.ReturnInt16(cb.ArgInt16(1) + cb.ArgInt16(2));
}
void ucalc_call AddInt32(uCalcBase::Callback cb) {
cb.ReturnInt32(cb.ArgInt32(1) + cb.ArgInt32(2));
}
void ucalc_call AddInt64(uCalcBase::Callback cb) {
cb.ReturnInt64(cb.ArgInt64(1) + cb.ArgInt64(2));
}
int main() {
uCalc uc;
uc.DefineFunction("BooleanAnd(x As Bool, y As Bool) As Bool", BooleanAnd);
uc.DefineFunction("AddInt16(x As Int16, y As Int16) As Int16", AddInt16);
uc.DefineFunction("AddInt32(x As Int32, y As Int32) As Int32", AddInt32);
uc.DefineFunction("AddInt64(x As Int64, y As Int64) As Int64", AddInt64);
cout << uc.EvalStr("BooleanAnd(true, false)") << endl;
cout << uc.EvalStr("AddInt16(5.2, 4.1)") << endl;
cout << uc.EvalStr("AddInt32(2, 3)") << endl;
cout << uc.EvalStr("AddInt64(10, 20)") << endl;
}
false
9
5
30 #include <iostream> #include "uCalc.h" using namespace std; using namespace uCalcSoftware; void ucalc_call BooleanAnd(uCalcBase::Callback cb) { cb.ReturnBool(cb.ArgBool(1) && cb.ArgBool(2)); } void ucalc_call AddInt16(uCalcBase::Callback cb) { cb.ReturnInt16(cb.ArgInt16(1) + cb.ArgInt16(2)); } void ucalc_call AddInt32(uCalcBase::Callback cb) { cb.ReturnInt32(cb.ArgInt32(1) + cb.ArgInt32(2)); } void ucalc_call AddInt64(uCalcBase::Callback cb) { cb.ReturnInt64(cb.ArgInt64(1) + cb.ArgInt64(2)); } int main() { uCalc uc; uc.DefineFunction("BooleanAnd(x As Bool, y As Bool) As Bool", BooleanAnd); uc.DefineFunction("AddInt16(x As Int16, y As Int16) As Int16", AddInt16); uc.DefineFunction("AddInt32(x As Int32, y As Int32) As Int32", AddInt32); uc.DefineFunction("AddInt64(x As Int64, y As Int64) As Int64", AddInt64); cout << uc.EvalStr("BooleanAnd(true, false)") << endl; cout << uc.EvalStr("AddInt16(5.2, 4.1)") << endl; cout << uc.EvalStr("AddInt32(2, 3)") << endl; cout << uc.EvalStr("AddInt64(10, 20)") << endl; }
Imports System
Imports uCalcSoftware
Public Module Program
Public Sub BooleanAnd(ByVal cb As uCalc.Callback)
cb.ReturnBool(cb.ArgBool(1) And cb.ArgBool(2))
End Sub
Public Sub AddInt16(ByVal cb As uCalc.Callback)
cb.ReturnInt16(cb.ArgInt16(1) + cb.ArgInt16(2))
End Sub
Public Sub AddInt32(ByVal cb As uCalc.Callback)
cb.ReturnInt32(cb.ArgInt32(1) + cb.ArgInt32(2))
End Sub
Public Sub AddInt64(ByVal cb As uCalc.Callback)
cb.ReturnInt64(cb.ArgInt64(1) + cb.ArgInt64(2))
End Sub
Public Sub Main()
Dim uc As New uCalc()
uc.DefineFunction("BooleanAnd(x As Bool, y As Bool) As Bool", AddressOf BooleanAnd)
uc.DefineFunction("AddInt16(x As Int16, y As Int16) As Int16", AddressOf AddInt16)
uc.DefineFunction("AddInt32(x As Int32, y As Int32) As Int32", AddressOf AddInt32)
uc.DefineFunction("AddInt64(x As Int64, y As Int64) As Int64", AddressOf AddInt64)
Console.WriteLine(uc.EvalStr("BooleanAnd(true, false)"))
Console.WriteLine(uc.EvalStr("AddInt16(5.2, 4.1)"))
Console.WriteLine(uc.EvalStr("AddInt32(2, 3)"))
Console.WriteLine(uc.EvalStr("AddInt64(10, 20)"))
End Sub
End Module
false
9
5
30 Imports System Imports uCalcSoftware Public Module Program Public Sub BooleanAnd(ByVal cb As uCalc.Callback) cb.ReturnBool(cb.ArgBool(1) And cb.ArgBool(2)) End Sub Public Sub AddInt16(ByVal cb As uCalc.Callback) cb.ReturnInt16(cb.ArgInt16(1) + cb.ArgInt16(2)) End Sub Public Sub AddInt32(ByVal cb As uCalc.Callback) cb.ReturnInt32(cb.ArgInt32(1) + cb.ArgInt32(2)) End Sub Public Sub AddInt64(ByVal cb As uCalc.Callback) cb.ReturnInt64(cb.ArgInt64(1) + cb.ArgInt64(2)) End Sub Public Sub Main() Dim uc As New uCalc() uc.DefineFunction("BooleanAnd(x As Bool, y As Bool) As Bool", AddressOf BooleanAnd) uc.DefineFunction("AddInt16(x As Int16, y As Int16) As Int16", AddressOf AddInt16) uc.DefineFunction("AddInt32(x As Int32, y As Int32) As Int32", AddressOf AddInt32) uc.DefineFunction("AddInt64(x As Int64, y As Int64) As Int64", AddressOf AddInt64) Console.WriteLine(uc.EvalStr("BooleanAnd(true, false)")) Console.WriteLine(uc.EvalStr("AddInt16(5.2, 4.1)")) Console.WriteLine(uc.EvalStr("AddInt32(2, 3)")) Console.WriteLine(uc.EvalStr("AddInt64(10, 20)")) End Sub End Module