diff options
author | Bad Diode <bd@badd10de.dev> | 2021-10-26 08:40:59 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2021-10-26 08:40:59 +0200 |
commit | 46356365270b71be94097b3c408d5f35a9ebd6ed (patch) | |
tree | 59ae01f6108a94e818670de1bda37ae12a5fa2fe /src/bytecode/objects.c | |
parent | d54e595644fcaf6756d53d368213ad3129c49327 (diff) | |
download | bdl-46356365270b71be94097b3c408d5f35a9ebd6ed.tar.gz bdl-46356365270b71be94097b3c408d5f35a9ebd6ed.zip |
Add initial function call procedure
Diffstat (limited to 'src/bytecode/objects.c')
-rw-r--r-- | src/bytecode/objects.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/bytecode/objects.c b/src/bytecode/objects.c index e446fb0..3b4a2eb 100644 --- a/src/bytecode/objects.c +++ b/src/bytecode/objects.c | |||
@@ -58,7 +58,8 @@ object_display(Object obj) { | |||
58 | // printf(")"); | 58 | // printf(")"); |
59 | } break; | 59 | } break; |
60 | case OBJ_TYPE_LAMBDA: { | 60 | case OBJ_TYPE_LAMBDA: { |
61 | printf("#{procedure}"); | 61 | printf("#{procedure:%.*s}", |
62 | (int)array_size(obj.chunk->name), obj.chunk->name); | ||
62 | } break; | 63 | } break; |
63 | case OBJ_TYPE_ERR: { | 64 | case OBJ_TYPE_ERR: { |
64 | printf("#{error}"); | 65 | printf("#{error}"); |
@@ -102,6 +103,9 @@ object_equal(Object a, Object b) { | |||
102 | } | 103 | } |
103 | } | 104 | } |
104 | } break; | 105 | } break; |
106 | case OBJ_TYPE_LAMBDA: { | ||
107 | return a.chunk == b.chunk; | ||
108 | } break; | ||
105 | default: { | 109 | default: { |
106 | return false; | 110 | return false; |
107 | } break; | 111 | } break; |
@@ -121,14 +125,14 @@ object_copy(Object src) { | |||
121 | return copy; | 125 | return copy; |
122 | } break; | 126 | } break; |
123 | case OBJ_TYPE_LAMBDA: { | 127 | case OBJ_TYPE_LAMBDA: { |
124 | Object copy = src; | 128 | // Object copy = src; |
125 | StringView name = (StringView){ | 129 | // StringView name = (StringView){ |
126 | .start = src.chunk->name, | 130 | // .start = src.chunk->name, |
127 | .n = array_size(src.chunk->name), | 131 | // .n = array_size(src.chunk->name), |
128 | }; | 132 | // }; |
129 | // TODO: copy full chunk? | 133 | // // TODO: copy full chunk? |
130 | // copy.chunk = chunk_init(name); | 134 | // // copy.chunk = chunk_init(name); |
131 | return copy; | 135 | // return copy; |
132 | } break; | 136 | } break; |
133 | default: { break; } break; | 137 | default: { break; } break; |
134 | } | 138 | } |