Грамматика
Предисловие
Этот раздел неофициально объясняет грамматические обозначения, используемые ниже.
Символы и наименования
Терминальные символьные имена начинаются с прописной буквы, например SimpleName . Нетерминальные символьные имена начинаются с строчной буквы, например kotlinFile . Каждое производство начинается с двоеточием ( : ). Определения символов могут иметь множество производств и заканчиваются точкой с запятой ( ; ). Определения символов могут быть добавлены с атрибутами , например, startатрибут обозначает символ начала.
РБНФ выражения
Оператор | означает альтернативу. Оператор * означает повторение (ноль или больше). Оператор + означает повторение (один или больше). Оператор ? означает вариант (ноль или один). альфа{бета} означает непустой бета-разделенный список альф. Оператор ++ значит что ни пробел ни комментарий не разрешен между операндами.