2010-05-11 55 views
0

對於學校項目,我需要爲用戶界面實現解析器(可能是基於XML的)標記語言。在此基礎上產生的各種UI組件(文字區域,輸入,面板,對話框等)的HTML文檔中輸入構建UI標記語言解析器的工具

你有工具/庫我可能會使用這個有什麼建議? (在學校我們使用Flex和Bison,但我們被允許使用現代工具 - 可能是一個具有lex和yacc功能的工具)

回答

2

如果您的輸入是建議的XML和您的輸出是HTML,那麼這就是XSLT的基本用例。 XML的整點是,你不必寫自己的解析器,因此,如果這是被作爲工作的工作,而不是作爲一個學校項目,這將是使用第一種方法來完成。如果你不能表達它的轉變,那麼你可能會看別處。

如果您不想使用XML,那麼純文本語言的現代工具包括parser expression grammars和DSL合成工具,例如Microsoft M

PEG使您不必單獨進行語法分析和語法分析,因此令牌可以是上下文敏感的,不會使語法複雜化(因爲很多令牌在很多語言中都是這樣),有些實現意味着您不必擔心左/正確的遞歸循環。

DSL合成工具將基於IDE的語法與運行時語義相結合。 Martin Fowler有一個book on DSLs on his site

但是,對於作爲轉換輸入的UI定義語言,可以通過SAX接口作爲XSLT處理器的輸入的XML或其他一些結構標準映射(JSON,YAML)爲第一個我會嘗試的事情。

+0

謝謝你的指導! – Dan 2010-05-11 11:40:22