1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
%%%
%% Chapter 6: Names
%%
%% @author Martin Bravenboer <martin@cs.uu.nl>
%%%
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")}
%% todo: workaround for missing definition in JLS.
sorts ClassName
context-free syntax
{Id "."}+ -> ClassName {cons("ClassName")}
|