我需要開發,將閱讀和理解的文本文件中,我會發現,說明操作的列表(即烹調菜單)的自定義語言的應用程序。這種語言尚未定義還,但它可能會採取以下形狀之一:解讀定製語言
- C++等代碼
(該代碼被隨機產生的,只是舉例的目的):
begin
repeat(10)
{
bar(toto, 10, 1999, xxx);
}
result = foo(xxxx, 10);
if(foo == ok)
{
...
}
else
{
...
}
end
- XML代碼
(該代碼被隨機產生的,只是舉例的目的):
<recipe>
<action name="foo" argument"bar, toto, xxx" repeat=10/>
<action name="bar" argument"xxxxx;10" condition="foo == ok">
<true>...</true>
<false>...</false>
</action>
</recipe>
無論哪種語言將被選擇,有將具有處理簡單的條件,循環。
我從來沒有這樣的事,但乍一看,它發生,我認爲描述這些操作轉換成XML將simplier又那麼強大。
瀏覽完StackOverFlow之後,我發現了一些名爲「ANTLR」的工具......我開始閱讀「The Definitive ANTLR Reference」,但由於我從來沒有做過這種東西,我很難知道是否它是真正的一種工具,我需要的...
換句話說,做什麼我需要閱讀的文本文件,正確解釋並執行我的C#代碼的行爲。這些操作將通過簡單條件進行相互作用,例如:
- 如果operation1失敗,則執行operation2 else operation3。
- 重複操作4 10次。
什麼是最好的語言來描述這些文本文件(XML,我自己的)?這些發展過程中的關鍵點是什麼?
我希望我是明確的:)
非常感謝您的幫助和建議!
我不會說XML不那麼強大,只是更羅嗦。一旦C++語言被解析到表達式樹中,它可以很容易地轉換成XML而不會失去電源。 – MerickOWA 2011-01-07 15:22:29
是的,我害怕遇到循環,條件等方面的困難......正如Moo-Juice所說,我很難將XML看作一種描述邏輯的語言......我認爲它更像是一種描述靜態structre ...我錯了嗎? – 2011-01-12 10:05:49