2016-12-05 27 views
1

如何爲代碼塊編寫cfg? 我知道如何爲正則表達式編寫cfg,但是如果我們必須爲後續輸入寫入cfg,即表達式的上下文無關語法

int a = 0;

怎麼辦?

+0

取決於你的意思是'代碼塊'。例如C++不能用CFG來描述。 – Iluvatar

+0

@Ivvatar由'塊代碼',我的意思是一個C++代碼.. 謝謝btw! –

回答

1

現在堅持C.

一個塊由一個語句(一行,本質上)或一個花括號,一個變量聲明列表,一個語句或塊列表以及另一個花括號組成。

因此,首先假設int是唯一允許的變量類型,l表示不存在全局變量或參數,並且算術表達式(例如a = 2 * b + c;)的賦值是唯一允許的語句類型。

然後將if語句添加到您的語法中,然後while循環。最後用參數調用函數。然後你基本上已經獲得了C語言的語法,剩下的只是細節(當你最終加入它們的時候,你會發現C typedefs也有一個尷尬的問題)。