%%% %% 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