diff options
| author | mryouse | 2022-07-06 02:20:31 +0000 | 
|---|---|---|
| committer | mryouse | 2022-07-06 02:20:31 +0000 | 
| commit | 7ffeef0faef3fbc389069df853109afc76260f0d (patch) | |
| tree | 49ada711455659e8112e93729b42b39f3d050f0f /neb/std/types.py | |
| parent | 800d04b014e90596dcad2d3a283da4b1e274a14f (diff) | |
| parent | 276dd853729a7c71ef4805786793bbc8f651b00d (diff) | |
Merge branch 'master' into feature/listtypes
Diffstat (limited to 'neb/std/types.py')
| -rw-r--r-- | neb/std/types.py | 7 | 
1 files changed, 7 insertions, 0 deletions
| diff --git a/neb/std/types.py b/neb/std/types.py index 9cd8e6d..35dca42 100644 --- a/neb/std/types.py +++ b/neb/std/types.py @@ -93,6 +93,11 @@ def interpretIsHandle(symbol, args, env, ns):  TYPES.register("handle?", Builtin("handle?", interpretIsHandle, [Arg("arg", TypeEnum.ANY)], return_type=Type(":bool"))) +def interpretIsType(symbol, args, env, ns): +    return Bool(isinstance(args[0], TypeWrap)) + +TYPES.register("type?", Builtin("type?", interpretIsType, [Arg("arg", TypeEnum.ANY)], return_type=Type(":bool"))) +  # add types to env  any_type = NebType(":any", None, interpretIsAny)  literal_type = NebType(":literal", any_type, interpretIsLiteral) @@ -104,6 +109,7 @@ number_type = NebType(":number", literal_type, interpretIsNumber)  int_type = NebType(":int", number_type, interpretIsInt)  float_type = NebType(":float", number_type, interpretIsFloat)  handle_type = NebType(":handle", any_type, interpretIsHandle) +type_type = NebType(":type", any_type, interpretIsType)  TYPES.register(":any", any_type)  TYPES.register(":literal", literal_type) @@ -115,3 +121,4 @@ TYPES.register(":number", number_type)  TYPES.register(":int", int_type)  TYPES.register(":float", float_type)  TYPES.register(":handle", handle_type) +TYPES.register(":type", type_type) | 
