Format using callback functions
ID: 26
using uCalcSoftware;
var uc = new uCalc();
static void OutputAnswerCB(uCalc.Callback cb) {
cb.ReturnStr("Answer: " + cb.ArgStr(1));
}
static void OutputSymbolCB(uCalc.Callback cb) {
cb.ReturnStr("==> " + cb.ArgStr(1));
}
static void OutputBoolCB(uCalc.Callback cb) {
if (cb.ArgStr(1) == "false") {
cb.ReturnStr("No");
} else if (cb.ArgStr(1) == "true") {
cb.ReturnStr("Yes");
}
}
// This format inserts "Answer: " in front of every result
var OutputAnswer = uc.Format( OutputAnswerCB);
Console.WriteLine(uc.EvalStr("10+20"));
Console.WriteLine(uc.EvalStr("'Hello '+'world'"));
Console.WriteLine(uc.EvalStr("5 > 10"));
Console.WriteLine("---");
// This one inserts ==> in front of the result
// The previously defined "Answer: " output is still prepended as well
var OutputSymbol = uc.Format( OutputSymbolCB);
Console.WriteLine(uc.EvalStr("10+20"));
Console.WriteLine(uc.EvalStr("'Hello '+'world'"));
Console.WriteLine(uc.EvalStr("5 > 10"));
Console.WriteLine("---");
// Causes Boolean values to return Yes or No (instead of true or false)
var OutputBool = uc.Format( OutputBoolCB, "Bool");
Console.WriteLine(uc.EvalStr("10+20"));
Console.WriteLine(uc.EvalStr("'Hello '+'world'"));
Console.WriteLine(uc.EvalStr("5 > 10"));
Console.WriteLine(uc.EvalStr("5 < 10"));
Console.WriteLine("---");
// The previously defined "==>" output is removed
OutputSymbol.Release();
Console.WriteLine(uc.EvalStr("10+20"));
Console.WriteLine(uc.EvalStr("'Hello '+'world'"));
Console.WriteLine(uc.EvalStr("5 > 10"));
Console.WriteLine(uc.EvalStr("5 < 10"));
Answer: 30
Answer: Hello world
Answer: false
---
Answer: ==> 30
Answer: ==> Hello world
Answer: ==> false
---
Answer: ==> 30
Answer: ==> Hello world
Answer: ==> No
Answer: ==> Yes
---
Answer: 30
Answer: Hello world
Answer: No
Answer: Yes using uCalcSoftware; var uc = new uCalc(); static void OutputAnswerCB(uCalc.Callback cb) { cb.ReturnStr("Answer: " + cb.ArgStr(1)); } static void OutputSymbolCB(uCalc.Callback cb) { cb.ReturnStr("==> " + cb.ArgStr(1)); } static void OutputBoolCB(uCalc.Callback cb) { if (cb.ArgStr(1) == "false") { cb.ReturnStr("No"); } else if (cb.ArgStr(1) == "true") { cb.ReturnStr("Yes"); } } // This format inserts "Answer: " in front of every result var OutputAnswer = uc.Format( OutputAnswerCB); Console.WriteLine(uc.EvalStr("10+20")); Console.WriteLine(uc.EvalStr("'Hello '+'world'")); Console.WriteLine(uc.EvalStr("5 > 10")); Console.WriteLine("---"); // This one inserts ==> in front of the result // The previously defined "Answer: " output is still prepended as well var OutputSymbol = uc.Format( OutputSymbolCB); Console.WriteLine(uc.EvalStr("10+20")); Console.WriteLine(uc.EvalStr("'Hello '+'world'")); Console.WriteLine(uc.EvalStr("5 > 10")); Console.WriteLine("---"); // Causes Boolean values to return Yes or No (instead of true or false) var OutputBool = uc.Format( OutputBoolCB, "Bool"); Console.WriteLine(uc.EvalStr("10+20")); Console.WriteLine(uc.EvalStr("'Hello '+'world'")); Console.WriteLine(uc.EvalStr("5 > 10")); Console.WriteLine(uc.EvalStr("5 < 10")); Console.WriteLine("---"); // The previously defined "==>" output is removed OutputSymbol.Release(); Console.WriteLine(uc.EvalStr("10+20")); Console.WriteLine(uc.EvalStr("'Hello '+'world'")); Console.WriteLine(uc.EvalStr("5 > 10")); Console.WriteLine(uc.EvalStr("5 < 10"));
#include
#include "uCalc.h"
using namespace std;
using namespace uCalcSoftware;
void ucalc_call OutputAnswerCB(uCalcBase::Callback cb) {
cb.ReturnStr("Answer: " + cb.ArgStr(1));
}
void ucalc_call OutputSymbolCB(uCalcBase::Callback cb) {
cb.ReturnStr("==> " + cb.ArgStr(1));
}
void ucalc_call OutputBoolCB(uCalcBase::Callback cb) {
if (cb.ArgStr(1) == "false") {
cb.ReturnStr("No");
} else if (cb.ArgStr(1) == "true") {
cb.ReturnStr("Yes");
}
}
int main() {
uCalc uc;
// This format inserts "Answer: " in front of every result
auto OutputAnswer = uc.Format( OutputAnswerCB);
cout << uc.EvalStr("10+20") << endl;
cout << uc.EvalStr("'Hello '+'world'") << endl;
cout << uc.EvalStr("5 > 10") << endl;
cout << "---" << endl;
// This one inserts ==> in front of the result
// The previously defined "Answer: " output is still prepended as well
auto OutputSymbol = uc.Format( OutputSymbolCB);
cout << uc.EvalStr("10+20") << endl;
cout << uc.EvalStr("'Hello '+'world'") << endl;
cout << uc.EvalStr("5 > 10") << endl;
cout << "---" << endl;
// Causes Boolean values to return Yes or No (instead of true or false)
auto OutputBool = uc.Format( OutputBoolCB, "Bool");
cout << uc.EvalStr("10+20") << endl;
cout << uc.EvalStr("'Hello '+'world'") << endl;
cout << uc.EvalStr("5 > 10") << endl;
cout << uc.EvalStr("5 < 10") << endl;
cout << "---" << endl;
// The previously defined "==>" output is removed
OutputSymbol.Release();
cout << uc.EvalStr("10+20") << endl;
cout << uc.EvalStr("'Hello '+'world'") << endl;
cout << uc.EvalStr("5 > 10") << endl;
cout << uc.EvalStr("5 < 10") << endl;
}
Answer: 30
Answer: Hello world
Answer: false
---
Answer: ==> 30
Answer: ==> Hello world
Answer: ==> false
---
Answer: ==> 30
Answer: ==> Hello world
Answer: ==> No
Answer: ==> Yes
---
Answer: 30
Answer: Hello world
Answer: No
Answer: Yes #include <iostream> #include "uCalc.h" using namespace std; using namespace uCalcSoftware; void ucalc_call OutputAnswerCB(uCalcBase::Callback cb) { cb.ReturnStr("Answer: " + cb.ArgStr(1)); } void ucalc_call OutputSymbolCB(uCalcBase::Callback cb) { cb.ReturnStr("==> " + cb.ArgStr(1)); } void ucalc_call OutputBoolCB(uCalcBase::Callback cb) { if (cb.ArgStr(1) == "false") { cb.ReturnStr("No"); } else if (cb.ArgStr(1) == "true") { cb.ReturnStr("Yes"); } } int main() { uCalc uc; // This format inserts "Answer: " in front of every result auto OutputAnswer = uc.Format( OutputAnswerCB); cout << uc.EvalStr("10+20") << endl; cout << uc.EvalStr("'Hello '+'world'") << endl; cout << uc.EvalStr("5 > 10") << endl; cout << "---" << endl; // This one inserts ==> in front of the result // The previously defined "Answer: " output is still prepended as well auto OutputSymbol = uc.Format( OutputSymbolCB); cout << uc.EvalStr("10+20") << endl; cout << uc.EvalStr("'Hello '+'world'") << endl; cout << uc.EvalStr("5 > 10") << endl; cout << "---" << endl; // Causes Boolean values to return Yes or No (instead of true or false) auto OutputBool = uc.Format( OutputBoolCB, "Bool"); cout << uc.EvalStr("10+20") << endl; cout << uc.EvalStr("'Hello '+'world'") << endl; cout << uc.EvalStr("5 > 10") << endl; cout << uc.EvalStr("5 < 10") << endl; cout << "---" << endl; // The previously defined "==>" output is removed OutputSymbol.Release(); cout << uc.EvalStr("10+20") << endl; cout << uc.EvalStr("'Hello '+'world'") << endl; cout << uc.EvalStr("5 > 10") << endl; cout << uc.EvalStr("5 < 10") << endl; }
Imports System
Imports uCalcSoftware
Public Module Program
Public Sub OutputAnswerCB(ByVal cb As uCalc.Callback)
cb.ReturnStr("Answer: " + cb.ArgStr(1))
End Sub
Public Sub OutputSymbolCB(ByVal cb As uCalc.Callback)
cb.ReturnStr("==> " + cb.ArgStr(1))
End Sub
Public Sub OutputBoolCB(ByVal cb As uCalc.Callback)
If cb.ArgStr(1) = "false" Then
cb.ReturnStr("No")
ElseIf cb.ArgStr(1) = "true" Then
cb.ReturnStr("Yes")
End If
End Sub
Public Sub Main()
Dim uc As New uCalc()
'// This format inserts "Answer: " in front of every result
Dim OutputAnswer = uc.Format(AddressOf OutputAnswerCB)
Console.WriteLine(uc.EvalStr("10+20"))
Console.WriteLine(uc.EvalStr("'Hello '+'world'"))
Console.WriteLine(uc.EvalStr("5 > 10"))
Console.WriteLine("---")
'// This one inserts ==> in front of the result
'// The previously defined "Answer: " output is still prepended as well
Dim OutputSymbol = uc.Format(AddressOf OutputSymbolCB)
Console.WriteLine(uc.EvalStr("10+20"))
Console.WriteLine(uc.EvalStr("'Hello '+'world'"))
Console.WriteLine(uc.EvalStr("5 > 10"))
Console.WriteLine("---")
'// Causes Boolean values to return Yes or No (instead of true or false)
Dim OutputBool = uc.Format(AddressOf OutputBoolCB, "Bool")
Console.WriteLine(uc.EvalStr("10+20"))
Console.WriteLine(uc.EvalStr("'Hello '+'world'"))
Console.WriteLine(uc.EvalStr("5 > 10"))
Console.WriteLine(uc.EvalStr("5 < 10"))
Console.WriteLine("---")
'// The previously defined "==>" output is removed
OutputSymbol.Release()
Console.WriteLine(uc.EvalStr("10+20"))
Console.WriteLine(uc.EvalStr("'Hello '+'world'"))
Console.WriteLine(uc.EvalStr("5 > 10"))
Console.WriteLine(uc.EvalStr("5 < 10"))
End Sub
End Module
Answer: 30
Answer: Hello world
Answer: false
---
Answer: ==> 30
Answer: ==> Hello world
Answer: ==> false
---
Answer: ==> 30
Answer: ==> Hello world
Answer: ==> No
Answer: ==> Yes
---
Answer: 30
Answer: Hello world
Answer: No
Answer: Yes Imports System Imports uCalcSoftware Public Module Program Public Sub OutputAnswerCB(ByVal cb As uCalc.Callback) cb.ReturnStr("Answer: " + cb.ArgStr(1)) End Sub Public Sub OutputSymbolCB(ByVal cb As uCalc.Callback) cb.ReturnStr("==> " + cb.ArgStr(1)) End Sub Public Sub OutputBoolCB(ByVal cb As uCalc.Callback) If cb.ArgStr(1) = "false" Then cb.ReturnStr("No") ElseIf cb.ArgStr(1) = "true" Then cb.ReturnStr("Yes") End If End Sub Public Sub Main() Dim uc As New uCalc() '// This format inserts "Answer: " in front of every result Dim OutputAnswer = uc.Format(AddressOf OutputAnswerCB) Console.WriteLine(uc.EvalStr("10+20")) Console.WriteLine(uc.EvalStr("'Hello '+'world'")) Console.WriteLine(uc.EvalStr("5 > 10")) Console.WriteLine("---") '// This one inserts ==> in front of the result '// The previously defined "Answer: " output is still prepended as well Dim OutputSymbol = uc.Format(AddressOf OutputSymbolCB) Console.WriteLine(uc.EvalStr("10+20")) Console.WriteLine(uc.EvalStr("'Hello '+'world'")) Console.WriteLine(uc.EvalStr("5 > 10")) Console.WriteLine("---") '// Causes Boolean values to return Yes or No (instead of true or false) Dim OutputBool = uc.Format(AddressOf OutputBoolCB, "Bool") Console.WriteLine(uc.EvalStr("10+20")) Console.WriteLine(uc.EvalStr("'Hello '+'world'")) Console.WriteLine(uc.EvalStr("5 > 10")) Console.WriteLine(uc.EvalStr("5 < 10")) Console.WriteLine("---") '// The previously defined "==>" output is removed OutputSymbol.Release() Console.WriteLine(uc.EvalStr("10+20")) Console.WriteLine(uc.EvalStr("'Hello '+'world'")) Console.WriteLine(uc.EvalStr("5 > 10")) Console.WriteLine(uc.EvalStr("5 < 10")) End Sub End Module