对于具有关键字的语言,需要发生一些特殊的技巧来防止例如“if”被解释为标识符,以及“ifSomeVariableName”在令牌流中成为关键字“if”后跟标识符“SomeVariableName”。
对于递归下降和 Lex/Yacc,我只是采用了在词法分析器和解析器之间转换令牌流的方法(根据有用的指令)。
但是,FParsec 似乎并没有真正做一个单独的词法分析器步骤,所以我想知道处理这个问题的最佳方法是什么。说到这里,Haskell 的 Parsec 似乎支持词法分析器层,但 FParsec 不支持?