Internal Test: Contrasts a token-aware uCalc replacement with a character-aware regex replacement to highlight safety.
ID: 1228
using uCalcSoftware;
var uc = new uCalc();
var code = """
rate = 0.05; print("rate"); // a rate
""";
Console.WriteLine("--- uCalc Transformer (Token-Aware & Correct) ---");
var t = new uCalc.Transformer();
t.Tokens.Add("//.*", TokenType.Whitespace);
// Rule targets only the alphanumeric token 'rate'
t.FromTo("rate", "annual_rate");
Console.WriteLine(t.Transform(code));
Console.WriteLine("");
Console.WriteLine("--- Simulated Regex (Character-Aware & Incorrect) ---");
// This simulates a simple find-and-replace for the word 'rate'
// which incorrectly changes the string literal and comment.
var incorrect_result = """
annual_rate = 0.05; print("annual_rate"); // a annual_rate
""";
Console.WriteLine(incorrect_result);
--- uCalc Transformer (Token-Aware & Correct) ---
annual_rate = 0.05; print("rate"); // a rate
--- Simulated Regex (Character-Aware & Incorrect) ---
annual_rate = 0.05; print("annual_rate"); // a annual_rate using uCalcSoftware; var uc = new uCalc(); var code = """ rate = 0.05; print("rate"); // a rate """; Console.WriteLine("--- uCalc Transformer (Token-Aware & Correct) ---"); var t = new uCalc.Transformer(); t.Tokens.Add("//.*", TokenType.Whitespace); // Rule targets only the alphanumeric token 'rate' t.FromTo("rate", "annual_rate"); Console.WriteLine(t.Transform(code)); Console.WriteLine(""); Console.WriteLine("--- Simulated Regex (Character-Aware & Incorrect) ---"); // This simulates a simple find-and-replace for the word 'rate' // which incorrectly changes the string literal and comment. var incorrect_result = """ annual_rate = 0.05; print("annual_rate"); // a annual_rate """; Console.WriteLine(incorrect_result);
#include
#include "uCalc.h"
using namespace std;
using namespace uCalcSoftware;
int main() {
uCalc uc;
auto code = R"(rate = 0.05; print("rate"); // a rate)";
cout << "--- uCalc Transformer (Token-Aware & Correct) ---" << endl;
uCalc::Transformer t;
t.Tokens().Add("//.*", TokenType::Whitespace);
// Rule targets only the alphanumeric token 'rate'
t.FromTo("rate", "annual_rate");
cout << t.Transform(code) << endl;
cout << "" << endl;
cout << "--- Simulated Regex (Character-Aware & Incorrect) ---" << endl;
// This simulates a simple find-and-replace for the word 'rate'
// which incorrectly changes the string literal and comment.
auto incorrect_result = R"(annual_rate = 0.05; print("annual_rate"); // a annual_rate)";
cout << incorrect_result << endl;
}
--- uCalc Transformer (Token-Aware & Correct) ---
annual_rate = 0.05; print("rate"); // a rate
--- Simulated Regex (Character-Aware & Incorrect) ---
annual_rate = 0.05; print("annual_rate"); // a annual_rate #include <iostream> #include "uCalc.h" using namespace std; using namespace uCalcSoftware; int main() { uCalc uc; auto code = R"(rate = 0.05; print("rate"); // a rate)"; cout << "--- uCalc Transformer (Token-Aware & Correct) ---" << endl; uCalc::Transformer t; t.Tokens().Add("//.*", TokenType::Whitespace); // Rule targets only the alphanumeric token 'rate' t.FromTo("rate", "annual_rate"); cout << t.Transform(code) << endl; cout << "" << endl; cout << "--- Simulated Regex (Character-Aware & Incorrect) ---" << endl; // This simulates a simple find-and-replace for the word 'rate' // which incorrectly changes the string literal and comment. auto incorrect_result = R"(annual_rate = 0.05; print("annual_rate"); // a annual_rate)"; cout << incorrect_result << endl; }
Imports System
Imports uCalcSoftware
Public Module Program
Public Sub Main()
Dim uc As New uCalc()
Dim code = "rate = 0.05; print(""rate""); // a rate"
Console.WriteLine("--- uCalc Transformer (Token-Aware & Correct) ---")
Dim t As New uCalc.Transformer()
t.Tokens.Add("//.*", TokenType.Whitespace)
'// Rule targets only the alphanumeric token 'rate'
t.FromTo("rate", "annual_rate")
Console.WriteLine(t.Transform(code))
Console.WriteLine("")
Console.WriteLine("--- Simulated Regex (Character-Aware & Incorrect) ---")
'// This simulates a simple find-and-replace for the word 'rate'
'// which incorrectly changes the string literal and comment.
Dim incorrect_result = "annual_rate = 0.05; print(""annual_rate""); // a annual_rate"
Console.WriteLine(incorrect_result)
End Sub
End Module
--- uCalc Transformer (Token-Aware & Correct) ---
annual_rate = 0.05; print("rate"); // a rate
--- Simulated Regex (Character-Aware & Incorrect) ---
annual_rate = 0.05; print("annual_rate"); // a annual_rate Imports System Imports uCalcSoftware Public Module Program Public Sub Main() Dim uc As New uCalc() Dim code = "rate = 0.05; print(""rate""); // a rate" Console.WriteLine("--- uCalc Transformer (Token-Aware & Correct) ---") Dim t As New uCalc.Transformer() t.Tokens.Add("//.*", TokenType.Whitespace) '// Rule targets only the alphanumeric token 'rate' t.FromTo("rate", "annual_rate") Console.WriteLine(t.Transform(code)) Console.WriteLine("") Console.WriteLine("--- Simulated Regex (Character-Aware & Incorrect) ---") '// This simulates a simple find-and-replace for the word 'rate' '// which incorrectly changes the string literal and comment. Dim incorrect_result = "annual_rate = 0.05; print(""annual_rate""); // a annual_rate" Console.WriteLine(incorrect_result) End Sub End Module