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
				
					#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;
}
				
			
--- 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
				
			
--- 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