%%% %% Section 9.1: Interface Declarations %% %% @author Martin Bravenboer <martin.bravenboer@gmail.com> %%% module languages/java-15/interfaces/InterfaceDeclarations imports languages/java-15/lexical/Identifiers languages/java-15/lexical/Modifiers languages/java-15/names/Main languages/java-15/types/Main languages/java-15/classes/ClassDeclarations languages/java-15/classes/MethodDeclarations languages/java-15/interfaces/ConstantDeclarations languages/java-15/interfaces/AbstractMethodDeclarations languages/java-15/interfaces/AnnotationTypes languages/java-15/interfaces/Annotations exports sorts InterfaceDec InterfaceDecHead ExtendsInterfaces InterfaceMemberDec InterfaceMod context-free syntax AnnoDec -> InterfaceDec InterfaceDecHead "{" InterfaceMemberDec* "}" -> InterfaceDec {cons("InterfaceDec")} (Anno | InterfaceMod)* "interface" Id TypeParams? ExtendsInterfaces? -> InterfaceDecHead {cons("InterfaceDecHead")} "extends" {InterfaceType ","}+ -> ExtendsInterfaces {cons("ExtendsInterfaces")} context-free syntax ConstantDec -> InterfaceMemberDec AbstractMethodDec -> InterfaceMemberDec ClassDec -> InterfaceMemberDec InterfaceDec -> InterfaceMemberDec ";" -> InterfaceMemberDec {cons("Semicolon")} context-free syntax Public -> InterfaceMod Protected -> InterfaceMod Private -> InterfaceMod Abstract -> InterfaceMod Static -> InterfaceMod StrictFP -> InterfaceMod