2013-01-17 24 views
0

MediaWiki format複雜和各種範式和語法結合,有人說是不可能的,而不PHP和鏈接到MediaWiki本身轉換。Hacking Clang的重寫?

是否有可能改寫鏈接到MediaWiki文本轉換成HTML與鏘重寫hackings? Clang能否以某種方式被黑客遞歸插入這些模板?

編輯: 我不期待一個完美的結果,只是想知道這可能是合理的。

+0

這不是不可能的,但如果你想擁有與維基百科完全相同的輸出,那將是非常困難的。 (你確實需要這樣做,因爲有些模板依賴於確切的規則。)並且我懷疑Clang Rewriter(儘管我不知道那是什麼)會改變這一切。 – svick

+0

Clang是不是打算使用C/C++/ObjC代碼? Mediawiki格式和HTML不是C/C++代碼。 – osgx

+0

這就是爲什麼我問是否有可能將它接受爲接受這些。而MediaWiki格式不是HTML,但將其重寫爲HTML確實需要一個健壯的解析器,該解析器是Clang提供的。 – ZhangChn

回答

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的實際映射。

+0

是不是維基百科的開源代碼?爲什麼你不能只使用他們正在使用的東西? –