annotate runtime/builtin.h @ 30:914ad38f9b59

Compiler now works for some simple programs
author Mike Pavone <pavone@retrodev.com>
date Mon, 28 Sep 2009 19:42:33 -0400
parents 31f8182f3433
children 495dddadd058
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #ifndef _BUILTIN_H_
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2 #define _BUILTIN_H_
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
3 #include "plat_types.h"
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
4
30
914ad38f9b59 Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents: 12
diff changeset
5 #include "object.h"
914ad38f9b59 Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents: 12
diff changeset
6 #include "func.h"
914ad38f9b59 Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents: 12
diff changeset
7
7
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 //Builtin Types
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9 enum {
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10 TYPE_UINT8 = 1,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 TYPE_UINT16,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12 TYPE_UINT32,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13 TYPE_UINT64,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14 TYPE_INT8,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 TYPE_INT16,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
16 TYPE_INT32,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17 TYPE_INT64,
12
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents: 7
diff changeset
18 TYPE_BOOLEAN,
7
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
19 TYPE_FLOAT32,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
20 TYPE_FLOAT64,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
21 TYPE_ARRAY,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
22 TYPE_METHODMISSINGEXCEPTION,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
23 TYPE_FIELDMISSINGEXCEPTION,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
24 TYPE_WRONGTYPEEXCEPTION,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
25 TYPE_FIRST_USER //Insert new builtin types before this one
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
26 };
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
27
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
28 //Builtin Methods
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
29 enum {
12
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents: 7
diff changeset
30 METHOD_ADD=1,
7
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
31 METHOD_SUB,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
32 METHOD_DIV,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
33 METHOD_MUL,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
34 METHOD_LSHIFT,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
35 METHOD_RSHIFT,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
36 METHOD_EQUALS,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
37 METHOD_GREATER,
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
38 METHOD_LESS,
12
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents: 7
diff changeset
39 METHOD_IF,
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents: 7
diff changeset
40 METHOD_SETFIELDMISSING,
31f8182f3433 Finished fib test and did some small work on the c backend
Mike Pavone <pavone@retrodev.com>
parents: 7
diff changeset
41 METHOD_GETFIELDMISSING,
7
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
42 METHOD_MISSING,//Insert new builtin methods before this one
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
43 METHOD_FIRST_USER
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
44 };
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
45
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
46 void register_builtin_types();
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
47 void register_builtin_type(uint32_t type);
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
48
30
914ad38f9b59 Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents: 12
diff changeset
49 //TODO: Remove this when it's possible to write Print in Rhope
914ad38f9b59 Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents: 12
diff changeset
50 FuncDef(Print)
914ad38f9b59 Compiler now works for some simple programs
Mike Pavone <pavone@retrodev.com>
parents: 12
diff changeset
51
7
d61550e2c001 Added current work on new runtime
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
52 #endif //_BUILTIN_H_