Глава 19. Синтаксис
В этой главе повторяется синтаксическая грамматика, представленная в главах 4, 6-10, 14 и 15, а также ключевые части лексической грамматики из главы 3, используя обозначения из §2.4.
Производства из §3 (Лексическая структура)
Идентификатор:
IdentifierChars:
JavaLetter:
любой символ Юникода, являющийся "буква Java"
JavaLetterOrDigit:
любой символ Юникода, являющийся "буквой или цифрой Java"
TypeIdentifier:
UnqualifiedMethodIdentifier:
Производства из §4 (Типы, значения и переменные)
Примитивный тип:
Числовой тип:
Целочисленный тип:
(один из)
byte short int long char Тип с плавающей точкой:
(один из)
float double Ссылочный тип:
Тип класса или интерфейса:
Тип интерфейса:
Параметр типа:
Модификатор параметра типа:
Границы типа:
Дополнительная граница:
Аргументы типа:
Список аргументов типа:
Аргумент типа:
Подстановочный символ:
Границы подстановочного символа:
Производные из §6 (Имена)
Имя модуля:
Имя пакета:
Имя типа:
Имя выражения:
Имя метода:
Имя пакета или типа:
Неоднозначное имя:
Производные из §7 (Пакеты и модули)
Единица компиляции:
Единица обычной компиляции:
Единица модульной компиляции:
Декларация пакета:
Модификатор пакета:
Декларация импорта одного типа:
Декларация импорта всех типов из пакета:
Декларация статического импорта одного члена:
Декларация статического импорта всех членов:
Декларация класса или интерфейса верхнего уровня:
Декларация модуля:
Директива модуля:
requires {Модификатор Requires} Имя модуля ; exports Имя пакета [to Имя модуля {, Имя модуля}] ; opens Имя пакета [to Имя модуля {, Имя модуля}] ; uses Имя типа ; provides Имя типа with Имя типа {, Имя типа} ; Модификатор Requires:
(one of)
transitive static Производные из §8 (Классы)
ClassDeclaration:
NormalClassDeclaration:
ClassModifier:
ПараметрыТипа:
СписокПараметровТипа:
НаследуетОт:
extends ТипКласса РеализуетИнтерфейсы:
implements СписокТиповИнтерфейсов СписокТиповИнтерфейсов:
ТелоКласса:
ОбъявлениеТелаКласса:
ОбъявлениеЧленаКласса:
ОбъявлениеПоля:
МодификаторПоля:
СписокОбъявленийПеременных:
ОбъявлениеПеременной:
ИдентификаторОбъявленияПеременной:
ИнициализаторПеременной:
ТипБезАннотаций:
ПримитивныйТипБезАннотаций:
СсылкаБезАннотаций:
ТипКлассаИлиИнтерфейсаБезАннотаций:
ТипКлассаБезАннотаций:
ТипИнтерфейсаБезАннотаций:
ПеременнаяТипаБезАннотаций:
ОбъявлениеМетода:
МодификаторМетода:
ЗаголовокМетода:
Результат:
МетодДекларатор:
ПараметрПолучателя:
СписокФормальныхПараметров:
ФормальныйПараметр:
ПараметрПеременнойАрности:
МодификаторПеременной:
Исключения:
throws СписокТиповИсключений СписокТиповИсключений:
ТипИсключения:
ТелоМетода:
ИнициализаторЭкземпляра:
СтатическийИнициализатор:
static Блок ДекларацияКонструктора:
МодификаторКонструктора:
ДеклараторКонструктора:
ПростоеИмяТипа:
ТелоКонструктора:
ЯвноеВызовКонструктора:
[АргументыТипов]
[АргументыТипов]
ИмяВыражения
Основное
this ( [СписокАргументов] ) ; [АргументыТипов]
super ( [СписокАргументов] ) ; ИмяВыражения
. [АргументыТипов] super ( [СписокАргументов] ) ; Основное
. [АргументыТипов] super ( [СписокАргументов] ) ; ДекларацияПеречисления:
ТелоПеречисления:
СписокПостоянныхПеречисления:
ПостояннаяПеречисления:
МодификаторПостояннойПеречисления:
ДекларацииТелаПеречисления:
ДекларацияЗаписи:
ЗаголовокЗаписи:
СписокКомпонентовЗаписи:
КомпонентЗаписи:
КомпонентПеременнойАрности:
МодификаторКомпонентаЗаписи:
ТелоЗаписи:
RecordBodyDeclaration:
CompactConstructorDeclaration:
Производные из §9 (Интерфейсы)
InterfaceDeclaration:
NormalInterfaceDeclaration:
InterfaceModifier:
InterfaceExtends:
extends Список типов интерфейса InterfaceBody:
InterfaceMemberDeclaration:
ConstantDeclaration:
ConstantModifier:
InterfaceMethodDeclaration:
InterfaceMethodModifier:
AnnotationInterfaceDeclaration:
AnnotationInterfaceBody:
AnnotationInterfaceMemberDeclaration:
AnnotationInterfaceElementDeclaration:
AnnotationInterfaceElementModifier:
DefaultValue:
default Значение элемента NormalAnnotation:
ElementValuePairList:
ElementValuePair:
ElementValueArrayInitializer:
ElementValueList:
MarkerAnnotation:
@ Имя типа SingleElementAnnotation:
Производные из §14 (Блоки, операторы и шаблоны)
Блок:
БлокОператоров:
ОбъявлениеЛокальногоКлассаИлиИнтерфейса:
ОбъявлениеЛокальнойПеременной:
ТипЛокальнойПеременной:
ПустойОператор:
; ОператорСМетка:
ОператорСМеткаБезКороткогоЕсли:
ОператорВыражения:
ОператорЕслиИначе:
ОператорЕслиИначеБезКороткогоЕсли:
ОператорПереключатель:
БлокПереключателя:
ПравилоПереключателя:
ГруппаОператоровБлокаПереключателя:
МеткаПереключателя:
case ПостояннаяСлучай {, ПостояннаяСлучай} case null [, default] case ШаблонСлучай {, ШаблонСлучай} [Условие] default ПостояннаяСлучай:
CasePattern:
Guard:
when Выражение WhileStatementNoShortIf:
ForStatement:
ForStatementNoShortIf:
BasicForStatement:
BasicForStatementNoShortIf:
ForUpdate:
StatementExpressionList:
EnhancedForStatement:
EnhancedForStatementNoShortIf:
BreakStatement:
YieldStatement:
ContinueStatement:
ReturnStatement:
ThrowStatement:
TryStatement:
Catches:
CatchClause:
CatchFormalParameter:
CatchType:
Finally:
finally Блок TryWithResourcesStatement:
ResourceSpecification:
VariableAccess:
Pattern:
TypePattern:
RecordPattern:
ComponentPatternList:
ComponentPattern:
MatchAllPattern:
_ Производные из §15 (Выражения)
PrimaryNoNewArray:
ClassLiteral:
ClassInstanceCreationExpression:
UnqualifiedClassInstanceCreationExpression:
ClassOrInterfaceTypeToInstantiate:
TypeArgumentsOrDiamond:
ArrayCreationExpression:
ArrayCreationExpressionWithoutInitializer:
ArrayCreationExpressionWithInitializer:
DimExprs:
ArrayAccess:
FieldAccess:
MethodInvocation:
Имя метода
Имя типа
Имя выражения
Primary
Имя типа
( [Список аргументов] ) Имя типа
. [Аргументы типа] Идентификатор ( [Список аргументов] ) Имя выражения
. [Аргументы типа] Идентификатор ( [Список аргументов] ) Primary
. [Аргументы типа] Идентификатор ( [Список аргументов] ) super . [Аргументы типа] Идентификатор ( [Список аргументов] ) Имя типа
. super . [Аргументы типа] Идентификатор ( [Список аргументов] ) MethodReference:
Имя выражения
Основной
Тип ссылки
Имя типа
Тип класса
Массивы
:: [Аргументы типа] Идентификатор Основной
:: [Аргументы типа] Идентификатор Тип ссылки
:: [Аргументы типа] Идентификатор super :: [Аргументы типа] Идентификатор Имя типа
. super :: [Аргументы типа] Идентификатор Тип класса
:: [Аргументы типа] new Массивы
:: new Выражение:
Lambda-выражение:
Параметры Lambda:
Список параметров Lambda:
Нормальный параметр Lambda:
Тип параметра Lambda:
Лаконичный параметр Lambda:
Выражение присваивания:
Присваивание:
Левая часть:
Оператор присваивания:
(один из)
=*=/=%=+=-=<<=>>=>>>=&=^=|=
Условное выражение:
Условное ИЛИ:
Условное И:
Исключающее ИЛИ:
Оператор instanceof:
MultiplicativeExpression:
PreIncrementExpression:
PreDecrementExpression:
UnaryExpressionNotPlusMinus:
PostfixExpression:
PostIncrementExpression:
PostDecrementExpression:
CastExpression:
SwitchExpression:
© Oracle and/or its affiliates. All rights reserved.
Licensed under the Oracle Technology Network License Agreement.