我正在使用 F# 的 FsLex 来生成词法分析器。我很难从教科书中理解以下两行。为什么换行符 (\n) 的处理方式与空格不同?特别是,“lexbuf.EndPos <- lexbuf.EndPos.NextLine”与“Tokenize lexbuf”有何不同?
rule Tokenize = parse
| [' ' '\t' '\r'] { Tokenize lexbuf }
| '\n' { lexbuf.EndPos <- lexbuf.EndPos.NextLine; Tokenize lexbuf }