fork download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text.RegularExpressions;
  6.  
  7. public class Test
  8. {
  9. public static void Main()
  10. {
  11. var text = @"(void)memcpy(&a[0],(void * )hihi, (UBYTE) V_SIZE);
  12. (void) memcpy((VOID*)abc, (const VOID*) dafa, (uint8)NUMBER_SIZE);
  13. (void )memcpy(
  14. (void *)p,
  15. &abc, (uint8)DATE_SIZE);
  16. ";
  17. var pattern = @"(?i)\(\s*((?:const\s+)?(?:u?(?:byte|int)\d*|void)(?:\s*\*)?)\s*\)\s*(\w+(?:\((?>[^()]+|(?<c>)\(|(?<-c>)\))*\))?)";
  18. string tmp = string.Empty;
  19. do
  20. {
  21. tmp = text;
  22. text = Regex.Replace(text, pattern, "static_cast<$1>($2)");
  23. }
  24. while (text != tmp);
  25. Console.WriteLine(text);
  26. }
  27. }
Success #stdin #stdout 0.09s 27980KB
stdin
Standard input is empty
stdout
static_cast<void>(memcpy(&a[0],static_cast<void *>(hihi), static_cast<UBYTE>(V_SIZE)));
static_cast<void>(memcpy(static_cast<VOID*>(abc), static_cast<const VOID*>(dafa), static_cast<uint8>(NUMBER_SIZE)));
static_cast<void>(memcpy(
        static_cast<void *>(p),
        &abc, static_cast<uint8>(DATE_SIZE)));