From af55f8e16188eaf2cd55f7358407d2a578708d61 Mon Sep 17 00:00:00 2001 From: konard Date: Sat, 13 Sep 2025 12:21:49 +0300 Subject: [PATCH 1/3] Initial commit with task details for issue #61 Adding CLAUDE.md with task information for AI processing. This file will be removed when the task is complete. Issue: https://github.com/linksplatform/RegularExpressions.Transformer.CSharpToCpp/issues/61 --- CLAUDE.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..b82cd3d --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,5 @@ +Issue to solve: https://github.com/linksplatform/RegularExpressions.Transformer.CSharpToCpp/issues/61 +Your prepared branch: issue-61-2f5c46ad +Your prepared working directory: /tmp/gh-issue-solver-1757755304830 + +Proceed. \ No newline at end of file From 83f7cbe9c3d96723e01e521dee08d2f70e0ab15d Mon Sep 17 00:00:00 2001 From: konard Date: Sat, 13 Sep 2025 12:34:04 +0300 Subject: [PATCH 2/3] 'Auto-commit changes made by Claude MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude ' --- .../CSharpToCppTransformer.cs | 3 +++ examples/test_constructor.cs | 11 +++++++++++ examples/test_transform.cs | 18 ++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 examples/test_constructor.cs create mode 100644 examples/test_transform.cs diff --git a/csharp/Platform.RegularExpressions.Transformer.CSharpToCpp/CSharpToCppTransformer.cs b/csharp/Platform.RegularExpressions.Transformer.CSharpToCpp/CSharpToCppTransformer.cs index 2f5dceb..0f075eb 100644 --- a/csharp/Platform.RegularExpressions.Transformer.CSharpToCpp/CSharpToCppTransformer.cs +++ b/csharp/Platform.RegularExpressions.Transformer.CSharpToCpp/CSharpToCppTransformer.cs @@ -230,6 +230,9 @@ public class CSharpToCppTransformer : TextTransformer // string // std::string (new Regex(@"(?\W)(?\W)"), "${before}std::string${after}", 0), + // Constructor(std::string param) { field = param; } + // Constructor(std::string param) : field(std::move(param)) { } + (new Regex(@"(?(private|protected|public): )?(?[a-zA-Z0-9_]+\((?[^)]*std::string [a-zA-Z0-9_]+[^)]*)\))\s*{\s*(?[a-zA-Z0-9_]+) = (?[a-zA-Z0-9_]+);\s*}"), "${access}${constructor} : ${field}(std::move(${param})) { }", 0), // System.ValueTuple // std::tuple (new Regex(@"(?\W)(System\.)?ValueTuple(?!\s*=|\()(?\W)"), "${before}std::tuple${after}", 0), diff --git a/examples/test_constructor.cs b/examples/test_constructor.cs new file mode 100644 index 0000000..df6dd87 --- /dev/null +++ b/examples/test_constructor.cs @@ -0,0 +1,11 @@ +using System; + +class TestClass +{ + private string field; + + public TestClass(string stringParam) + { + field = stringParam; + } +} \ No newline at end of file diff --git a/examples/test_transform.cs b/examples/test_transform.cs new file mode 100644 index 0000000..ce64bda --- /dev/null +++ b/examples/test_transform.cs @@ -0,0 +1,18 @@ +using Platform.RegularExpressions.Transformer.CSharpToCpp; + +var transformer = new CSharpToCppTransformer(); +var input = @"class TestClass +{ + private string field; + + public TestClass(string stringParam) + { + field = stringParam; + } +}"; + +Console.WriteLine("Input:"); +Console.WriteLine(input); +Console.WriteLine("\nOutput:"); +var result = transformer.Transform(input); +Console.WriteLine(result); \ No newline at end of file From ff49577eddd98ee61ea6c00dab79b2ac1d103372 Mon Sep 17 00:00:00 2001 From: konard Date: Sat, 13 Sep 2025 12:34:24 +0300 Subject: [PATCH 3/3] Remove CLAUDE.md - Claude command completed --- CLAUDE.md | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index b82cd3d..0000000 --- a/CLAUDE.md +++ /dev/null @@ -1,5 +0,0 @@ -Issue to solve: https://github.com/linksplatform/RegularExpressions.Transformer.CSharpToCpp/issues/61 -Your prepared branch: issue-61-2f5c46ad -Your prepared working directory: /tmp/gh-issue-solver-1757755304830 - -Proceed. \ No newline at end of file