如何在其他过程代码中使用文本格式

本文关键字:文本 格式 代码 其他 过程 | 更新日期: 2023-09-27 18:24:54

这个问题听起来很琐碎,但让我来解释一下我的场景。

我使用的是面向对象编程语言(C#),大多数实际执行代码都是过程性的,即一系列语句,有时是分支和循环。相当标准。

现在,我面临着一项处理文本格式(PGN,但它可以是任何其他格式,如VCard或一些自定义格式)的任务。至少对我来说,使用它的"标准"方法是使用以下组合:

  • 正则表达式
  • if/switch语句
  • for循环
  • 将regexp匹配存储到某种自定义结构中和/或将其输出为某种结果格式

然而,我一点也不喜欢这种过程化的方法——正则表达式容易出错,代码通常很难理解和调试,它通常具有相当高的圈复杂度等。

简单地说,我希望它是声明性的,但我不知道该使用什么工具或库。

我记得当我看到"M"语言的演示时,我认为这正是我想要的。有一种简单的方法可以声明我的文本格式的语法,然后该工具会自动将输入字符串解析为文本DSL的内存表示,我认为也可以将格式转换为其他格式。

我还与JetBrains MPS背后的人保持了联系,这是另一种使用DSL的工具,但我的场景似乎与他们试图提供的并不完美匹配。

因此,如果有人知道如何在其他过程代码库中优雅地处理文本格式,我很乐意了解这些选项。

如何在其他过程代码中使用文本格式

查看我的开源项目meta#。我觉得这听起来正是你想要的。