%%% %% Chapter 6: Names %% %% @author Martin Bravenboer <martin.bravenboer@gmail.com> %%% module languages/java-15/names/Main imports languages/java-15/lexical/Identifiers exports sorts PackageName context-free syntax {Id "."}+ -> PackageName {cons("PackageName")} sorts TypeName ExprName MethodName PackageOrTypeName AmbName context-free syntax Id -> AmbName {cons("AmbName")} AmbName "." Id -> AmbName {cons("AmbName")} Id -> TypeName {cons("TypeName")} PackageOrTypeName "." Id -> TypeName {cons("TypeName")} Id -> ExprName {cons("ExprName")} AmbName "." Id -> ExprName {cons("ExprName")} Id -> MethodName {cons("MethodName")} AmbName "." Id -> MethodName {cons("MethodName")} Id -> PackageOrTypeName {cons("PackageOrTypeName")} PackageOrTypeName "." Id -> PackageOrTypeName {cons("PackageOrTypeName")}