1
package org.perl6.nqp.runtime;
3
import org.perl6.nqp.sixmodel.SixModelObject;
6
* Contains configuration specific to a given HLL.
8
public class HLLConfig {
10
public static final int ROLE_NONE = 0;
11
public static final int ROLE_INT = 1;
12
public static final int ROLE_NUM = 2;
13
public static final int ROLE_STR = 3;
14
public static final int ROLE_ARRAY = 4;
15
public static final int ROLE_HASH = 5;
16
public static final int ROLE_CODE = 6;
24
* The types the languages wish to get things boxed as.
26
public SixModelObject intBoxType;
27
public SixModelObject numBoxType;
28
public SixModelObject strBoxType;
31
* The type to use for nqp::list(...)
33
public SixModelObject listType;
36
* The type to use for nqp::hash(...)
38
public SixModelObject hashType;
41
* The type to use for slurpy arrays.
43
public SixModelObject slurpyArrayType;
46
* The type to use for slurpy hashes.
48
public SixModelObject slurpyHashType;
51
* The type to use for array iteration (should have VMIter REPR).
53
public SixModelObject arrayIteratorType;
56
* The type to use for hash iteration (should have VMIter REPR).
58
public SixModelObject hashIteratorType;
61
* The type to construct for exceptions (should have VMException REPR).
63
public SixModelObject exceptionType;
66
* The type to construct for IO handles.
68
public SixModelObject ioType;
73
public SixModelObject foreignTypeInt;
74
public SixModelObject foreignTypeNum;
75
public SixModelObject foreignTypeStr;
76
public SixModelObject nullValue;
79
* HLL interop mappers.
81
public SixModelObject foreignTransformInt;
82
public SixModelObject foreignTransformNum;
83
public SixModelObject foreignTransformStr;
84
public SixModelObject foreignTransformArray;
85
public SixModelObject foreignTransformHash;
86
public SixModelObject foreignTransformCode;
87
public SixModelObject foreignTransformAny;
90
* Block exit handler, for those that need it.
92
public SixModelObject exitHandler;