我正在调查一个OCaml文件,我怀疑它应该是一个多态变量类型(我不知道OCaml,所以可能非常关闭):
type loc = Loc.t
and meta_bool =
[ BTrue
| BFalse
| BAnt of string ]
and rec_flag =
[ ReRecursive
| ReNil
| ReAnt of string ]
但是,根据OCaml的语法
polymorphic-variant-type
::= [ [ | ] tag-spec { | tag-spec } ]
∣ [> [ tag-spec ] { | tag-spec } ]
∣ [< [ | ] tag-spec-full { | tag-spec-full } [ > { `tag-name }+ ] ]
在[]
内,如果我们不使用反引号,我们就不能使用大写标识符。
tag-spec
不能是以大写字母开头的任何内容。
我是否正在查看正确的语法规则或此文件中还有其他内容?