// new node types for the NonNull language extension\ // a tagged class declaration is a class that shares structural properties // with a base declaration but representes additional properties in its node type abstract TaggedClassDecl : ClassDecl ::= /Modifiers/ /[SuperClassAccess:Access]/ /Implements:Access*/ /BodyDecl*/ ; NonNullClassDecl : TaggedClassDecl ::= ; RawObjectDecl : TaggedClassDecl ::= ; RawUptoObjectDecl : TaggedClassDecl ::= ; // additional modifiers NotNullModifier : Modifier; NullableModifier : Modifier; RawModifier : Modifier; RawUptoModifier : Modifier ::= Access;