好吧,我正在寫一個函數作爲詞法分析器的一部分,它查找或搜索與關鍵字匹配的內容。我的詞法分析器捕獲所有顯而易見的標記,例如單字符和多字符運算符(+ - */> < = == etc
)(同時註釋和空白已被取出),因此我在將一串只包含字母數字字符(包括下劃線)的流收集到一個string
,那麼該字符串需要被匹配爲已知關鍵字或標識符。查找'最有效的方法'關鍵詞
所以我想知道如何去識別它?我知道我基本上需要將它與某些列表或數組或其他所有內置關鍵字進行比較,並且如果它匹配一個與它對應的枚舉值相匹配的返回值;否則,如果沒有匹配,那麼它必須是一個函數或變量標識符。那麼我應該如何尋找比賽?我在某處讀到,稱爲二進制搜索樹的東西是一種有效的方法,或者使用哈希表,問題是我從未使用過,因此我不確定它是否是正確的方式。我可以使用MySQL數據庫嗎?
http://stackoverflow.com/questions/479919/searching-fast-through -a-sorted-list-of-strings-in-c可能對你有幫助 – vrdhn 2010-09-21 04:21:46
使用MySQL在C++中進行關鍵字查找就像調用一個Web服務來執行兩個整數的加法一樣。 – pascal 2010-09-21 04:22:24