2013-10-19 55 views
-2

我的目標是實現Ç語言的一個很簡單的詞法分析,當你讀一個表達式AB = 3,那麼它會如分析如下:詞法分析部分:分析:作爲一個經營者,而不是分離

ID<ab> OP<=> LIT<8> (op will be "operator",LIT will be "literal"). 

還有一種情況,當你閱讀的表達一個? b:c。通常它會被分析爲

ID<a> SEP<?> ID<b> SEP<:> ID<c>". 

但我們知道它實際上是三元運算符。所以上面列出的分析是不正確的。

現在我只想引用編譯器如gcc,g ++並檢查這些編譯器如何實現詞法分析?任何人都可以給我一個建議?

+0

所以,如果你想它作爲一個操作符,你爲什麼要掃描它作爲分隔符?這裏有什麼問題? – EJP

+0

因爲我從其他人處獲得此資源。兩個「?」和「:」被默認處理爲分隔符。 – ryu

回答

0

是什麼讓詞法分析器輸出不正確?你在思考太多,試圖解決詞法分析器中的解析問題。如果你真的喜歡,你可以改變?成爲一個運算符(因爲它應該在這種情況下),但最終它並不重要,只需使用已定義爲令牌的終端進行分析即可。

+0

是的,你是對的。因爲我是這個項目的新手,還是無法區分詞法分析器和語法分析器的用法。到目前爲止,解決這類問題還有一點時間。我稍後會再檢查一次。 – ryu