Сводка грамматики
Операторы
Грамматика оператора
оператор
→ выражение -;выберите -
оператор
→ объявление -;выберите -
оператор
→ оператор цикла -;выберите -
оператор
→ оператор ответвления -;выберите -
оператор
→ маркированный оператор -;выберите -
оператор
→ оператор передачи управления -;выберите -
операторы → «операторы оператора выбирают»
Грамматика инструкции циклов
инструкция циклов → для оператора -
инструкция циклов → для в операторе -
инструкция циклов → в-то-время-как-оператор -
инструкция циклов → «делает в то время как оператор»
Грамматика для оператора
→ для оператора forfor-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-возглавьте
→ «атрибуты выбирают, модификатор уровня доступа выбирает»typealiastypealias-имя -
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пункт параметра -
Грамматика объявления оператора
объявление оператора → объявление префиксного оператора - объявление постфиксного оператора - объявление инфиксного оператора -
объявление префиксного оператора
→ prefixoperatorоператор -{}
объявление постфиксного оператора
→ postfixoperatorоператор -{}
объявление инфиксного оператора
→ infixoperatorоператор -{«атрибуты инфиксного оператора выбирают»}
атрибуты инфиксного оператора → «пункт приоритета выбирают, пункт ассоциативности выбирает»
пункт приоритета
→ 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<«список идентификатора протокола выбирает»>
список идентификаторов протокола
→
идентификатор протокола -
идентификатор протокола -,список идентификаторов протокола -
идентификатор протокола → идентификатор типа -
Грамматика пункта наследования типа
пункт наследования типа
→ :требование класса -,список наследования типа -
пункт наследования типа
→ :требование класса -
пункт наследования типа
→ :список наследования типа -
список наследования типа
→
идентификатор типа -
идентификатор типа -,список наследования типа -
