当我生成一个 .ml 文件时,ocamllex
它有一堆行,例如:
# 21 "lib/myproj/example.ml"
这些看起来像评论,除了 OCaml 中的 AFAIK 评论就像(* this is a comment *)
VS Code 似乎也不将它们视为注释。
这是什么语法?他们在做什么?
当我生成一个 .ml 文件时,ocamllex
它有一堆行,例如:
# 21 "lib/myproj/example.ml"
这些看起来像评论,除了 OCaml 中的 AFAIK 评论就像(* this is a comment *)
VS Code 似乎也不将它们视为注释。
这是什么语法?他们在做什么?
这些是“行号指令”:
https://ocaml.org/manual/lex.html#sss:lex-linedir
生成 OCaml 源代码的预处理器可以在其输出中插入行号指令,以便编译器生成的错误消息包含在预处理之前而不是在预处理之后引用源文件的行号和文件名。