我正试图想出办法来处理大约一百万份正式文件(为了论证,他们是论文文件)。它们并非都是标准化的,但足够接近。它们是标题,部分,段落等。可能会出现微妙的差异,例如在英语中,我们称之为“标题”,但在法语中它是“Titre”。
因此在我看来,最好的方法是创建一个包含Title的所有可能组合的EBNF:= Title |比如Titre。
我不太关心提出EBNF。我主要关心的是如何实现解析。我看过ANTLR,OSLO,Irony以及其他一些人,但他们没有专业知识来判断他们是否适合我的任务。
所以,我对你学到的问题是
我选择的开发平台是C#。我提到这一点是因为理想情况下我想将DSL工具集成到代码中,以便我们可以从现有应用程序中使用它。