%%% %% 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")}