OP(痛苦地)了解到,正则表达式不是解决涉及软件分析或翻译的问题的好方法。处理字符串与构建具有复杂结构的文本的上下文相关分析不同。
人们不断地重新学习这一课。的确,您可以使用重复的正则表达式来模拟 Post 重写系统,并且 Post 系统具有图灵能力,在技术上可以做任何事情。确实没有人真正想要,或者更重要的是,没有人可以为真正的图灵机 [或等效的 Post 系统] 编写非常复杂的程序。这就是我们拥有所有其他计算机语言和工具的原因。[OP 所指的 TextMaestro 系统正试图完全成为 Post 系统。]
然而,他想做的任务是可能的,并且使用适当的工具是可行的:程序转换系统(PTS)。
特别是,他应该看到这篇技术论文,以准确描述如何使用一个特定的 PTS 做到这一点:看到来自香肠的猪吗?通过 FermaT 转换从汇编程序重新设计为C。这种工具实际上是从汇编源代码到目标语言的自定义编译器,包括解析、名称(标签)解析、通常是数据流分析以及复杂的代码生成和优化。使用 PTS 是因为它们使构建这种编译器相对容易。该工具至少已用于英特尔汇编到 C,大型机(系统 360/370/Z)汇编到 C,用于大规模任务。(我与这个工具没有关系,但对作者非常尊重)。
评论中的反对者似乎认为这是不可能做到的,除非在极其有限的情况下。诚然,对汇编代码的习语了解越多,这就越容易,但本文中的技术方法无论如何都不限于特定的编译器输出。确实,真正晦涩难懂的汇编代码(尤其是自修改或具有运行时代码生成)极难翻译。