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