%%%
%% Section 8.3: Field Declarations
%%
%% @author Martin Bravenboer <martin.bravenboer@gmail.com>
%%%
module languages/java-15/classes/FieldDeclarations
imports
languages/java-15/lexical/Identifiers
languages/java-15/lexical/Modifiers
languages/java-15/types/Main
languages/java-15/interfaces/Annotations
languages/java-15/arrays/ArrayInitializers
languages/java-15/expressions/Main
exports
sorts
FieldDec
VarDec
VarDecId
Dim
VarInit
context-free syntax
(Anno | FieldMod)* Type { VarDec ","}+ ";" -> FieldDec {cons("FieldDec")}
VarDecId -> VarDec {cons("VarDec")}
VarDecId "=" VarInit -> VarDec {cons("VarDec")}
Id -> VarDecId
Id Dim+ -> VarDecId {cons("ArrayVarDecId")}
"[" "]" -> Dim {cons("Dim")}
Expr -> VarInit
ArrayInit -> VarInit
sorts FieldMod
context-free syntax
Public -> FieldMod
Protected -> FieldMod
Private -> FieldMod
Static -> FieldMod
Final -> FieldMod
Transient -> FieldMod
Volatile -> FieldMod