mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-14 21:35:49 +00:00
Estimated hours taken: 10. Classes used by the Java backend, particularly in the implementation of RTTI. java/Compare.java: java/Unify.java: New files. Java classes for implementation of wrapper classes around the builtin `unify'and `compare' predicates. java/JavaInternal.java: New file. Java class for storing runtime information such as command line arguments. java/DuExistInfo.java: java/DuExistLocn.java: java/DuFunctorDesc.java: java/DuPtagLayout.java: java/EnumFunctorDesc.java: java/NotagFunctorDesc.java: java/ProcAddr.java: java/PseudoTypeInfo.java: java/Sectag_Locn.java: java/TypeCtorInfo_Struct.java java/TypeCtorRep.java: java/TypeFunctors.java: java/TypeLayout.java: New files. Java classes for implementing Mercury RTTI. java/UnreachableDefault.java: New file. Runtime exception that signals that unreachable default case in a switch statement has been reached. runtime/mercury_type_info.h: Update comments to mention that Java runtime classes will need to be altered if structures in this file are.
36 lines
1.0 KiB
Java
36 lines
1.0 KiB
Java
//
|
|
// Copyright (C) 2001 The University of Melbourne.
|
|
// This file may only be copied under the terms of the GNU Library General
|
|
// Public License - see the file COPYING.LIB in the Mercury distribution.
|
|
//
|
|
|
|
package mercury.runtime;
|
|
|
|
public class TypeLayout {
|
|
//
|
|
// In runtime/mercury_type_info.h:
|
|
// typedef MR_DuPtagLayout *MR_DuTypeLayout;
|
|
// so here we just use DuPtagLayout[]
|
|
//
|
|
public mercury.runtime.DuPtagLayout[] layout_du;
|
|
//
|
|
// In runtime/mercury_type_info.h:
|
|
// typedef MR_EnumFunctorDesc **EnumTypeLayout;
|
|
// so here we just use EnumFunctorDesc[][]
|
|
//
|
|
public mercury.runtime.EnumFunctorDesc[] layout_enum;
|
|
//
|
|
// In runtime/mercury_type_info.h:
|
|
// typedef MR_NotagFunctorDesc *MR_NotagTypeLayout;
|
|
// so here we just us NotagFunctorDesc[]
|
|
//
|
|
public mercury.runtime.NotagFunctorDesc[] layout_notag;
|
|
//
|
|
// In runtime/mercury_type_info.h:
|
|
// typedef MR_PseudoTypeInfo MR_EquivType;
|
|
// so here we just use MR_PseudoTypeInfo
|
|
//
|
|
public mercury.runtime.PseudoTypeInfo layout_equiv;
|
|
}
|
|
|