從Text.Parsec.Token: lexeme p = do { x <- p; whiteSpace; return x }
看來,語義需要一個解析器P和提供具有相同行爲爲p解析器,但它也跳過所有尾隨的空白。正確? 那爲什麼下面不工作:在下面的錯誤消息 constant :: Parser Int
constant = do
digits <- many1 digit
我試圖做一些測試與自定義正則表達式引擎,但我厭倦了手工出寫的NFA的初步解釋,所以我試着讓一個解析器成功一點點。通常當人們解析一個正則表達式時,他們會創建多箇中間結構,最終轉換成最終的機器。對於我簡單的NFA定義,我相信解析實際上可以一次完成,儘管我還沒有確定(a)爲什麼它實際上不能或(b)怎麼做,雖然我的解析器可以解析非常簡單聲明。 的(簡化的)狀態的實體一樣定義,以便[1]: type Tag