MediaWiki format很复杂,并且结合了各种范例和语法,据说如果没有php和MediaWiki本身就无法进行转换。
是否可以在Clang Rewriter上使用hackings将MediaWiki文本重写为HTML? Clang会以某种方式被黑客攻击以递归方式插入这些模板吗?
编辑: 我不期待一个完美的结果,只是想知道这是否合情合理。
答案 0 :(得分:0)
我怀疑Clang会有所帮助;它真的,真的,想要成为C语言的编译器。特别是,我知道它有一个手写的C / C ++ / ObjectiveC解析器,我怀疑尝试弯曲该解析器是否有任何意义。解析后,您需要表示程序; Clang的AST类确实非常适合对其目标语言进行建模。
我认为你想要的是一个程序转换系统。这些工具旨在让您为任意语言提供语法,并使用源到源重写进行更改。
我们的DMS软件再造工具包就是其中之一。它提供了非常强大的解析支持;它可以解析各种语言,包括IBM COBOL,Java,HTML,C ++和Verilog,以了解其范围。它一次接受多种语言定义;这允许您编写将一种语言映射到另一种语言的源到源转换,这似乎是您想要做的。 (源到源转换的想法非常有效,而其他PTS是纯粹的源到源,但实际上,实现一个纯粹的s-to-s的翻译工具有点尴尬;因为不是你的一切需要做的就是重写.DMS结合程序代码来计算推理和s-to-s以实现其效果。)
即使使用PTS,为复杂环境构建真正的翻译器(您似乎也想做)也不容易。比试图将错误的机器弯曲到工作上更加实用。
正如其他评论者所观察到的那样,您还需要对从MediaWiki输入到HTML的实际映射进行逆向工程。