Глава 19. Синтаксис
В этой главе повторяется синтаксическая грамматика, приведённая в главах 4, 6-10, 14 и 15, а также ключевые части лексической грамматики из главы 3, используя обозначения из §2.4.
Производные из §3 (Лексическая структура)
Идентификатор:
IdentifierChars:
JavaБуква:
любой символ Юникода, являющийся "буква Java"
JavaБукваИлиЦифра:
любой символ Юникода, являющийся "буква или цифра Java"
ТипИдентификатор:
Производные из §4 (Типы, значения и переменные)
Тип:
ПримитивныйТип:
ЧисловойТип:
ЦелочисленныйТип:
(один из)
byte short int long char ТипСПлавующейТочкой:
(один из)
float double СсылкаТип:
ТипКлассаИлиИнтерфейса:
ТипКласса:
ТипИнтерфейса:
ПеременнаяТип:
ПараметрТип:
МодификаторПараметраТип:
ГраницаТип:
ДополнительнаяГраница:
АргументыТипов:
СписокАргументовТипов:
АргументТип:
Подстановка:
Производные из §6 (Имена)
ModuleName:
PackageName:
TypeName:
ExpressionName:
MethodName:
PackageOrTypeName:
AmbiguousName:
Производные из §7 (Пакеты и модули)
CompilationUnit:
OrdinaryCompilationUnit:
ModularCompilationUnit:
PackageDeclaration:
PackageModifier:
SingleTypeImportDeclaration:
TypeImportOnDemandDeclaration:
SingleStaticImportDeclaration:
StaticImportOnDemandDeclaration:
TypeDeclaration:
ModuleDeclaration:
ModuleDirective:
requires {RequiresModifier} ModuleName ; exports PackageName [to ModuleName {, ModuleName}] ; opens PackageName [to ModuleName {, ModuleName}] ; uses TypeName ; provides TypeName with TypeName {, TypeName} ; RequiresModifier:
(one of)
transitive static Производные из §8 (Классы)
ClassDeclaration:
NormalClassDeclaration:
ClassModifier:
TypeParameters:
TypeParameterList:
Superclass:
extends Тип класса Superinterfaces:
implements Список типов интерфейсов InterfaceTypeList:
ClassBody:
ClassBodyDeclaration:
ClassMemberDeclaration:
FieldDeclaration:
FieldModifier:
VariableDeclaratorList:
VariableDeclarator:
VariableDeclaratorId:
VariableInitializer:
UnannPrimitiveType:
UnannClassOrInterfaceType:
UnannInterfaceType:
UnannTypeVariable:
MethodDeclaration:
MethodModifier:
MethodHeader:
Result:
MethodDeclarator:
ReceiverParameter:
FormalParameterList:
FormalParameter:
VariableArityParameter:
VariableModifier:
Throws:
throws ExceptionTypeList ExceptionTypeList:
ExceptionType:
MethodBody:
InstanceInitializer:
StaticInitializer:
static Block ConstructorDeclaration:
ConstructorModifier:
ConstructorDeclarator:
SimpleTypeName:
ConstructorBody:
ExplicitConstructorInvocation:
[TypeArguments]
[TypeArguments]
ExpressionName
Primary
this ( [ArgumentList] ) ; [TypeArguments]
super ( [ArgumentList] ) ; ExpressionName
. [TypeArguments] super ( [ArgumentList] ) ; Primary
. [TypeArguments] super ( [ArgumentList] ) ; 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:
Производства из §14 (Blocks and Statements)
Block:
BlockStatements:
BlockStatement:
LocalVariableDeclarationStatement:
LocalVariableDeclaration:
LocalVariableType:
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:
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:
Expression:
LambdaExpression:
LambdaParameters:
LambdaParameterList:
LambdaParameter:
LambdaParameterType:
LambdaBody:
AssignmentExpression:
Assignment:
LeftHandSide:
AssignmentOperator:
(one of)
=*=/=%=+=-=<<=>>=>>>=&=^=|=
ConditionalExpression:
ConditionalOrExpression:
ConditionalAndExpression:
InclusiveOrExpression:
ExclusiveOrExpression:
AndExpression:
EqualityExpression:
RelationalExpression:
ShiftExpression:
AdditiveExpression:
MultiplicativeExpression:
PreIncrementExpression:
ВыражениеПрефиксногоУменьшения:
УнарноеВыражениеБезПлюсМинус:
ПостфиксноеВыражение:
ВыражениеПостИнкремента:
ВыражениеПостДекремента:
ВыражениеПриведенияТипов:
ВыражениеКонстанты:
© Oracle and/or its affiliates. All rights reserved.
Licensed under the Oracle Technology Network License Agreement.