Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Start storing HLL mapping config.
  • Loading branch information
jnthn committed May 10, 2013
1 parent dffacb2 commit 2a01b7d
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
19 changes: 19 additions & 0 deletions src/vm/jvm/runtime/org/perl6/nqp/runtime/HLLConfig.java
Expand Up @@ -66,4 +66,23 @@ public class HLLConfig {
* The type to construct for IO handles.
*/
public SixModelObject ioType;

/**
* HLL interop types.
*/
public SixModelObject foreignTypeInt;
public SixModelObject foreignTypeNum;
public SixModelObject foreignTypeStr;
public SixModelObject nullValue;

/**
* HLL interop mappers.
*/
public SixModelObject foreignTransformInt;
public SixModelObject foreignTransformNum;
public SixModelObject foreignTransformStr;
public SixModelObject foreignTransformArray;
public SixModelObject foreignTransformHash;
public SixModelObject foreignTransformCode;
public SixModelObject foreignTransformAny;
}
20 changes: 20 additions & 0 deletions src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java
Expand Up @@ -3115,6 +3115,26 @@ public static SixModelObject sethllconfig(String language, SixModelObject config
config.arrayIteratorType = configHash.at_key_boxed(tc, "array_iter");
if (configHash.exists_key(tc, "hash_iter") != 0)
config.hashIteratorType = configHash.at_key_boxed(tc, "hash_iter");
if (configHash.exists_key(tc, "foreign_type_int") != 0)
config.foreignTypeInt = configHash.at_key_boxed(tc, "foreign_type_int");
if (configHash.exists_key(tc, "foreign_type_num") != 0)
config.foreignTypeNum = configHash.at_key_boxed(tc, "foreign_type_num");
if (configHash.exists_key(tc, "foreign_type_str") != 0)
config.foreignTypeStr = configHash.at_key_boxed(tc, "foreign_type_str");
if (configHash.exists_key(tc, "foreign_transform_int") != 0)
config.foreignTransformInt = configHash.at_key_boxed(tc, "foreign_transform_int");
if (configHash.exists_key(tc, "foreign_transform_str") != 0)
config.foreignTransformNum = configHash.at_key_boxed(tc, "foreign_transform_num");
if (configHash.exists_key(tc, "foreign_transform_num") != 0)
config.foreignTransformStr = configHash.at_key_boxed(tc, "foreign_transform_str");
if (configHash.exists_key(tc, "foreign_transform_array") != 0)
config.foreignTransformArray = configHash.at_key_boxed(tc, "foreign_transform_array");
if (configHash.exists_key(tc, "foreign_transform_hash") != 0)
config.foreignTransformHash = configHash.at_key_boxed(tc, "foreign_transform_hash");
if (configHash.exists_key(tc, "foreign_transform_any") != 0)
config.foreignTransformAny = configHash.at_key_boxed(tc, "foreign_transform_any");
if (configHash.exists_key(tc, "null_value") != 0)
config.nullValue = configHash.at_key_boxed(tc, "null_value");
return configHash;
}
public static SixModelObject getcomp(String name, ThreadContext tc) {
Expand Down

0 comments on commit 2a01b7d

Please sign in to comment.