Видеокурсы по изучению языка программирования Swift. Подробнее

Справочник языка

Если вы нашли опечатку в тексте, выделите ее и нажмите CTRL + ENTER.

Этот раздел книги описывает формальную грамматику языка программирования Swift. Грамматика, описанная здесь, предназначена скорее для того, чтобы помочь вам более подробно понять язык, а не просто прямолинейно реализовывать анализатор или компилятор.

Язык Swift относительно небольшой, поскольку многие распространенные типы, функции и операторы, появляющиеся практически везде в коде Swift, фактически определены в стандартной библиотеке Swift. Хотя эти типы, функции и операторы не являются частью языка Swift, они широко используются в обсуждениях и примерах кода в этой части книги.

Как читать Грамматику

Для описания формальной грамматики языка программирования Swift используются следующие условные обозначения:

  • Стрелка (→) используется для обозначения грамматических производных и может быть прочитана как "может состоять из".
  • Синтаксические категории обозначены курсивом и расположены по обеим сторонам правила грамматической производной.
  • Слова и знаки препинания обозначаются полужирным текстом постоянной толщины и расположены только справа правила грамматической производной.
  • Альтернативные грамматические производные разделяются вертикальными чертами (|). Когда альтернативные производные слишком длинные для того, чтобы их было легко читать, они разбиваются на несколько правил грамматической производной в новых строках.
  • В некоторых случаях используется обычный шрифт текста для написания в правой части правила грамматической производной.
  • Дополнительные синтаксические категории и литералы обозначаются нижним индексом, opt.

В качестве примера, грамматика блока геттера-сеттера будет выглядеть следующим образом:

Грамматика блока геттера-сеттера

getter-setter-block getter-clause setter-clause­opt­ | setter-clause ­getter-clause­

Это определение указывает на то, что блок геттера-сеттера может состоять из getter clause, за которым следует опциональный setter clause, заключенный в скобки, или setter clause, за которым следует getter clause в скобках. Приведенное выше правило эквивалентно следующим двум производным, где альтернативы явно прописаны:

Грамматика блока геттера-сеттера

getter-setter-block getter-clause­ setter-clause­opt­
getter-setter-block setter-clause­ getter-clause­

Swift: 
4.0