mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-18 23:35:25 +00:00
Classes used by the Java backend, particularly in the implementation
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.
This commit is contained in:
35
java/TypeLayout.java
Normal file
35
java/TypeLayout.java
Normal file
@@ -0,0 +1,35 @@
|
||||
//
|
||||
// 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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user