Грамматика

Предисловие

Этот раздел неофициально объясняет грамматические обозначения, используемые ниже.

Символы и наименования

Терминальные символьные имена начинаются с прописной буквы, например SimpleName . Нетерминальные символьные имена начинаются с строчной буквы, например kotlinFile . Каждое производство начинается с двоеточием ( : ). Определения символов могут иметь множество производств и заканчиваются точкой с запятой ( ; ). Определения символов могут быть добавлены с атрибутами , например, startатрибут обозначает символ начала.

EBNF expressions

Operator | denotes alternative. Operator * denotes iteration (zero or more). Operator + denotes iteration (one or more). Operator ? denotes option (zero or one). alpha{beta} denotes a nonempty beta-separated list of alpha's. Operator ++ means that no space or comment is allowed between operands.