Сводка грамматики
Операторы
Грамматика оператора
оператор
→ выражение -;
выберите -
оператор
→ объявление -;
выберите -
оператор
→ оператор цикла -;
выберите -
оператор
→ оператор ответвления -;
выберите -
оператор
→ маркированный оператор -;
выберите -
оператор
→ оператор передачи управления -;
выберите -
операторы → «операторы оператора выбирают»
Грамматика инструкции циклов
инструкция циклов → для оператора -
инструкция циклов → для в операторе -
инструкция циклов → в-то-время-как-оператор -
инструкция циклов → «делает в то время как оператор»
Грамматика для оператора
→ для оператора for
for-init-opt-;
«выражение выбирает»;
«выражение выбирает блок кода»
→ для оператора for
(
for-init-opt-;
«выражение выбирает»;
«выражение выбирает»)
блок кода -
для - init → переменное объявление - список выражения -
Грамматика для - в операторе
для в операторе
→ for
образец -in
блок кода выражения -
Грамматика некоторое время оператора
в-то-время-как-оператор
→ while
«в то время как блок кода условия»
в-то-время-как-условие → выражение - «выражение выбирает дополнительный обязательный список»
дополнительный обязательный список
→
дополнительный обязательный пункт -
дополнительный обязательный пункт -,
дополнительный обязательный список -
дополнительный обязательный пункт → «дополнительный обязательный главный дополнительный обязательный список продолжения выбирает, защитный пункт выбирает»
дополнительная обязательная голова
→
let
инициализатор образца идентификатора -
var
инициализатор образца идентификатора -
дополнительное обязательное продолжение перечисляет
→
дополнительное обязательное продолжение -
дополнительное обязательное продолжение -,
«дополнительный обязательный список продолжения»
дополнительное обязательное продолжение → инициализатор образца идентификатора - дополнительная обязательная голова -
Грамматика - в то время как оператор
Грамматика оператора ветвления
оператор ветвления → если-оператор -
оператор ветвления → оператор переключателя -
Грамматика, если оператор
оператор «if»
→ if
«если выбирает блочное выражение else кода условия»
если-условие → выражение - «выражение выбирает дополнительный обязательный список»
выражение else
→
else
блок кода -
else
если-оператор -
Грамматика оператора переключения
оператор переключения
→ switch
выражение -{
«случаи переключателя выбирают»}
случаи переключателя → «случаи переключателя случая переключателя выбирают»
случай переключателя → операторы метки случая - операторы метки по умолчанию -
случай переключателя
→
метка случая -;
метка по умолчанию -;
метка случая
→ case
список элемента случая -:
список элемента случая
→
«защитный пункт образца выбирает» «защитный пункт образца, выбирают»
,
список элемента случая -
защитный пункт
→ where
защитное выражение -
защитное выражение → выражение -
Грамматика помеченного оператора
помеченный оператор → инструкция циклов метки оператора - оператор переключения метки оператора -
метка оператора
→ имя метки -:
имя метки → идентификатор -
Грамматика управления передает оператор
оператор передачи управления → оператор повреждения -
оператор передачи управления → продолжать-оператор -
оператор передачи управления → fallthrough-оператор -
оператор передачи управления → оператор возврата -
Грамматика оператора завершения
оператор завершения
→ break
«имя метки выбирает»
Грамматика продолжать оператора
продолжать-оператор
→ continue
«имя метки выбирает»
Грамматика оператора возврата
оператор возврата
→ return
«выражение выбирает»
Универсальные параметры и параметры
Грамматика универсального пункта параметра
универсальный пункт параметра
→ <
«универсальный пункт требования списка параметров выбирает»>
универсальный список параметров
→
универсальный параметр -
универсальный параметр -,
универсальный список параметров -
универсальный параметр → имя типа -
универсальный параметр
→ имя типа -:
идентификатор типа -
универсальный параметр
→ имя типа -:
тип состава протокола -
пункт требования
→ where
список требования -
список требования
→
требование -
требование -,
список требования -
требование → требование соответствия - «то же требование типа»
требование соответствия
→ идентификатор типа -:
идентификатор типа -
требование соответствия
→ идентификатор типа -:
тип состава протокола -
«то же требование типа
» → идентификатор типа -==
введите -
Грамматика универсального пункта параметра
универсальный пункт параметра
→ <
универсальный список аргументов ->
универсальный список аргументов
→
универсальный параметр -
универсальный параметр -,
универсальный список аргументов -
универсальный параметр → тип -
Объявления
Грамматика объявления
объявление → объявление импорта -
объявление → постоянное объявление -
объявление → переменное объявление -
объявление → typealias-объявление -
объявление → функциональное объявление -
объявление → перечислимое объявление -
объявление → объявление структуры -
объявление → объявление класса -
объявление → объявление протокола -
объявление → объявление инициализатора -
объявление → deinitializer-объявление -
объявление → дополнительное объявление -
объявление → нижнее объявление -
объявление → объявление оператора -
объявления → «объявления объявления выбирают»
Грамматика объявления верхнего уровня
высокоуровневое объявление → «операторы выбирает»
Грамматика блока кода
блок кода
→ {
«операторы выбирают»}
Грамматика объявления импорта
объявление импорта
→ «атрибуты выбирает»import
«вид импорта выбирает путь импорта»
вид импорта
→
typealias
struct
class
enum
protocol
var
func
путь импорта
→
идентификатор пути импорта -
идентификатор пути импорта -.
путь импорта -
идентификатор пути импорта → идентификатор - оператор -
Грамматика объявления константы
объявление константы
→ «атрибуты выбирает, модификаторы объявления выбирают»let
список инициализатора образца -
список инициализатора образца
→
инициализатор образца -
инициализатор образца -,
список инициализатора образца -
инициализатор образца → «инициализатор образца выбирает»
инициализатор
→ =
выражение -
Грамматика объявления переменной
объявление переменной → «объявление переменной возглавляет список инициализатора образца»
объявление переменной → «объявление переменной возглавляет блок кода аннотации типа имени переменной»
объявление переменной → «объявление переменной возглавляет блок метода set метода get аннотации типа имени переменной»
объявление переменной → «объявление переменной возглавляет блок ключевого слова метода set метода get аннотации типа имени переменной»
объявление переменной variable-declaration-head-variable-name-initializer-willSet-didSet-block-
объявление переменной variable-declaration-head-variable-name-type-annotation-initializer-opt-willSet-didSet-block-
голова объявления переменной
→ «атрибуты выбирает, модификаторы объявления выбирают»var
имя переменной → идентификатор -
блок метода set метода get
→ {
«пункт метода set пункта метода get выбирает»}
блок метода set метода get
→ {
«пункт метода get пункта метода set»}
пункт метода get
→ «атрибуты выбирает»get
блок кода -
пункт метода set
→ «атрибуты выбирает»set
«имя метода set выбирает блок кода»
имя метода set
→ (
идентификатор -)
ключевое слово метода set метода get блокирует
→ {
«пункт ключевого слова метода set пункта ключевого слова метода get выбирает»}
ключевое слово метода set метода get блокирует
→ {
«пункт ключевого слова метода get пункта ключевого слова метода set»}
пункт ключевого слова метода get
→ «атрибуты выбирает»get
пункт ключевого слова метода set
→ «атрибуты выбирает»set
willSet-didSet-block
{
willSet-clause-didSet-clause-opt-}
willSet-didSet-block
{
didSet-clause-willSet-clause-opt-}
willSet-пункт
→ «атрибуты выбирает»willSet
«имя метода set выбирает блок кода»
didSet-пункт
→ «атрибуты выбирает»didSet
«имя метода set выбирает блок кода»
Грамматика объявления альтернативного имени типа
typealias-объявление → typealias-head-typealias-assignment-
typealias-возглавьте
→ «атрибуты выбирают, модификатор уровня доступа выбирает»typealias
typealias-имя -
typealias-назовите → идентификатор -
typealias-присвоение
→ =
введите -
Грамматика объявления функции
объявление функции → «функциональное главное имя функции универсальный пункт параметра выбирает функциональное тело функции подписи»
функциональная голова
→ «атрибуты выбирает, модификаторы объявления выбирают»func
имя функции → идентификатор - оператор -
функциональная подпись → «результат функции пунктов параметра выбирает»
функциональный результат
→ ->
«атрибуты выбирают тип»
тело функции → блок кода -
пункты параметра → «пункты параметра пункта параметра выбирают»
пункт параметра
→
(
)
(
список параметра -...
выберите -)
список параметров
→
параметр -
параметр -,
список параметра -
параметр
→ inout
выберите -let
выберите -#
«выберите, внешнее название параметра выбирает, локальный пункт параметра по умолчанию аннотации типа названия параметра выбирает»
параметр
→ inout
выберите -var
#
«выберите, внешнее название параметра выбирает, локальный пункт параметра по умолчанию аннотации типа названия параметра выбирает»
параметр → «атрибуты выбирает тип»
внешнее название параметра
→
идентификатор -
_
локальное название параметра
→
идентификатор -
_
пункт параметра по умолчанию
→ =
выражение -
Грамматика объявления перечисления
перечислимое объявление → «атрибуты выбирает, модификатор уровня доступа выбирает перечисление стиля объединения»
перечислимое объявление → «атрибуты выбирает, модификатор уровня доступа выбирает, необработанное значение разрабатывает перечисление»
перечисление стиля объединения
→ enum
«универсальный пункт параметра имени перечисления выбирает, пункт наследования типа выбирает»{
«перечислимые элементы стиля объединения выбирают»}
элементы перечисления стиля объединения → «задействованные элементы перечисления стиля объединения перечисления стиля объединения выбирают»
элемент перечисления стиля объединения → объявление - «пункт случая перечисления стиля объединения»
пункт случая перечисления стиля объединения
→ «атрибуты выбирает»case
«объединение разрабатывает перечислимый список случая»
случай перечисления стиля объединения перечисляет
→
«случай перечисления стиля объединения» «случай перечисления стиля объединения»
,
«объединение разрабатывает перечислимый список случая»
случай перечисления стиля объединения → «перечислимый тип «кортеж» имени случая выбирает»
перечислимое имя → идентификатор -
перечислимое имя случая → идентификатор -
необработанное перечисление стиля значения
→ enum
«универсальный пункт параметра имени перечисления выбирает пункт наследования типа»{
«необработанное значение разрабатывает перечислимые элементы»}
необработанные элементы перечисления стиля значения → «перечислимые элементы стиля значения сырых данных перечислимого элемента стиля необработанного значения выбирают»
необработанный элемент перечисления стиля значения → объявление - «необработанное значение разрабатывает перечислимый пункт случая»
необработанный пункт случая перечисления стиля значения
→ «атрибуты выбирает»case
«необработанное значение разрабатывает перечислимый список случая»
необработанный случай перечисления стиля значения перечисляет
→
«перечислимый случай стиля необработанного значения» «перечислимый случай стиля необработанного значения»
,
«необработанное значение разрабатывает перечислимый список случая»
необработанный случай перечисления стиля значения → «перечислимое присвоение значения сырых данных имени случая выбирает»
необработанное присвоение значения
→ =
необработанный литерал значения -
необработанный литерал значения → числовой литерал - строковый литерал - булев литерал -
Грамматика описания структуры
объявление структуры
→ «атрибуты выбирает, модификатор уровня доступа выбирает»struct
«универсальный пункт параметра имени структуры выбирает, пункт наследования типа выбирает организация структуры»
имя структуры → идентификатор -
организация структуры
→ {
«объявления выбирают»}
Грамматика объявления класса
объявление класса
→ «атрибуты выбирает, модификатор уровня доступа выбирает»class
«имя класса, универсальный пункт параметра выбирает пункт наследования типа, выбирает организация класса»
имя класса → идентификатор -
организация класса
→ {
«объявления выбирают»}
Грамматика объявления протокола
объявление протокола
→ «атрибуты выбирает, модификатор уровня доступа выбирает»protocol
«пункт наследования типа имени протокола выбирает организация протокола»
имя протокола → идентификатор -
организация протокола
→ {
«объявления элемента протокола выбирают»}
объявление элемента протокола → объявление свойства протокола -
объявление элемента протокола → объявление метода протокола -
объявление элемента протокола → объявление инициализатора протокола -
объявление элемента протокола → нижнее объявление протокола -
объявление элемента протокола → связанное описание типа протокола -
объявления элемента протокола → «объявления элемента протокола объявления элемента протокола выбирают»
Грамматика объявления свойства протокола
объявление свойства протокола → «объявление переменной возглавляет блок ключевого слова метода set метода get аннотации типа имени переменной»
Грамматика объявления метода протокола
объявление метода протокола → «функциональное главное имя функции универсальный пункт параметра выбирает функциональная подпись»
Грамматика объявления инициализатора протокола
объявление инициализатора протокола → «инициализатор возглавляет, универсальный пункт параметра выбирают пункт параметра»
Грамматика протокола преобразовывает объявление в нижний индекс
нижнее объявление протокола → «преобразовывает главный нижний блок ключевого слова метода set метода get результата в нижний индекс»
Грамматика протокола связала описание типа
протокол связал описание типа → typealias-head-type-inheritance-clause-opt-typealias-assignment-opt-
Грамматика объявления инициализатора
объявление инициализатора → «инициализатор возглавляет, универсальный пункт параметра выбирают организация инициализатора пункта параметра»
голова инициализатора
→ «атрибуты выбирает, модификаторы объявления выбирают»init
голова инициализатора
→ «атрибуты выбирает, модификаторы объявления выбирают»init
?
голова инициализатора
→ «атрибуты выбирает, модификаторы объявления выбирают»init
!
организация инициализатора → блок кода -
Грамматика deinitializer объявления
Грамматика объявления расширения
объявление расширения
→ «модификатор уровня доступа выбирает»extension
«пункт наследования типа идентификатора типа выбирает дополнительная организация»
дополнительная организация
→ {
«объявления выбирают»}
Грамматика нижнего объявления
нижнее объявление → «преобразовывает главный нижний блок кода результата в нижний индекс»
нижнее объявление → «преобразовывает главный нижний блок метода set метода get результата в нижний индекс»
нижнее объявление → «преобразовывает главный нижний блок ключевого слова метода set метода get результата в нижний индекс»
нижняя голова
→ «атрибуты выбирает, модификаторы объявления выбирают»subscript
пункт параметра -
Грамматика объявления оператора
объявление оператора → объявление префиксного оператора - объявление постфиксного оператора - объявление инфиксного оператора -
объявление префиксного оператора
→ prefix
operator
оператор -{
}
объявление постфиксного оператора
→ postfix
operator
оператор -{
}
объявление инфиксного оператора
→ infix
operator
оператор -{
«атрибуты инфиксного оператора выбирают»}
атрибуты инфиксного оператора → «пункт приоритета выбирают, пункт ассоциативности выбирает»
пункт приоритета
→ precedence
уровень приоритета -
уровень приоритета → десятичное целое число между 0 и 255, включительно
пункт ассоциативности
→ associativity
ассоциативность -
Грамматика модификатора объявления
модификатор объявления
→
class
convenience
dynamic
final
infix
lazy
mutating
nonmutating
optional
override
postfix
prefix
required
static
unowned
unowned
(
safe
)
unowned
(
unsafe
)
weak
модификатор объявления → модификатор уровня доступа -
модификаторы объявления → «модификаторы объявления модификатора объявления выбирают»
модификатор уровня доступа
→
internal
internal
(
set
)
модификатор уровня доступа
→
private
private
(
set
)
модификатор уровня доступа
→
public
public
(
set
)
модификаторы уровня доступа → «модификаторы уровня доступа модификатора уровня доступа выбирают»
Образцы
Грамматика образца
образец → «подстановочная аннотация типа образца выбирает»
образец → «аннотация типа образца идентификатора выбирает»
образец → обязательный образец значения -
образец → «аннотация типа образца кортежа выбирает»
образец → перечислимый образец случая -
образец → образец преобразования типа -
образец → образец выражения -
Грамматика образца идентификатора
образец идентификатора → идентификатор -
Грамматика связывающего значение образца
Грамматика образца кортежа
образец кортежа
→ (
«список элемента рисунка кортежа выбирает»)
элемент образца кортежа перечисляет
→
элемент рисунка кортежа -
элемент рисунка кортежа -,
«список элемента рисунка кортежа»
элемент рисунка кортежа → образец -
Грамматика образца случая перечисления
перечислимый образец случая
→ «идентификатор типа выбирает».
«перечислимый образец кортежа имени случая выбирает»
Грамматика образца преобразования типа
образец преобразования типа → -образец - поскольку-образец -
-образец
→ is
введите -
Грамматика характера экспрессии
характер экспрессии → выражение -
Атрибуты
Грамматика атрибута
атрибут
→ @
«пункт параметра атрибута названия атрибута выбирает»
название атрибута → идентификатор -
пункт параметра атрибута
→ (
«сбалансированные маркеры выбирают»)
сбалансированные маркеры → «сбалансированный маркер балансировались, маркеры выбирают»
сбалансированный маркер
→ (
«сбалансированные маркеры выбирают»)
сбалансированный маркер
→ [
«сбалансированные маркеры выбирают»]
сбалансированный маркер
→ {
«сбалансированные маркеры выбирают»}
сбалансированный маркер → Любой идентификатор, ключевое слово, литерал или оператор
сбалансированный маркер
→ Любая пунктуация кроме (
, )
, [
, ]
, {
, или }
Выражения
Грамматика выражения
выражение → «префиксные двоичные выражения выражения выбирает»
список выражений
→
выражение -
выражение -,
список выражения -
Грамматика префиксного выражения
префиксное выражение → «префиксный оператор выбирает постфиксное выражение»
префиксное выражение → «в выражении»
«в выражении
» → &
идентификатор -
Грамматика двоичного выражения
двоичное выражение → «бинарный оператор снабжает префиксом выражение»
двоичное выражение → «оператор присваивания снабжает префиксом выражение»
двоичное выражение → «условный оператор снабжает префиксом выражение»
двоичное выражение → оператор преобразования типа -
двоичные выражения → «двоичные выражения двоичного выражения выбирают»
Грамматика условного оператора
условный оператор
→ ?
выражение -:
Грамматика оператора преобразования типа
Грамматика первичного выражения
первичное выражение → «идентификатор универсальный пункт параметра выбирает»
первичное выражение → литеральное выражение -
первичное выражение → самовыражение -
первичное выражение → выражение суперкласса -
первичное выражение → выражение закрытия -
первичное выражение → заключенное в скобки выражение -
первичное выражение → неявное задействованное выражение -
первичное выражение → подстановочное выражение -
Грамматика литерала
литерал → литерал -
литерал → литерал массива - литерал словаря -
литерал массивов
→ [
«элементы литерала массивов выбирают»]
элементы литерала массивов
→
элемент литерала массивов -,
выберите -
элемент литерала массивов -,
элементы литерала массивов -
элемент литерала массивов → выражение -
литерал словаря
→
[
литеральные элементы словаря -]
[
:
]
литеральные элементы словаря
→
литеральный элемент словаря -,
выберите -
литеральный элемент словаря -,
литеральные элементы словаря -
Грамматика сам выражение
самовыражение
→ self
.
идентификатор -
самовыражение
→ self
[
выражение -]
Грамматика выражения суперкласса
выражение суперкласса → выражение метода суперкласса - нижнее выражение суперкласса - выражение инициализатора суперкласса -
выражение метода суперкласса
→ super
.
идентификатор -
нижнее выражение суперкласса
→ super
[
выражение -]
Грамматика выражения закрытия
выражение закрытия
→ {
«подпись закрытия выбирает операторы»}
подпись закрытия
→ «результат функции пункта параметра выбирает»in
подпись закрытия
→ «результат функции списка идентификаторов выбирает»in
подпись закрытия
→ «результат функции пункта параметра списка получения выбирает»in
подпись закрытия
→ «результат функции списка идентификаторов списка получения выбирает»in
подпись закрытия
→ список получения -in
список получения
→ [
выражение спецификатора получения -]
спецификатор получения
→
weak
unowned
unowned(safe)
unowned(unsafe)
Грамматика неявного задействованного выражения
неявное задействованное выражение
→ .
идентификатор -
Грамматика заключенного в скобки выражения
заключенное в скобки выражение
→ (
«список элемента выражения выбирает»)
список элемента выражения
→
элемент выражения -
элемент выражения -,
список элемента выражения -
элемент выражения
→
выражение -
идентификатор -:
выражение -
Грамматика постфиксного выражения
постфиксное выражение → основное выражение -
постфиксное выражение → постфиксный оператор постфиксного выражения -
постфиксное выражение → функциональное вызывающее выражение -
постфиксное выражение → выражение инициализатора -
постфиксное выражение → явное задействованное выражение -
постфиксное выражение → «снабжает постфиксом сам выражение»
постфиксное выражение → динамическое выражение типа -
постфиксное выражение → нижнее выражение -
постфиксное выражение → принудительное выражение -
постфиксное выражение → дополнительное выражение объединения в цепочку -
Грамматика выражения вызова функции
функциональное вызывающее выражение → «постфиксное выражение заключило выражение в скобки»
функциональное вызывающее выражение → «заключенное в скобки выражение постфиксного выражения выбирает, запаздывая закрытие»
закрытие запаздывания → выражение закрытия -
Грамматика выражения инициализатора
выражение инициализатора
→ постфиксное выражение -.
init
Грамматика явного задействованного выражения
явное задействованное выражение
→ постфиксное выражение -.
десятичные цифры -
явное задействованное выражение
→ постфиксное выражение -.
«идентификатор универсальный пункт параметра выбирает»
Грамматика сам выражение
«снабдите постфиксом сам выражение
» → постфиксное выражение -.
self
Грамматика динамического выражения типа
динамическое выражение типа
→ постфиксное выражение -.
dynamicType
Грамматика нижнего выражения
нижнее выражение
→ постфиксное выражение -[
список выражения -]
Грамматика принудительного выражения
принудительное выражение
→ постфиксное выражение -!
Грамматика дополнительно объединяющего в цепочку выражения
дополнительное выражение объединения в цепочку
→ постфиксное выражение -?
Лексическая структура
Грамматика идентификатора
идентификатор → «символы идентификатора головы идентификатора выбирает»
идентификатор
→ `
«символы идентификатора головы идентификатора выбирают»`
идентификатор → неявное название параметра -
список идентификаторов
→
идентификатор -
идентификатор -,
список идентификатора -
голова идентификатора → Верхний - или строчная буква A через Z
главный идентификатором → U+00A8, U+00AA, U+00AD, U+00AF, U+00B2–U+00B5, или U+00B7–U+00BA
голова идентификатора → U+00BC–U+00BE, U+00C0–U+00D6, U+00D8–U+00F6, или U+00F8–U+00FF
голова идентификатора → U+0100–U+02FF, U+0370–U+167F, U+1681–U+180D, или U+180F–U+1DBF
голова идентификатора → U+1E00–U+1FFF
голова идентификатора → U+200B–U+200D, U+202A–U+202E, U+203F–U+2040, U+2054, или U+2060–U+206F
голова идентификатора → U+2070–U+20CF, U+2100–U+218F, U+2460–U+24FF, или U+2776–U+2793
голова идентификатора → U+2C00–U+2DFF или U+2E80–U+2FFF
голова идентификатора → U+3004–U+3007, U+3021–U+302F, U+3031–U+303F, или U+3040–U+D7FF
голова идентификатора → U+F900–U+FD3D, U+FD40–U+FDCF, U+FDF0–U+FE1F, или U+FE30–U+FE44
голова идентификатора → U+FE47–U+FFFD
голова идентификатора → U+10000–U+1FFFD, U+20000–U+2FFFD, U+30000–U+3FFFD, или U+40000–U+4FFFD
голова идентификатора → U+50000–U+5FFFD, U+60000–U+6FFFD, U+70000–U+7FFFD, или U+80000–U+8FFFD
голова идентификатора → U+90000–U+9FFFD, U+A0000–U+AFFFD, U+B0000–U+BFFFD, или U+C0000–U+CFFFD
символ идентификатора → Цифра 0 до 9
символ идентификатора → U+0300–U+036F, U+1DC0–U+1DFF, U+20D0–U+20FF, или U+FE20–U+FE2F
символ идентификатора → голова идентификатора -
символы идентификатора → «символы идентификатора символа идентификатора выбирают»
неявное название параметра
→ $
десятичные цифры -
Грамматика литерала
литерал → числовой литерал - строковый литерал - булев литерал - нулевой литерал -
числовой литерал
→
-
«выберите целочисленный литерал»
-
«выберите литерал с плавающей точкой»
Грамматика целочисленного литерала
целочисленный литерал → двоичный литерал -
целочисленный литерал → восьмеричный литерал -
целочисленный литерал → десятичный литерал -
целочисленный литерал → шестнадцатеричный литерал -
двоичный литерал
→ 0b
«двоичные буквенные символы двоичной цифры выбирают»
двоичная цифра → Цифра 0 или 1
двоичный буквенный символ
→
двоично-разрядный -
_
двоичные буквенные символы → «двоичные двоичные буквенные символы буквенного символа выбирают»
восьмеричный литерал
→ 0o
«восьмеричная цифра восьмеричные буквенные символы выбирает»
восьмерично-разрядная → Цифра 0 до 7
восьмеричный буквенный символ
→
восьмерично-разрядный -
_
восьмеричные буквенные символы → «восьмеричный буквенный символ восьмеричные буквенные символы выбирают»
десятичный литерал → «буквенные символы десятичного числа десятичной цифры выбирает»
десятичная цифра → Цифра 0 до 9
десятичные цифры → «десятичные цифры десятичной цифры выбирают»
десятичный буквенный символ
→
десятично-разрядный -
_
десятичные буквенные символы → «десятичные буквенные символы десятичного числа буквенного символа выбирают»
шестнадцатеричный литерал
→ 0x
«шестнадцатеричная цифра шестнадцатеричные буквенные символы выбирает»
шестнадцатерично-разрядная → Цифра 0 до 9, через f, или через F
шестнадцатеричный буквенный символ
→
шестнадцатерично-разрядный -
_
шестнадцатеричные буквенные символы → «шестнадцатеричный буквенный символ шестнадцатеричные буквенные символы выбирают»
Грамматика литерала с плавающей точкой
литерал с плавающей точкой → «десятичная литеральная десятичная дробь выбирает, десятичная экспонента выбирает»
литерал с плавающей точкой → «шестнадцатеричная литеральная шестнадцатеричная часть выбирает шестнадцатеричная экспонента»
десятичная дробь
→ .
десятичный литерал -
десятичная экспонента → floating-point-e-sign-opt-decimal-literal-
шестнадцатеричная часть
→ .
«шестнадцатеричная цифра шестнадцатеричные буквенные символы выбирает»
шестнадцатеричная экспонента → floating-point-p-sign-opt-decimal-literal-
Грамматика строкового литерала
строковый литерал
→ "
«заключенный в кавычки текст выбирает»"
заключенный в кавычки текст → «заключенный в кавычки текст элемента заключенного в кавычки текста выбирает»
«заключенный в кавычки текстовый элемент » → завершенный символ -
«заключенный в кавычки текстовый элемент
» → \(
выражение -)
«заключенный в кавычки текстовый элемент
» → Любое скалярное значение Unicode кроме "
, \
, U+000A или U+000D
завершенный символ
→
\0
\\
\t
\n
\r
\"
\'
завершенный символ
→ \u
{
unicode-scalar-digits-}
unicode-scalar-digits → Между одной и восемью шестнадцатеричными цифрами
Грамматика операторов
оператор → «оператор возглавляет, символы оператора выбирают»
оператор → «отмечает точкой символы оператора точки головы оператора, выбирают»
голова оператора
→
/
=
-
+
!
*
%
<
>
&
|
^
~
?
голова оператора → U+00A1–U+00A7
главный оператором → U+00A9 или U+00AB
голова оператора → U+00AC или U+00AE
голова оператора → U+00B0–U+00B1, U+00B6, U+00BB, U+00BF, U+00D7 или U+00F7
голова оператора → U+2016–U+2017 или U+2020–U+2027
голова оператора → U+2030–U+203E
голова оператора → U+2041–U+2053
голова оператора → U+2055–U+205E
голова оператора → U+2190–U+23FF
голова оператора → U+2500–U+2775
голова оператора → U+2794–U+2BFF
голова оператора → U+2E00–U+2E7F
символ оператора → голова оператора -
символ оператора → U+0300–U+036F
символ оператора → U+1DC0–U+1DFF
символ оператора → U+20D0–U+20FF
символ оператора → U+FE00–U+FE0F
символ оператора → U+FE20–U+FE2F
символ оператора → U+E0100–U+E01EF
символы оператора → «символы оператора символа оператора выбирают»
точечная голова оператора
→ ..
точечный символ оператора
→
.
символ оператора -
точечные символы оператора → «отмечают точкой символы оператора точки символа оператора, выбирают»
Типы
Грамматика типа
Грамматика идентификатора типа
идентификатор типа
→
«имя типа, универсальный пункт параметра выбирает» «имя типа универсальный пункт параметра, выбирает»
.
идентификатор типа -
имя типа → идентификатор -
Грамматика типа «кортеж»
тип «кортеж»
→ (
«организация типа «кортеж» выбирает»)
организация типа «кортеж»
→ «список элемента типа «кортеж»»...
выберите -
элемент типа кортежа перечисляет
→
элемент типа «кортеж» -
элемент типа «кортеж» -,
«список элемента типа «кортеж»»
элемент типа «кортеж»
→
«атрибуты выбирает»inout
выбирать-тип -
inout
«выберите аннотация типа имени элемента»
имя элемента → идентификатор -
Грамматика типа массива
тип массива
→ [
введите -]
Грамматика дополнительного типа
дополнительный тип
→ тип -?
Грамматика неявно развернутого дополнительного типа
неявно развернутый дополнительный тип
→ тип -!
Грамматика типа состава протокола
тип состава протокола
→ protocol
<
«список идентификатора протокола выбирает»>
список идентификаторов протокола
→
идентификатор протокола -
идентификатор протокола -,
список идентификаторов протокола -
идентификатор протокола → идентификатор типа -
Грамматика пункта наследования типа
пункт наследования типа
→ :
требование класса -,
список наследования типа -
пункт наследования типа
→ :
требование класса -
пункт наследования типа
→ :
список наследования типа -
список наследования типа
→
идентификатор типа -
идентификатор типа -,
список наследования типа -