Это похоже на ошибку. Добавление паренов не помогает. Я пробовал различные обходные пути, но я не мог найти чистый путь. Вы должны сделать сообщение об ошибке.
Если у вас есть только одна функция (как в учебном примере), вы должны определить тип в прелюдии:
type floatFunction = float -> float
...
%token <floatFunction> FNCT
Если у вас много функций, вы также можете определить универсальный тип:
type functionType<'a, 'b> = 'a -> 'b
...
%token < ('a, 'b) functionType > FNCT
Любая угловая скобка в типе приводит к ошибке разбора (даже functionType<float,float>
).