0

Stream.Error当解析器内部发生 a 时,如何显示位置信息?例如:

let p = parser
  | [< '1; '2 ?? "1 expected at line L, column C" >] -> ()

如何获取流中的位置?有没有办法Stream.count不用手动计算换行符?

4

1 回答 1

0

您必须手动建立职位(Lexing.position例如表示)。不过,我不会触及词法分析器/解析器本身,而是编写一个简单的函数,将文件偏移量(用 表示Stream.count)转换为(行、列)坐标系。

于 2019-02-01T13:21:33.757 回答