Я пробовал пример из официального руководства Isabelle. Я заменил #
на :
и @
с ++
, чтобы иметь тот же синтаксис, что и Haskell. Теперь я получаю предупреждения о двусмысленности в АСТ. Я знаю, что я могу скрывать функции с hide_const
, но это не работает для операторов в нотации infix. Как я могу скрыть операторов в Изабель?скрывать операторов, чтобы избежать двусмысленности в AST
Точное предупреждающее сообщение:
Ambiguous input⌂ produces 2 parse trees:
("\<^const>HOL.Trueprop"
("\<^const>HOL.eq" ("\<^const>Map.map_add" ("/<^const>toylist.list.Nil") ("_position" ys))
("_position" ys)))
("\<^const>HOL.Trueprop"
("\<^const>HOL.eq" ("\<^fixed>app" ("\<^const>toylist.list.Nil") ("_position" ys)) ("_position" ys)))
Fortunately, only one parse tree is well-formed and type-correct,
but you may still want to disambiguate your grammar or your input.
Очень хорошее объяснение. Большое спасибо Андреасу. – SvenK
Я принял ваш ответ, потому что вы указали на последствия изменения синтаксиса по умолчанию. – SvenK