Commit Graph

80 Commits

Author SHA1 Message Date
Ginger Bill
1c5ddd65b4 Rudimentary support for parametric polymorphic types 2017-07-13 22:35:00 +01:00
Ginger Bill
b8697fb4ed Change precedence order for types e.g. ^T(x) == ^(T(x)) 2017-07-13 16:20:07 +01:00
Ginger Bill
03570275c1 Fix issue #78 and have a better error message. 2017-07-13 11:35:01 +01:00
Ginger Bill
b5587f1937 Fix aliasing of overloaded procedures from other scopes 2017-07-11 20:54:38 +01:00
Ginger Bill
c4c6975f1b cast(Type)expr; Fix overloaded procedure determination on assignment 2017-07-11 14:40:27 +01:00
Ginger Bill
0be0fb2a57 Nested when statements within records 2017-07-10 23:47:22 +01:00
Ginger Bill
115e6e7f9e Update demo for both subtyping and union based Entity 2017-07-10 23:28:53 +01:00
Ginger Bill
3868a9a0f0 Clean up _preload.odin types 2017-07-10 23:15:41 +01:00
Ginger Bill
ba5050ac7c Compiler Internal Changes: TypeRecord_Union -> Type_Union 2017-07-10 22:59:23 +01:00
Ginger Bill
d936ca1ea0 Compiler internal change: TypeRecord_Enum -> Type_Enum 2017-07-10 22:42:58 +01:00
Ginger Bill
fd8c4d58bb union type allow for any types and removes common fields 2017-07-10 22:32:21 +01:00
Ginger Bill
ce4b7b8b7d Nested record declarations 2017-07-10 20:39:42 +01:00
Ginger Bill
069a47220e Make record semicolon syntax more consistent 2017-07-10 14:52:58 +01:00
Ginger Bill
4b051a0d3b .. half closed range; ... open range; ... variadic syntax 2017-07-07 23:42:43 +01:00
Ginger Bill
45353465a6 Add sort.odin 2017-07-07 22:26:55 +01:00
Ginger Bill
c63cb98019 Fix else do 2017-07-07 17:50:45 +01:00
Ginger Bill
773cf5ca08 Add -show-timings; Clean up polymorphic procedure code a bit 2017-07-07 15:26:49 +01:00
Ginger Bill
2db03cb4a5 Fix aprint* bug; NULL -> nullptr; Better error messages for overloaded functions 2017-07-06 22:43:55 +01:00
Ginger Bill
3d2d461867 Replace many built-in procedures with user-level procedures 2017-07-04 23:52:00 +01:00
Ginger Bill
82696179e8 Merge branch 'master' of https://github.com/gingerBill/Odin 2017-07-04 22:42:41 +01:00
Ginger Bill
188bc28f6a Allow for overloading of polymorphic procedures 2017-07-04 22:42:25 +01:00
Ginger Bill
240da5c8e0 Allow aliasing of aliases 2017-07-04 16:06:08 +01:00
Ginger Bill
689a0c0b49 *_of as keyords; Allow constant aliasing for user/built-in procedures, import names, and library names 2017-07-04 11:23:48 +01:00
Ginger Bill
bc16b290ba Disable polymorphic overloading in the global scope
TODO: Figure out why it does not work in the global scope
2017-07-02 22:08:39 +01:00
Ginger Bill
96d32680fe Allow overloading of polymorphic procedures 2017-07-02 10:45:22 +01:00
Ginger Bill
ed089b44b9 do keyword for inline statements instead of blocks 2017-07-01 11:38:44 +01:00
Ginger Bill
69f7382eec Implicit parametric polymorphic procedures 2017-06-29 20:56:18 +01:00
Ginger Bill
7e3293fc20 Fix odin version printing 2017-06-29 16:08:30 +01:00
Ginger Bill
e4a8283327 Remove Type
What was I thinking?!
2017-06-29 15:48:07 +01:00
Ginger Bill
001baf4419 Add Type -- Runtime type for comparing types (similar to TypeInfo but simpler) 2017-06-29 15:13:41 +01:00
Ginger Bill
d167290b28 Make AstNodeIdent a struct wrapping its Token 2017-06-29 12:11:50 +01:00
Ginger Bill
f4879d4723 Update procedure names and extend demo.odin 2017-06-29 11:25:05 +01:00
Ginger Bill
94afcec757 :: style procedure declarations; remove old parsing code 2017-06-28 23:47:06 +01:00
Ginger Bill
0622509807 Disable var and const declarations 2017-06-28 23:17:20 +01:00
Ginger Bill
647e2cafd7 Fix expand_to_tuple 2017-06-27 22:47:19 +01:00
Ginger Bill
5df854fcef Fixed demo 2017-06-27 15:58:53 +01:00
Ginger Bill
260089431e Write demo for v0.5.0 2017-06-26 21:34:54 +01:00
Ginger Bill
d1365b3466 Fix poly-procs for variadic calls 2017-06-26 19:24:04 +01:00
Ginger Bill
c949ca2a5c Allow for named arguments for polymorphic procedures 2017-06-26 18:20:24 +01:00
Ginger Bill
d974b29f67 Reduce excessive node cloning on para-poly checking and fix scope bug 2017-06-26 14:39:51 +01:00
Ginger Bill
cc7316bb35 Fix IR printing for para-poly procedures 2017-06-26 14:16:16 +01:00
Ginger Bill
a0d8dcd974 Remove let 2017-06-26 13:59:15 +01:00
Ginger Bill
c642e326ce Undef value --- (for setting a value to be uninitialized/undefined) 2017-06-26 11:57:26 +01:00
Ginger Bill
362a118782 Remove "overloading" bug of para-poly-procs 2017-06-25 23:41:46 +01:00
Ginger Bill
3ab481df17 new as a user-level procedure 2017-06-25 22:31:30 +01:00
Ginger Bill
4e7150b470 Allow nested para-poly procedures 2017-06-25 22:29:23 +01:00
Ginger Bill
1ced92be47 Rudimentary para-poly procedures 2017-06-25 22:15:30 +01:00
Ginger Bill
15dbea6899 Generic procedures generate types on use 2017-06-25 19:41:07 +01:00
Ginger Bill
c4081393c1 Fix typo for some built-in procedures 2017-06-25 17:36:10 +01:00
Ginger Bill
1d81b73df9 Basic command line flags: e.g. -opt=0 2017-06-24 22:58:50 +01:00