module languages/java/syntax/MethodDecl imports languages/java/syntax/JavaTypes imports languages/java/syntax/FieldDecl imports languages/java/syntax/Statements imports languages/java/syntax/Modifiers exports sorts MethodDeclaration FormalParameter MethodHeader MethodDeclarator Throws MethodBody exports sorts MethodRes context-free syntax "void" -> MethodRes {cons("void")} Type -> MethodRes {cons("type")} context-free syntax MethodHeader MethodBody -> MethodDeclaration {cons("MethodHeader-MethodBody")} Modifier* MethodRes MethodDeclarator Throws? -> MethodHeader {cons("MethodHeader")} Identifier "(" {FormalParameter ","}* ")" -> MethodDeclarator {cons("comma2")} MethodDeclarator "[" "]" -> MethodDeclarator {cons("MethodDeclarator")} Modifier* Type VariableDeclaratorId -> FormalParameter {cons("Type-VariableDeclaratorId")} "throws" {ClassType ","}+ -> Throws {cons("throws-comma")} Block -> MethodBody {cons("Block1")} ";" -> MethodBody {cons("semicolon3")}