Поскольку явно никто за меня работу делать уже не собирается - просмотрел грамматику АО - вроде там тоже можно упразднить ";" и неоднозначностей не возникнет. Хотя, если уж об этом зашла речь, то T(V) и V(T) - это дичь какая-то в Обероне. Если ещё туда добавить операцию (), как сделали швейцарцы, то будет вообще полная помойка: нельзя будет совершенно ничего сказать про X и Y в выражении X(Y), не зная контекста. Надо сделать, чтобы было всегда или хотя бы почти всегда, за особыми очевидными исключениями, ясно: если написано X(Y), то X - это процедура, а Y - нет. Видимо насчёт Y всё равно ничего не выйдет - это может быть процедурная переменная, хотя почему же?

Т.е.: охранаТипа(V,T), преобр(V,T), ссылкаНаПроц(Процедура), вызови(ПроцедурнаяПеременная)

Но это к слову, из давних планов, до которых руки неведомо когда дойдут.