%%%
%% Section 9.6: Annotation Types
%%
%% @author Martin Bravenboer <martin.bravenboer@gmail.com
%%%
module languages/java-15/interfaces/AnnotationTypes
imports
languages/java-15/lexical/Identifiers
languages/java-15/classes/ClassDeclarations
languages/java-15/classes/EnumDeclarations
languages/java-15/interfaces/InterfaceDeclarations
languages/java-15/interfaces/AbstractMethodDeclarations
languages/java-15/interfaces/ConstantDeclarations
languages/java-15/interfaces/Annotations
exports
sorts
AnnoDec
AnnoDecHead
context-free syntax
AnnoDecHead "{" AnnoElemDec* "}" -> AnnoDec {cons("AnnoDec")}
(Anno | InterfaceMod)* "@" "interface" Id -> AnnoDecHead {cons("AnnoDecHead")}
sorts
AnnoElemDec
DefaultVal
context-free syntax
AbstractMethodMod* Type Id "(" ")" DefaultVal? ";" -> AnnoElemDec {cons("AnnoMethodDec")}
ConstantDec -> AnnoElemDec
ClassDec -> AnnoElemDec
InterfaceDec -> AnnoElemDec
EnumDec -> AnnoElemDec
AnnoDec -> AnnoElemDec
";" -> AnnoElemDec {cons("Semicolon")}
"default" ElemVal -> DefaultVal {cons("DefaultVal")}