Spec-Zone.ru › Swift Language

О справочнике языка

Прочитайте обозначения, используемые формальной грамматикой.

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

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

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

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

  • Стрелка (→) используется для обозначения грамматических правил и может читаться как «может состоять из».
  • Синтаксические категории обозначены курсивом и появляются с обеих сторон правила грамматики.
  • Буквальные слова и знаки препинания обозначены boldface constant width и появляются только в правой части правила грамматики.
  • Альтернативные грамматические правила разделяются вертикальной чертой (|). Когда альтернативные правила слишком длинные для удобного чтения, они разбиваются на несколько правил грамматики на новых строках.
  • В некоторых случаях обычный шрифт используется для описания правой части правила грамматики.
  • Необязательные синтаксические категории и литералы отмечаются заключительным вопросительным знаком, ?.

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

Грамматика блока getter-setter:

getter-setter-block → { getter-clause setter-clause_?_ } | { setter-clause getter-clause }

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

Грамматика блока getter-setter:

getter-setter-block → { getter-clause setter-clause_?_ }
getter-setter-block → { setter-clause getter-clause }

This source file is part of the Swift.org open source project
Copyright © 2014 - 2025 Apple Inc. and the Swift project authors
Licensed under Apache License v2.0 with Runtime Library Exception

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API