Глава 19. Синтаксис
В этой главе повторяется синтаксическая грамматика, приведённая в главах 4, 6-10, 14 и 15, а также ключевые части лексической грамматики из главы 3, используя обозначения из §2.4.
Производные из §3 (Лексическая структура)
Идентификатор:
IdentifierChars:
БукваJava:
любой символ Юникода, являющийся "буквой Java"
БукваJavaИлиЦифра:
любой символ Юникода, являющийся "буквой или цифрой Java"
Производные из §4 (Типы, значения и переменные)
ПримитивныйТип:
ЧисловойТип:
ЦелочисленныйТип:
(один из)
byte short int long char ТипСПлавающейТочкой:
(один из)
float double СсылкаНаТип:
ТипКлассаИлиИнтерфейса:
ТипКласса:
ТипИнтерфейса:
ПеременнаяТипа:
ПараметрТипа:
МодификаторПараметраТипа:
СвязьТипа:
ДополнительноеОграничение:
АргументыТипов:
СписокАргументовТипов:
АргументТипа:
ПодстановочныйСимвол:
ОграниченияПодстановочногоСимвола:
Производные из §6 (Имена)
ИмяТипа:
ИмяПакетаИлиТип:
ИмяВыражения:
ИмяМетода:
ИмяПакета:
НеоднозначноеИмя:
Производства из §7 (Пакеты)
CompilationUnit:
PackageDeclaration:
PackageModifier:
SingleTypeImportDeclaration:
TypeImportOnDemandDeclaration:
SingleStaticImportDeclaration:
StaticImportOnDemandDeclaration:
TypeDeclaration:
Производные из §8 (Классы)
ClassDeclaration:
NormalClassDeclaration:
ClassModifier:
TypeParameters:
TypeParameterList:
Superclass:
extends Тип класса Superinterfaces:
implements Список типов интерфейсов InterfaceTypeList:
ClassBody:
ClassBodyDeclaration:
ClassMemberDeclaration:
FieldDeclaration:
FieldModifier:
VariableDeclaratorList:
VariableDeclarator:
VariableDeclaratorId:
VariableInitializer:
UnannPrimitiveType:
UnannClassOrInterfaceType:
UnannClassType:
UnannInterfaceType:
UnannTypeVariable:
MethodDeclaration:
MethodModifier:
MethodHeader:
Result:
MethodDeclarator:
FormalParameterList:
FormalParameters:
FormalParameter:
VariableModifier:
LastFormalParameter:
ReceiverParameter:
Throws:
throws Список типов исключений ExceptionTypeList:
ExceptionType:
MethodBody:
InstanceInitializer:
StaticInitializer:
static Блок ConstructorDeclaration:
ConstructorModifier:
ConstructorDeclarator:
SimpleTypeName:
ConstructorBody:
ExplicitConstructorInvocation:
[Аргументы типа]
[Аргументы типа]
Имя выражения
Первичный
this ( [Список аргументов] ) ; [Аргументы типа]
super ( [Список аргументов] ) ; Имя выражения
. [Аргументы типа] super ( [Список аргументов] ) ; Первичный
. [Аргументы типа] super ( [Список аргументов] ) ; EnumDeclaration:
EnumBody:
EnumConstantList:
EnumConstant:
EnumConstantModifier:
EnumBodyDeclarations:
Производства из §9 (Интерфейсы)
InterfaceDeclaration:
NormalInterfaceDeclaration:
InterfaceModifier:
ExtendsInterfaces:
extends СписокТиповИнтерфейсов InterfaceBody:
InterfaceMemberDeclaration:
ConstantDeclaration:
ConstantModifier:
InterfaceMethodDeclaration:
InterfaceMethodModifier:
AnnotationTypeDeclaration:
AnnotationTypeBody:
AnnotationTypeMemberDeclaration:
AnnotationTypeElementDeclaration:
AnnotationTypeElementModifier:
DefaultValue:
default ЗначениеЭлемента NormalAnnotation:
ElementValuePairList:
ElementValuePair:
ElementValue:
ElementValueArrayInitializer:
ElementValueList:
MarkerAnnotation:
@ ИмяТипа SingleElementAnnotation:
Productions from §14 (Blocks and Statements)
Block:
BlockStatements:
BlockStatement:
LocalVariableDeclarationStatement:
LocalVariableDeclaration:
StatementWithoutTrailingSubstatement:
EmptyStatement:
; LabeledStatement:
LabeledStatementNoShortIf:
ExpressionStatement:
IfThenStatement:
IfThenElseStatement:
IfThenElseStatementNoShortIf:
AssertStatement:
SwitchStatement:
SwitchBlock:
SwitchBlockStatementGroup:
SwitchLabels:
SwitchLabel:
EnumConstantName:
WhileStatement:
WhileStatementNoShortIf:
DoStatement:
ForStatement:
ForStatementNoShortIf:
BasicForStatementNoShortIf:
ForUpdate:
StatementExpressionList:
EnhancedForStatement:
EnhancedForStatementNoShortIf:
BreakStatement:
ContinueStatement:
ReturnStatement:
ThrowStatement:
TryStatement:
Catches:
CatchClause:
CatchFormalParameter:
CatchType:
Finally:
finally Блок TryWithResourcesStatement:
ResourceSpecification:
Производства из §15 (Выражения)
Primary:
PrimaryNoNewArray:
ClassLiteral:
UnqualifiedClassInstanceCreationExpression:
ClassOrInterfaceTypeToInstantiate:
TypeArgumentsOrDiamond:
FieldAccess:
ArrayAccess:
MethodInvocation:
ИмяМетода
ТипИмя
ИмяВыражения
Primary
ТипИмя
( [СписокАргументов] ) ТипИмя
. [ТипАргументы] Идентификатор ( [СписокАргументов] ) ИмяВыражения
. [ТипАргументы] Идентификатор ( [СписокАргументов] ) Primary
. [ТипАргументы] Идентификатор ( [СписокАргументов] ) super . [ТипАргументы] Идентификатор ( [СписокАргументов] ) ТипИмя
. super . [ТипАргументы] Идентификатор ( [СписокАргументов] ) MethodReference:
ИмяВыражения
ТипСсылка
Primary
ТипИмя
КлассТип
МассивТип
:: [ТипАргументы] Идентификатор ТипСсылка
:: [ТипАргументы] Идентификатор Primary
:: [ТипАргументы] Идентификатор super :: [ТипАргументы] Идентификатор ТипИмя
. super :: [ТипАргументы] Идентификатор КлассТип
:: [ТипАргументы] new МассивТип
:: new ArrayCreationExpression:
DimExprs:
Expression:
LambdaExpression:
LambdaParameters:
InferredFormalParameterList:
AssignmentExpression:
Assignment:
LeftHandSide:
AssignmentOperator:
(один из)
=*=/=%=+=-=<<=>>=>>>=&=^=|=
ConditionalExpression:
ConditionalOrExpression:
ConditionalAndExpression:
InclusiveOrExpression:
ExclusiveOrExpression:
AndExpression:
EqualityExpression:
RelationalExpression:
ShiftExpression:
AdditiveExpression:
MultiplicativeExpression:
PreIncrementExpression:
PreDecrementExpression:
UnaryExpressionNotPlusMinus:
PostIncrementExpression:
PostDecrementExpression:
ConstantExpression:
© Oracle and/or its affiliates. All rights reserved.
Licensed under the Oracle Technology Network License Agreement.