Translation of pseudocode to C++, C#, and VB for Gemini prompt
ID: 1361
See: Rosetta Stone
using uCalcSoftware;
var uc = new uCalc();
// Rosetta Stone
// Pseudocode translation to C++, C#, or VB
// This shows only in C#
//This shows in C# and VB, not C++
//This shows in C++ and C#, not Vb
//The c tag is the same as the NotVB tag
// Tags (c, cpp, cs, vb, NotCpp, NotCs, NotVb, etc.,) are not case-sensitive
Console.Write("w() prints text without ");
Console.Write("a new line at the end.");
Console.WriteLine(); // Moves to a new line
Console.WriteLine("wl() prints a line, ending with a newline.");
Console.WriteLine("Line 2");
Console.WriteLine("Line 3");
Console.WriteLine($"{123} multiple args for wl()");
Console.Write("multiple "); Console.Write("args "); Console.Write("for w() too");
Console.WriteLine("");
var t = uc.NewTransformer();
// Property setter syntax: @ followed by property name and value in parenthesis
t.Description = "Some description goes here";
// Property getter sytanx: @ followed by property name, and empty parenthesis
Console.WriteLine(t.Description);
// Each property has an alternative getter and setter function syntax
// with the Get or Set prefix like this:
t.SetDescription("A new description");
Console.WriteLine(t.GetDescription());
// Using the alternative function syntax for a property can be useful when chaining calls
// I use the c tag for the sake of VB that wants everything on the same line.
t.SetText("Some Text").SetDescription("Some description")
.FromTo("Text", "String").SetCaseSensitive(true).SetMinimum(1).SetMaximum(5)
.GetParentTransformer().Transform();
Console.WriteLine(t.Text);
// For compatibility across C++, C#, and VB, use the Verbatim tag for multi-line
// strings. Do not use escapes or specialized double-quote syntax in a string.
var MyString = """
Here is some "quoted" text on one line
And some random text on another line
""";
Console.WriteLine(MyString);
// Use this syntax to define a variable with a uCalc-related type
// Either with or without an initial value
uCalc.String MyStringA;
uCalc.String MyStringB = "This is some text.";
MyStringA = MyStringB.Text + " Some more text";
Console.WriteLine(MyStringA.Text);
// For simple types not belonging to uCalc, use this C#-like notation instead:
var OtherString = "Some other string ";
var MyNumber = 12345;
Console.WriteLine($"{OtherString}{MyNumber}");
// Another way to define a new variable (with a uCalc type) is with the more
// flexible New. Use this especially if you need to use arguments:
var MyVar = new uCalc.Item("Variable: x = 123");
var MyFunc = new uCalc.Item(uc, "Function: f(x) = x^2");
Console.WriteLine(uCalc.DefaultInstance.Eval("x"));
Console.WriteLine(uc.Eval("f(5)"));
// To define a uCalc object that gets released when the object goes out of scope, do:
using (var tr = new uCalc.Transformer()) {
tr.FromTo("This", "That");
Console.WriteLine(tr.Transform("This car").Text);
// To accomodate other languages besides C#, you must explicitely end the using block
}
// Use the C++ style to_string to convert a value to a string
Console.WriteLine("Value: " + (100 + 25).ToString());
// Always use the C++ double colon, ::, for scope resolution
// (it gets translated to a dot, ., in C# and VB
var MyTokens = t.Tokens;
Console.WriteLine(uc.DataTypeOf(BuiltInType.Float_Double).Name);
// Other supported constructs
for (double x = 1; x <= 10; x++) {
Console.WriteLine(x);
}
for (double x = 1; x <= 10; x = x + 2) {
Console.WriteLine(x);
}
foreach(var dType in uc.DataTypes) {
Console.WriteLine(dType.Name);
}
var count = 0;
while (count <= 5) {
Console.WriteLine(count);
count += 1;
}
do {
Console.WriteLine(count);
count = count + 1;
} while (count <= 10);
if (count < 100) {
Console.WriteLine("count is less than 100");
}
if (count < 5) {
// Some lines of code
Console.WriteLine("count is less than 5");
} else if (count <= 50) {
// . . .
Console.WriteLine("count is less than or equal to 50");
} else {
// More lines of code
Console.WriteLine("count is greater than 50");
}
// Declare and initialize a string array
string[] items = {"Apple", "Banana", "Cherry"};
// Get the size of the array
count = items.Length;
Console.WriteLine($"Total items: {count}");
// Access and modify elements
Console.WriteLine($"First item: {items[0]}");
items[1] = "Blueberry";
// Iterate through the array
var i = 0;
do {
Console.WriteLine(items[i]);
i = i + 1;
} while (i < items.Length);
// For proper translation into the 3 supported languages, wrap Boolean values with
// bool. When pseudocode contains the bool function, a helper function named tf is
// inserted towards to the top of the code
Console.WriteLine($"{uc.EvalStr("'Cos is a function? '")}{uc.ItemOf("Cos").IsProperty(ItemIs.Function)}");
Console.WriteLine($"{uc.EvalStr("'Cos is a variable? '")}{uc.ItemOf("Cos").IsProperty(ItemIs.Variable)}");
w() prints text without a new line at the end.
wl() prints a line, ending with a newline.
Line 2
Line 3
123 multiple args for wl()
multiple args for w() too
Some description goes here
A new description
Some String
Here is some "quoted" text on one line
And some random text on another line
This is some text. Some more text
Some other string 12345
123
25
That car
Value: 125
double
1
2
3
4
5
6
7
8
9
10
1
3
5
7
9
anytype
bool
bool
int8u
complex
double
single
int
int16
int16u
int
int32u
int64
int64u
int8
int8u
int
omnitype
pointer
sametypeas
single
size_t
string
void
0
1
2
3
4
5
6
7
8
9
10
count is less than 100
count is less than or equal to 50
Total items: 3
First item: Apple
Apple
Blueberry
Cherry
Cos is a function? True
Cos is a variable? False using uCalcSoftware; var uc = new uCalc(); // Rosetta Stone // Pseudocode translation to C++, C#, or VB // This shows only in C# //This shows in C# and VB, not C++ //This shows in C++ and C#, not Vb //The c tag is the same as the NotVB tag // Tags (c, cpp, cs, vb, NotCpp, NotCs, NotVb, etc.,) are not case-sensitive Console.Write("w() prints text without "); Console.Write("a new line at the end."); Console.WriteLine(); // Moves to a new line Console.WriteLine("wl() prints a line, ending with a newline."); Console.WriteLine("Line 2"); Console.WriteLine("Line 3"); Console.WriteLine($"{123} multiple args for wl()"); Console.Write("multiple "); Console.Write("args "); Console.Write("for w() too"); Console.WriteLine(""); var t = uc.NewTransformer(); // Property setter syntax: @ followed by property name and value in parenthesis t.Description = "Some description goes here"; // Property getter sytanx: @ followed by property name, and empty parenthesis Console.WriteLine(t.Description); // Each property has an alternative getter and setter function syntax // with the Get or Set prefix like this: t.SetDescription("A new description"); Console.WriteLine(t.GetDescription()); // Using the alternative function syntax for a property can be useful when chaining calls // I use the c tag for the sake of VB that wants everything on the same line. t.SetText("Some Text").SetDescription("Some description") .FromTo("Text", "String").SetCaseSensitive(true).SetMinimum(1).SetMaximum(5) .GetParentTransformer().Transform(); Console.WriteLine(t.Text); // For compatibility across C++, C#, and VB, use the Verbatim tag for multi-line // strings. Do not use escapes or specialized double-quote syntax in a string. var MyString = """ Here is some "quoted" text on one line And some random text on another line """; Console.WriteLine(MyString); // Use this syntax to define a variable with a uCalc-related type // Either with or without an initial value uCalc.String MyStringA; uCalc.String MyStringB = "This is some text."; MyStringA = MyStringB.Text + " Some more text"; Console.WriteLine(MyStringA.Text); // For simple types not belonging to uCalc, use this C#-like notation instead: var OtherString = "Some other string "; var MyNumber = 12345; Console.WriteLine($"{OtherString}{MyNumber}"); // Another way to define a new variable (with a uCalc type) is with the more // flexible New. Use this especially if you need to use arguments: var MyVar = new uCalc.Item("Variable: x = 123"); var MyFunc = new uCalc.Item(uc, "Function: f(x) = x^2"); Console.WriteLine(uCalc.DefaultInstance.Eval("x")); Console.WriteLine(uc.Eval("f(5)")); // To define a uCalc object that gets released when the object goes out of scope, do: using (var tr = new uCalc.Transformer()) { tr.FromTo("This", "That"); Console.WriteLine(tr.Transform("This car").Text); // To accomodate other languages besides C#, you must explicitely end the using block } // Use the C++ style to_string to convert a value to a string Console.WriteLine("Value: " + (100 + 25).ToString()); // Always use the C++ double colon, ::, for scope resolution // (it gets translated to a dot, ., in C# and VB var MyTokens = t.Tokens; Console.WriteLine(uc.DataTypeOf(BuiltInType.Float_Double).Name); // Other supported constructs for (double x = 1; x <= 10; x++) { Console.WriteLine(x); } for (double x = 1; x <= 10; x = x + 2) { Console.WriteLine(x); } foreach(var dType in uc.DataTypes) { Console.WriteLine(dType.Name); } var count = 0; while (count <= 5) { Console.WriteLine(count); count += 1; } do { Console.WriteLine(count); count = count + 1; } while (count <= 10); if (count < 100) { Console.WriteLine("count is less than 100"); } if (count < 5) { // Some lines of code Console.WriteLine("count is less than 5"); } else if (count <= 50) { // . . . Console.WriteLine("count is less than or equal to 50"); } else { // More lines of code Console.WriteLine("count is greater than 50"); } // Declare and initialize a string array string[] items = {"Apple", "Banana", "Cherry"}; // Get the size of the array count = items.Length; Console.WriteLine($"Total items: {count}"); // Access and modify elements Console.WriteLine($"First item: {items[0]}"); items[1] = "Blueberry"; // Iterate through the array var i = 0; do { Console.WriteLine(items[i]); i = i + 1; } while (i < items.Length); // For proper translation into the 3 supported languages, wrap Boolean values with // bool. When pseudocode contains the bool function, a helper function named tf is // inserted towards to the top of the code Console.WriteLine($"{uc.EvalStr("'Cos is a function? '")}{uc.ItemOf("Cos").IsProperty(ItemIs.Function)}"); Console.WriteLine($"{uc.EvalStr("'Cos is a variable? '")}{uc.ItemOf("Cos").IsProperty(ItemIs.Variable)}");
#include
#include "uCalc.h"
using namespace std;
using namespace uCalcSoftware;
#define tf(IsTrue) ((IsTrue) ? "True" : "False")
int main() {
uCalc uc;
// Rosetta Stone
// Pseudocode translation to C++, C#, or VB
// This shows only in C++
//This shows in C++ and VB, not C#
//This shows in C++ and C#, not Vb
//The c tag is the same as the NotVB tag
// Tags (c, cpp, cs, vb, NotCpp, NotCs, NotVb, etc.,) are not case-sensitive
cout << "w() prints text without ";
cout << "a new line at the end.";
cout << endl; // Moves to a new line
cout << "wl() prints a line, ending with a newline." << endl;
cout << "Line 2" << endl;
cout << "Line 3" << endl;
cout << 123 << " multiple args " << "for wl()" << endl;
cout << "multiple " << "args " << "for w() too";
cout << "" << endl;
auto t = uc.NewTransformer();
// Property setter syntax: @ followed by property name and value in parenthesis
t.Description("Some description goes here");
// Property getter sytanx: @ followed by property name, and empty parenthesis
cout << t.Description() << endl;
// Each property has an alternative getter and setter function syntax
// with the Get or Set prefix like this:
t.SetDescription("A new description");
cout << t.GetDescription() << endl;
// Using the alternative function syntax for a property can be useful when chaining calls
// I use the c tag for the sake of VB that wants everything on the same line.
t.SetText("Some Text").SetDescription("Some description")
.FromTo("Text", "String").SetCaseSensitive(true).SetMinimum(1).SetMaximum(5)
.GetParentTransformer().Transform();
cout << t.Text() << endl;
// For compatibility across C++, C#, and VB, use the Verbatim tag for multi-line
// strings. Do not use escapes or specialized double-quote syntax in a string.
auto MyString = R"(Here is some "quoted" text on one line
And some random text on another line)";
cout << MyString << endl;
// Use this syntax to define a variable with a uCalc-related type
// Either with or without an initial value
uCalc::String MyStringA;
uCalc::String MyStringB = "This is some text.";
MyStringA = MyStringB.Text() + " Some more text";
cout << MyStringA.Text() << endl;
// For simple types not belonging to uCalc, use this C#-like notation instead:
auto OtherString = "Some other string ";
auto MyNumber = 12345;
cout << OtherString << MyNumber << endl;
// Another way to define a new variable (with a uCalc type) is with the more
// flexible New. Use this especially if you need to use arguments:
uCalc::Item MyVar("Variable: x = 123");
uCalc::Item MyFunc(uc, "Function: f(x) = x^2");
cout << uCalc::DefaultInstance().Eval("x") << endl;
cout << uc.Eval("f(5)") << endl;
// To define a uCalc object that gets released when the object goes out of scope, do:
{
uCalc::Transformer tr;
tr.Owned(); // Causes tr to be released when it goes out of scope
tr.FromTo("This", "That");
cout << tr.Transform("This car").Text() << endl;
// To accomodate other languages besides C#, you must explicitely end the using block
}
// Use the C++ style to_string to convert a value to a string
cout << "Value: " + to_string(100 + 25) << endl;
// Always use the C++ double colon, ::, for scope resolution
// (it gets translated to a dot, ., in C# and VB
auto MyTokens = t.Tokens();
cout << uc.DataTypeOf(BuiltInType::Float_Double).Name() << endl;
// Other supported constructs
for (double x = 1; x <= 10; x++) {
cout << x << endl;
}
for (double x = 1; x <= 10; x = x + 2) {
cout << x << endl;
}
for(auto dType : uc.DataTypes()) {
cout << dType.Name() << endl;
}
auto count = 0;
while (count <= 5) {
cout << count << endl;
count += 1;
}
do {
cout << count << endl;
count = count + 1;
} while (count <= 10);
if (count < 100) {
cout << "count is less than 100" << endl;
}
if (count < 5) {
// Some lines of code
cout << "count is less than 5" << endl;
} else if (count <= 50) {
// . . .
cout << "count is less than or equal to 50" << endl;
} else {
// More lines of code
cout << "count is greater than 50" << endl;
}
// Declare and initialize a string array
vector items = {"Apple", "Banana", "Cherry"};
// Get the size of the array
count = items.size();
cout << "Total items: " << count << endl;
// Access and modify elements
cout << "First item: " << items[0] << endl;
items[1] = "Blueberry";
// Iterate through the array
auto i = 0;
do {
cout << items[i] << endl;
i = i + 1;
} while (i < items.size());
// For proper translation into the 3 supported languages, wrap Boolean values with
// bool. When pseudocode contains the bool function, a helper function named tf is
// inserted towards to the top of the code
cout << uc.EvalStr("'Cos is a function? '") << tf(uc.ItemOf("Cos").IsProperty(ItemIs::Function)) << endl;
cout << uc.EvalStr("'Cos is a variable? '") << tf(uc.ItemOf("Cos").IsProperty(ItemIs::Variable)) << endl;
}
w() prints text without a new line at the end.
wl() prints a line, ending with a newline.
Line 2
Line 3
123 multiple args for wl()
multiple args for w() too
Some description goes here
A new description
Some String
Here is some "quoted" text on one line
And some random text on another line
This is some text. Some more text
Some other string 12345
123
25
That car
Value: 125
double
1
2
3
4
5
6
7
8
9
10
1
3
5
7
9
anytype
bool
bool
int8u
complex
double
single
int
int16
int16u
int
int32u
int64
int64u
int8
int8u
int
omnitype
pointer
sametypeas
single
size_t
string
void
0
1
2
3
4
5
6
7
8
9
10
count is less than 100
count is less than or equal to 50
Total items: 3
First item: Apple
Apple
Blueberry
Cherry
Cos is a function? True
Cos is a variable? False #include <iostream> #include "uCalc.h" using namespace std; using namespace uCalcSoftware; #define tf(IsTrue) ((IsTrue) ? "True" : "False") int main() { uCalc uc; // Rosetta Stone // Pseudocode translation to C++, C#, or VB // This shows only in C++ //This shows in C++ and VB, not C# //This shows in C++ and C#, not Vb //The c tag is the same as the NotVB tag // Tags (c, cpp, cs, vb, NotCpp, NotCs, NotVb, etc.,) are not case-sensitive cout << "w() prints text without "; cout << "a new line at the end."; cout << endl; // Moves to a new line cout << "wl() prints a line, ending with a newline." << endl; cout << "Line 2" << endl; cout << "Line 3" << endl; cout << 123 << " multiple args " << "for wl()" << endl; cout << "multiple " << "args " << "for w() too"; cout << "" << endl; auto t = uc.NewTransformer(); // Property setter syntax: @ followed by property name and value in parenthesis t.Description("Some description goes here"); // Property getter sytanx: @ followed by property name, and empty parenthesis cout << t.Description() << endl; // Each property has an alternative getter and setter function syntax // with the Get or Set prefix like this: t.SetDescription("A new description"); cout << t.GetDescription() << endl; // Using the alternative function syntax for a property can be useful when chaining calls // I use the c tag for the sake of VB that wants everything on the same line. t.SetText("Some Text").SetDescription("Some description") .FromTo("Text", "String").SetCaseSensitive(true).SetMinimum(1).SetMaximum(5) .GetParentTransformer().Transform(); cout << t.Text() << endl; // For compatibility across C++, C#, and VB, use the Verbatim tag for multi-line // strings. Do not use escapes or specialized double-quote syntax in a string. auto MyString = R"(Here is some "quoted" text on one line And some random text on another line)"; cout << MyString << endl; // Use this syntax to define a variable with a uCalc-related type // Either with or without an initial value uCalc::String MyStringA; uCalc::String MyStringB = "This is some text."; MyStringA = MyStringB.Text() + " Some more text"; cout << MyStringA.Text() << endl; // For simple types not belonging to uCalc, use this C#-like notation instead: auto OtherString = "Some other string "; auto MyNumber = 12345; cout << OtherString << MyNumber << endl; // Another way to define a new variable (with a uCalc type) is with the more // flexible New. Use this especially if you need to use arguments: uCalc::Item MyVar("Variable: x = 123"); uCalc::Item MyFunc(uc, "Function: f(x) = x^2"); cout << uCalc::DefaultInstance().Eval("x") << endl; cout << uc.Eval("f(5)") << endl; // To define a uCalc object that gets released when the object goes out of scope, do: { uCalc::Transformer tr; tr.Owned(); // Causes tr to be released when it goes out of scope tr.FromTo("This", "That"); cout << tr.Transform("This car").Text() << endl; // To accomodate other languages besides C#, you must explicitely end the using block } // Use the C++ style to_string to convert a value to a string cout << "Value: " + to_string(100 + 25) << endl; // Always use the C++ double colon, ::, for scope resolution // (it gets translated to a dot, ., in C# and VB auto MyTokens = t.Tokens(); cout << uc.DataTypeOf(BuiltInType::Float_Double).Name() << endl; // Other supported constructs for (double x = 1; x <= 10; x++) { cout << x << endl; } for (double x = 1; x <= 10; x = x + 2) { cout << x << endl; } for(auto dType : uc.DataTypes()) { cout << dType.Name() << endl; } auto count = 0; while (count <= 5) { cout << count << endl; count += 1; } do { cout << count << endl; count = count + 1; } while (count <= 10); if (count < 100) { cout << "count is less than 100" << endl; } if (count < 5) { // Some lines of code cout << "count is less than 5" << endl; } else if (count <= 50) { // . . . cout << "count is less than or equal to 50" << endl; } else { // More lines of code cout << "count is greater than 50" << endl; } // Declare and initialize a string array vector<string> items = {"Apple", "Banana", "Cherry"}; // Get the size of the array count = items.size(); cout << "Total items: " << count << endl; // Access and modify elements cout << "First item: " << items[0] << endl; items[1] = "Blueberry"; // Iterate through the array auto i = 0; do { cout << items[i] << endl; i = i + 1; } while (i < items.size()); // For proper translation into the 3 supported languages, wrap Boolean values with // bool. When pseudocode contains the bool function, a helper function named tf is // inserted towards to the top of the code cout << uc.EvalStr("'Cos is a function? '") << tf(uc.ItemOf("Cos").IsProperty(ItemIs::Function)) << endl; cout << uc.EvalStr("'Cos is a variable? '") << tf(uc.ItemOf("Cos").IsProperty(ItemIs::Variable)) << endl; }
Imports System
Imports uCalcSoftware
Public Module Program
Public Sub Main()
Dim uc As New uCalc()
'// Rosetta Stone
'// Pseudocode translation to C++, C#, or VB
'// This shows only in vb
'//This shows in C# and VB, not C++
'//This shows in C++ and VB, not C#
'// Tags (c, cpp, cs, vb, NotCpp, NotCs, NotVb, etc.,) are not case-sensitive
Console.Write("w() prints text without ")
Console.Write("a new line at the end.")
Console.WriteLine() '// Moves to a new line
Console.WriteLine("wl() prints a line, ending with a newline.")
Console.WriteLine("Line 2")
Console.WriteLine("Line 3")
Console.WriteLine($"{123} multiple args for wl()")
Console.Write("multiple ")
Console.Write("args ")
Console.Write("for w() too")
Console.WriteLine("")
Dim t = uc.NewTransformer()
'// Property setter syntax: @ followed by property name and value in parenthesis
t.Description = "Some description goes here"
'// Property getter sytanx: @ followed by property name, and empty parenthesis
Console.WriteLine(t.Description)
'// Each property has an alternative getter and setter function syntax
'// with the Get or Set prefix like this:
t.SetDescription("A new description")
Console.WriteLine(t.GetDescription())
'// Using the alternative function syntax for a property can be useful when chaining calls
'// I use the c tag for the sake of VB that wants everything on the same line.
t.SetText("Some Text").SetDescription("Some description").FromTo("Text", "String").SetCaseSensitive(true).SetMinimum(1).SetMaximum(5).GetParentTransformer().Transform()
Console.WriteLine(t.Text)
'// For compatibility across C++, C#, and VB, use the Verbatim tag for multi-line
'// strings. Do not use escapes or specialized double-quote syntax in a string.
Dim MyString = "Here is some ""quoted"" text on one line
And some random text on another line"
Console.WriteLine(MyString)
'// Use this syntax to define a variable with a uCalc-related type
'// Either with or without an initial value
Dim MyStringA As uCalc.String
Dim MyStringB As uCalc.String = "This is some text."
MyStringA = MyStringB.Text + " Some more text"
Console.WriteLine(MyStringA.Text)
'// For simple types not belonging to uCalc, use this C#-like notation instead:
Dim OtherString = "Some other string "
Dim MyNumber = 12345
Console.WriteLine($"{OtherString}{MyNumber}")
'// Another way to define a new variable (with a uCalc type) is with the more
'// flexible New. Use this especially if you need to use arguments:
Dim MyVar As New uCalc.Item("Variable: x = 123")
Dim MyFunc As New uCalc.Item(uc, "Function: f(x) = x^2")
Console.WriteLine(uCalc.DefaultInstance.Eval("x"))
Console.WriteLine(uc.Eval("f(5)"))
'// To define a uCalc object that gets released when the object goes out of scope, do:
Using tr As New uCalc.Transformer()
tr.FromTo("This", "That")
Console.WriteLine(tr.Transform("This car").Text)
'// To accomodate other languages besides C#, you must explicitely end the using block
End Using
'// Use the C++ style to_string to convert a value to a string
Console.WriteLine("Value: " + (100 + 25).ToString())
'// Always use the C++ double colon, ::, for scope resolution
'// (it gets translated to a dot, ., in C# and VB
Dim MyTokens = t.Tokens
Console.WriteLine(uc.DataTypeOf(BuiltInType.Float_Double).Name)
'// Other supported constructs
For x As Double = 1 To 10
Console.WriteLine(x)
Next
For x As Double = 1 To 10 Step 2
Console.WriteLine(x)
Next
For Each dType In uc.DataTypes
Console.WriteLine(dType.Name)
Next
Dim count = 0
While count <= 5
Console.WriteLine(count)
count += 1
End While
Do
Console.WriteLine(count)
count = count + 1
Loop While count <= 10
If count < 100 Then
Console.WriteLine("count is less than 100")
End If
If count < 5 Then
'// Some lines of code
Console.WriteLine("count is less than 5")
ElseIf count <= 50 Then
'// . . .
Console.WriteLine("count is less than or equal to 50")
Else
'// More lines of code
Console.WriteLine("count is greater than 50")
End If
'// Declare and initialize a string array
Dim items() As String = {"Apple", "Banana", "Cherry"}
'// Get the size of the array
count = items.Length
Console.WriteLine($"Total items: {count}")
'// Access and modify elements
Console.WriteLine($"First item: {items(0)}")
items(1) = "Blueberry"
'// Iterate through the array
Dim i = 0
Do
Console.WriteLine(items(i))
i = i + 1
Loop While i < items.Length
'// For proper translation into the 3 supported languages, wrap Boolean values with
'// bool. When pseudocode contains the bool function, a helper function named tf is
'// inserted towards to the top of the code
Console.WriteLine($"{uc.EvalStr("'Cos is a function? '")}{uc.ItemOf("Cos").IsProperty(ItemIs.Function)}")
Console.WriteLine($"{uc.EvalStr("'Cos is a variable? '")}{uc.ItemOf("Cos").IsProperty(ItemIs.Variable)}")
End Sub
End Module
w() prints text without a new line at the end.
wl() prints a line, ending with a newline.
Line 2
Line 3
123 multiple args for wl()
multiple args for w() too
Some description goes here
A new description
Some String
Here is some "quoted" text on one line
And some random text on another line
This is some text. Some more text
Some other string 12345
123
25
That car
Value: 125
double
1
2
3
4
5
6
7
8
9
10
1
3
5
7
9
anytype
bool
bool
int8u
complex
double
single
int
int16
int16u
int
int32u
int64
int64u
int8
int8u
int
omnitype
pointer
sametypeas
single
size_t
string
void
0
1
2
3
4
5
6
7
8
9
10
count is less than 100
count is less than or equal to 50
Total items: 3
First item: Apple
Apple
Blueberry
Cherry
Cos is a function? True
Cos is a variable? False Imports System Imports uCalcSoftware Public Module Program Public Sub Main() Dim uc As New uCalc() '// Rosetta Stone '// Pseudocode translation to C++, C#, or VB '// This shows only in vb '//This shows in C# and VB, not C++ '//This shows in C++ and VB, not C# '// Tags (c, cpp, cs, vb, NotCpp, NotCs, NotVb, etc.,) are not case-sensitive Console.Write("w() prints text without ") Console.Write("a new line at the end.") Console.WriteLine() '// Moves to a new line Console.WriteLine("wl() prints a line, ending with a newline.") Console.WriteLine("Line 2") Console.WriteLine("Line 3") Console.WriteLine($"{123} multiple args for wl()") Console.Write("multiple ") Console.Write("args ") Console.Write("for w() too") Console.WriteLine("") Dim t = uc.NewTransformer() '// Property setter syntax: @ followed by property name and value in parenthesis t.Description = "Some description goes here" '// Property getter sytanx: @ followed by property name, and empty parenthesis Console.WriteLine(t.Description) '// Each property has an alternative getter and setter function syntax '// with the Get or Set prefix like this: t.SetDescription("A new description") Console.WriteLine(t.GetDescription()) '// Using the alternative function syntax for a property can be useful when chaining calls '// I use the c tag for the sake of VB that wants everything on the same line. t.SetText("Some Text").SetDescription("Some description").FromTo("Text", "String").SetCaseSensitive(true).SetMinimum(1).SetMaximum(5).GetParentTransformer().Transform() Console.WriteLine(t.Text) '// For compatibility across C++, C#, and VB, use the Verbatim tag for multi-line '// strings. Do not use escapes or specialized double-quote syntax in a string. Dim MyString = "Here is some ""quoted"" text on one line And some random text on another line" Console.WriteLine(MyString) '// Use this syntax to define a variable with a uCalc-related type '// Either with or without an initial value Dim MyStringA As uCalc.String Dim MyStringB As uCalc.String = "This is some text." MyStringA = MyStringB.Text + " Some more text" Console.WriteLine(MyStringA.Text) '// For simple types not belonging to uCalc, use this C#-like notation instead: Dim OtherString = "Some other string " Dim MyNumber = 12345 Console.WriteLine($"{OtherString}{MyNumber}") '// Another way to define a new variable (with a uCalc type) is with the more '// flexible New. Use this especially if you need to use arguments: Dim MyVar As New uCalc.Item("Variable: x = 123") Dim MyFunc As New uCalc.Item(uc, "Function: f(x) = x^2") Console.WriteLine(uCalc.DefaultInstance.Eval("x")) Console.WriteLine(uc.Eval("f(5)")) '// To define a uCalc object that gets released when the object goes out of scope, do: Using tr As New uCalc.Transformer() tr.FromTo("This", "That") Console.WriteLine(tr.Transform("This car").Text) '// To accomodate other languages besides C#, you must explicitely end the using block End Using '// Use the C++ style to_string to convert a value to a string Console.WriteLine("Value: " + (100 + 25).ToString()) '// Always use the C++ double colon, ::, for scope resolution '// (it gets translated to a dot, ., in C# and VB Dim MyTokens = t.Tokens Console.WriteLine(uc.DataTypeOf(BuiltInType.Float_Double).Name) '// Other supported constructs For x As Double = 1 To 10 Console.WriteLine(x) Next For x As Double = 1 To 10 Step 2 Console.WriteLine(x) Next For Each dType In uc.DataTypes Console.WriteLine(dType.Name) Next Dim count = 0 While count <= 5 Console.WriteLine(count) count += 1 End While Do Console.WriteLine(count) count = count + 1 Loop While count <= 10 If count < 100 Then Console.WriteLine("count is less than 100") End If If count < 5 Then '// Some lines of code Console.WriteLine("count is less than 5") ElseIf count <= 50 Then '// . . . Console.WriteLine("count is less than or equal to 50") Else '// More lines of code Console.WriteLine("count is greater than 50") End If '// Declare and initialize a string array Dim items() As String = {"Apple", "Banana", "Cherry"} '// Get the size of the array count = items.Length Console.WriteLine($"Total items: {count}") '// Access and modify elements Console.WriteLine($"First item: {items(0)}") items(1) = "Blueberry" '// Iterate through the array Dim i = 0 Do Console.WriteLine(items(i)) i = i + 1 Loop While i < items.Length '// For proper translation into the 3 supported languages, wrap Boolean values with '// bool. When pseudocode contains the bool function, a helper function named tf is '// inserted towards to the top of the code Console.WriteLine($"{uc.EvalStr("'Cos is a function? '")}{uc.ItemOf("Cos").IsProperty(ItemIs.Function)}") Console.WriteLine($"{uc.EvalStr("'Cos is a variable? '")}{uc.ItemOf("Cos").IsProperty(ItemIs.Variable)}") End Sub End Module