From 40154af7384f26f6d8ff05e215957da006799942 Mon Sep 17 00:00:00 2001 From: konard Date: Thu, 30 Oct 2025 05:24:43 +0100 Subject: [PATCH 1/3] Initial commit with task details for issue #13 Adding CLAUDE.md with task information for AI processing. This file will be removed when the task is complete. Issue: undefined --- 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..6ee0e8c --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,5 @@ +Issue to solve: undefined +Your prepared branch: issue-13-de7b8bf2 +Your prepared working directory: /tmp/gh-issue-solver-1761798275841 + +Proceed. \ No newline at end of file From d8cd6db3348e1d6c95709f22909616a4be72b22a Mon Sep 17 00:00:00 2001 From: konard Date: Thu, 30 Oct 2025 05:35:39 +0100 Subject: [PATCH 2/3] Add modern C++ main() entry point wrapper for Program class MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Transform C# Main() method to comply with modern C++ standards by: - Converting static Main method to instance method with std::vector args - Generating C++ main(int argc, char* argv[]) entry point - Adding exception handling with try-catch block - Using RAII pattern with Program instance This addresses issue #13 by following modern C++ practices as outlined in the referenced article about clean C++ code structure. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../CSharpToCppTransformerTests.cs | 19 +++++++++++++++++-- .../CSharpToCppTransformer.cs | 3 +++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/csharp/Platform.RegularExpressions.Transformer.CSharpToCpp.Tests/CSharpToCppTransformerTests.cs b/csharp/Platform.RegularExpressions.Transformer.CSharpToCpp.Tests/CSharpToCppTransformerTests.cs index edca381..8dcf2d8 100644 --- a/csharp/Platform.RegularExpressions.Transformer.CSharpToCpp.Tests/CSharpToCppTransformerTests.cs +++ b/csharp/Platform.RegularExpressions.Transformer.CSharpToCpp.Tests/CSharpToCppTransformerTests.cs @@ -26,11 +26,26 @@ public static void Main(string[] args) }"; const string expectedResult = @"class Program { - public: static void Main(std::string args[]) + public: + void Main(std::vector args) { printf(""Hello, world!\n""); } -};"; +}; + +int main(int argc, char* argv[]) +{ + Program program{}; + try + { + program.Main(std::vector(argv + 1, argv + argc)); + } + catch(...) + { + // Handle exception + } + return 0; +}"; var transformer = new CSharpToCppTransformer(); var actualResult = transformer.Transform(helloWorldCode); Assert.Equal(expectedResult, actualResult); diff --git a/csharp/Platform.RegularExpressions.Transformer.CSharpToCpp/CSharpToCppTransformer.cs b/csharp/Platform.RegularExpressions.Transformer.CSharpToCpp/CSharpToCppTransformer.cs index 2f5dceb..a526e26 100644 --- a/csharp/Platform.RegularExpressions.Transformer.CSharpToCpp/CSharpToCppTransformer.cs +++ b/csharp/Platform.RegularExpressions.Transformer.CSharpToCpp/CSharpToCppTransformer.cs @@ -634,6 +634,9 @@ public class CSharpToCppTransformer : TextTransformer // AppDomain.CurrentDomain.ProcessExit -= OnProcessExit; // /* No translation. It is not possible to unsubscribe from std::atexit. */ (new Regex(@"AppDomain\.CurrentDomain\.ProcessExit -= ([a-zA-Z_][a-zA-Z0-9_]*);"), "/* No translation. It is not possible to unsubscribe from std::atexit. */", 0), + // class Program { ... public: static void Main(std::string args[]) ... }; + // class Program { ... public: void Main(std::vector args) ... }; \n\nint main(int argc, char* argv[]) { ... } + (new Regex(@"(?class Program\s*\{(?:(?!\}\;).|\n)*?)public:\s*static\s+void\s+Main\(std::string\s+args\[\]\)(?(?:(?!\}\;).|\n)*\}\;)"), "${before}public:" + Environment.NewLine + " void Main(std::vector args)${after}" + Environment.NewLine + Environment.NewLine + "int main(int argc, char* argv[])" + Environment.NewLine + "{" + Environment.NewLine + " Program program{};" + Environment.NewLine + " try" + Environment.NewLine + " {" + Environment.NewLine + " program.Main(std::vector(argv + 1, argv + argc));" + Environment.NewLine + " }" + Environment.NewLine + " catch(...)" + Environment.NewLine + " {" + Environment.NewLine + " // Handle exception" + Environment.NewLine + " }" + Environment.NewLine + " return 0;" + Environment.NewLine + "}", 0), }.Cast().ToList(); /// From d9814e6526771b3b5106c89d617bba0c5961a035 Mon Sep 17 00:00:00 2001 From: konard Date: Thu, 30 Oct 2025 05:36:59 +0100 Subject: [PATCH 3/3] Revert "Initial commit with task details for issue #13" This reverts commit 40154af7384f26f6d8ff05e215957da006799942. --- 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 6ee0e8c..0000000 --- a/CLAUDE.md +++ /dev/null @@ -1,5 +0,0 @@ -Issue to solve: undefined -Your prepared branch: issue-13-de7b8bf2 -Your prepared working directory: /tmp/gh-issue-solver-1761798275841 - -Proceed. \ No newline at end of file