我使用CL-Lex實現詞法分析器(作爲CL-YACC的輸入),我的語言有幾個關鍵字,如「let」和「in」。然而,雖然詞法分析器認識到這些關鍵字,但它確實太多了。當它找到諸如「init」的單詞時,它將第一個標記返回爲IN,而它應該爲「init」字返回一個「CONST」標記。強制CL-Lex讀取整個單詞
這是詞法分析器的簡單版本:
(define-string-lexer lexer
(...)
("in" (return (values :in [email protected])))
("[a-z]([a-z]|[A-Z]|\_)" (return (values :const [email protected]))))
如何強制詞法分析器,直到出現一些空白,充分閱讀整個單詞?
我終於找到了一個解決方案。我在''中使用'\ b'運算符圍繞''in'的第一個模式,就像這個''\ bin \ b「'一樣。這基本上迫使詞法分析器將「in」看作單詞。 – 2012-03-28 18:31:45