import java.io.*; *noparse* //============================================================ // Type Registry //------------------------------------------------------------ TypeRegistry = List(DefinedType) . DefinedType : ClassType | NonClassType *common* TypeName
HeaderFile . NonClassType = . ClassType : SimpleClassType | TemplatedClassType . SimpleClassType = . TemplatedClassType = TemplateArgs . TypeName = String . HeaderFile = String . TemplateArgs = String . //============================================================ // Entity Registry //------------------------------------------------------------ EntityRegistry = List(Entity) . AccessKeyList = List(AccessKey) . Entity = EntityName List(ParentEntity) List(Method) AccessKeyList . ParentEntity = EntityName [ Entity ] . EntityName = String . Method = MethodName MethodBodyVersion boolean boolean boolean AccessKeyList ReturnDecl List(ArgumentDecl) . MethodName = String . MethodBodyVersion = String . AccessKey = String . TypeDecl : ReturnDecl | ArgumentDecl *common* String String boolean TypeUse List(TypeUse) . ReturnDecl = . ArgumentDecl = ArgumentName [ Initializer ] . ArgumentName = String . Initializer = String . TypeUse = TypeName boolean [ DefinedType] . //============================================================ // Program classes //------------------------------------------------------------ Main = . //============================================================ // Utilities //------------------------------------------------------------ List(E) ~ {E}.