Глава 19. Синтаксис
В этой главе повторяется синтаксическая грамматика, изложенная в главах 4, 6-10, 14 и 15, а также ключевые части лексической грамматики из главы 3, используя обозначения из §2.4.
Производства из §3 (Лексическая структура)
Идентификатор:
IdentifierChars:
JavaБуква:
любой символ Юникода, являющийся "буквой Java"
JavaБукваИлиЦифра:
любой символ Юникода, являющийся "буквой или цифрой 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:
{МодификаторКласса}
class ИдентификаторТипа [ПараметрыТипа] [Наследует] [Реализует] [Разрешает] ТелоКласса ClassModifier:
TypeParameters:
TypeParameterList:
ClassExtends:
extends ТипКласса ClassImplements:
implements СписокИнтерфейсов InterfaceTypeList:
ClassBody:
ClassBodyDeclaration:
ClassMemberDeclaration:
FieldDeclaration:
FieldModifier:
VariableDeclaratorList:
VariableDeclarator:
VariableDeclaratorId:
VariableInitializer:
UnannPrimitiveType:
UnannReferenceType:
UnannClassOrInterfaceType:
UnannClassType:
UnannInterfaceType:
UnannTypeVariable:
MethodDeclaration:
MethodModifier:
Result:
МетодДекларатор:
ПараметрПолучателя:
СписокФормальныхПараметров:
ФормальныйПараметр:
ПараметрПеременнойАрности:
МодификаторПеременной:
Исключения:
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:
Productions from §14 (Blocks, Statements, and Patterns)
Block:
BlockStatements:
LocalClassOrInterfaceDeclaration:
LocalVariableDeclarationStatement:
LocalVariableDeclaration:
LocalVariableType:
StatementWithoutTrailingSubstatement:
EmptyStatement:
; LabeledStatement:
LabeledStatementNoShortIf:
ExpressionStatement:
IfThenStatement:
IfThenElseStatement:
IfThenElseStatementNoShortIf:
AssertStatement:
SwitchStatement:
SwitchBlock:
SwitchRule:
SwitchBlockStatementGroup:
SwitchLabel:
CaseConstant:
WhileStatement:
WhileStatementNoShortIf:
ForStatement:
ForStatementNoShortIf:
BasicForStatementNoShortIf:
ForUpdate:
StatementExpressionList:
EnhancedForStatement:
EnhancedForStatementNoShortIf:
BreakStatement:
YieldStatement:
ContinueStatement:
ReturnStatement:
ThrowStatement:
TryStatement:
Catches:
CatchClause:
CatchFormalParameter:
CatchType:
Finally:
finally Блок TryWithResourcesStatement:
ResourceSpecification:
Pattern:
TypePattern:
Производства из §15 (Выражения)
Первичное выражение:
Первичное выражение (без создания массива):
Литерал класса:
Неквалифицированное выражение создания экземпляра класса:
Тип класса или интерфейса для создания:
Аргументы типа или алмаз:
Доступ к полю:
Доступ к элементу массива:
Вызов метода:
Имя метода
Имя типа
Имя выражения
Первичное выражение
Имя типа
( [Список аргументов] ) Имя типа
. [Аргументы типа] Идентификатор ( [Список аргументов] ) Имя выражения
. [Аргументы типа] Идентификатор ( [Список аргументов] ) Первичное выражение
. [Аргументы типа] Идентификатор ( [Список аргументов] ) super . [Аргументы типа] Идентификатор ( [Список аргументов] ) Имя типа
. super . [Аргументы типа] Идентификатор ( [Список аргументов] ) Ссылка на метод:
Имя выражения
Первичное выражение
Тип ссылки
Имя типа
Тип класса
Тип массива
:: [Аргументы типа] Идентификатор Первичное выражение
:: [Аргументы типа] Идентификатор Тип ссылки
:: [Аргументы типа] Идентификатор super :: [Аргументы типа] Идентификатор Имя типа
. super :: [Аргументы типа] Идентификатор Тип класса
:: [Аргументы типа] new Тип массива
:: new Выражение создания массива:
Выражения размеров:
Выражение:
LambdaExpression:
LambdaParameters:
LambdaParameterList:
LambdaParameter:
LambdaParameterType:
LambdaBody:
AssignmentExpression:
Assignment:
LeftHandSide:
AssignmentOperator:
(one of)
=*=/=%=+=-=<<=>>=>>>=&=^=|=
ConditionalExpression:
ConditionalOrExpression:
ConditionalAndExpression:
InclusiveOrExpression:
ExclusiveOrExpression:
AndExpression:
EqualityExpression:
InstanceofExpression:
ShiftExpression:
AdditiveExpression:
MultiplicativeExpression:
PreIncrementExpression:
PreDecrementExpression:
UnaryExpressionNotPlusMinus:
PostfixExpression:
PostIncrementExpression:
PostDecrementExpression:
CastExpression:
SwitchExpression:
ConstantExpression:
© Oracle and/or its affiliates. All rights reserved.
Licensed under the Oracle Technology Network License Agreement.