Mercurial > repos > rhope
annotate runtime/blueprint.c @ 75:0083b2f7b3c7
Partially working implementation of List. Modified build scripts to allow use of other compilers. Fixed some bugs involving method implementations on different types returning different numbers of outputs. Added Fold to the 'builtins' in the comipler.
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 06 Jul 2010 07:52:59 -0400 |
parents | d4b44ae2e34a |
children | 43cc42df26cc |
rev | line source |
---|---|
39 | 1 #include "blueprint.h" |
2 #include "builtin.h" | |
66
d4b44ae2e34a
New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents:
49
diff
changeset
|
3 #include "context.h" |
49
3e20ed8959c4
Added initial FFI implementation, Array type and 64-bit integers
Mike Pavone <pavone@retrodev.com>
parents:
39
diff
changeset
|
4 #include <stddef.h> |
39 | 5 |
6 typedef struct | |
7 { | |
8 blueprint * bp; | |
9 } l_Build; | |
10 | |
11 object * make_Blueprint(int32_t type_id) | |
12 { | |
13 t_Blueprint * obj; | |
14 object * ret = new_object(TYPE_BLUEPRINT); | |
15 obj = (t_Blueprint *)ret; | |
49
3e20ed8959c4
Added initial FFI implementation, Array type and 64-bit integers
Mike Pavone <pavone@retrodev.com>
parents:
39
diff
changeset
|
16 obj->bp = type_id ? get_blueprint_byid(type_id) : NULL; |
39 | 17 return ret; |
66
d4b44ae2e34a
New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents:
49
diff
changeset
|
18 } |
49
3e20ed8959c4
Added initial FFI implementation, Array type and 64-bit integers
Mike Pavone <pavone@retrodev.com>
parents:
39
diff
changeset
|
19 |
66
d4b44ae2e34a
New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents:
49
diff
changeset
|
20 int32_t _internal_blueprint_eq(object * left, object * right) |
d4b44ae2e34a
New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents:
49
diff
changeset
|
21 { |
d4b44ae2e34a
New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents:
49
diff
changeset
|
22 t_Blueprint * l = (t_Blueprint *)left; |
d4b44ae2e34a
New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents:
49
diff
changeset
|
23 t_Blueprint * r = (t_Blueprint *)right; |
d4b44ae2e34a
New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents:
49
diff
changeset
|
24 return l->bp == r->bp; |
d4b44ae2e34a
New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents:
49
diff
changeset
|
25 } |
d4b44ae2e34a
New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents:
49
diff
changeset
|
26 |
d4b44ae2e34a
New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents:
49
diff
changeset
|
27 |