Commit Graph

30 Commits

Author SHA1 Message Date
leaf corcoran
af2c443807 don't alter class constructor at all 2013-01-23 17:50:36 -08:00
leaf corcoran
1e84b5d9ff replace hoist_declarations with declare_glob in classes, fixes #65 2013-01-13 14:10:21 -08:00
leaf corcoran
f98f822891 extract class name from assign statement if anonymous class is being assigned 2012-11-01 09:19:04 -07:00
leaf corcoran
97394fbbc9 classes can be expressions, classes don't require name or body anymore 2012-11-01 08:56:54 -07:00
leaf corcoran
abc2599d15 fix export ^ with class declarations inside of do 2012-10-31 13:44:56 -07:00
leaf corcoran
021d4878a0 class name can be any assignable expression #46 2012-10-31 00:07:59 -07:00
leaf corcoran
b6987fe6d8 wrap class declaration in do instead of anonymous function 2012-10-30 23:34:42 -07:00
leaf corcoran
f8925a46a6 classes can implicitly return #46 2012-10-30 09:44:02 -07:00
leaf corcoran
1be72f57b7 add implicit return to end of files #46 2012-10-30 09:38:47 -07:00
leaf corcoran
8cf92a3591 Allow real statements inside of class 2012-09-30 19:18:21 -07:00
leaf corcoran
bc13b1b8cc add inherited callback to classes 2012-09-08 18:08:54 -07:00
leaf corcoran
a750523d10 hoist name declarations from statements inside of a class to the top of the class body 2012-09-07 20:20:34 -07:00
leaf corcoran
c93e2d35f5 fixed regression, assign allowed in class decl again 2012-01-22 11:50:30 -08:00
leaf corcoran
1ef297349a updated test 2012-01-11 20:39:09 -08:00
leaf corcoran
5933b733ba assigning class variables with @ property names 2012-01-08 23:10:25 -08:00
leaf corcoran
cd240444de updated test 2012-01-08 22:24:58 -08:00
leaf corcoran
d1059b8f98 class level inheritance, changed class representation slightly
Looking up a class property will now search the parent class properties
if parent exists

Classes have a few more built in properties:

  * __name holds the name of the class as it was defined as a string
  * __base holds the instance metatable as it was defined (not dynamic)
  * __parent holds the class's parent class if it exists (not dynamic)

The way class inheritance is handled was CHANGED (uses __base instead of
looking at __index of parents metatable). Make sure you recompile all
your code if using class inheritance because old classes won't work with
new ones.
2011-12-03 19:17:06 -08:00
leaf corcoran
0d232f98e7 super tests, fixed regression when compiling chain dot args 2011-12-03 10:44:41 -08:00
leaf corcoran
5c999fb680 colon_stub on super will pass self as receiver 2011-12-03 10:39:03 -08:00
leaf corcoran
fc72baf423 calling function of super with \ uses self instead of class as first arg 2011-12-02 20:37:47 -08:00
leaf corcoran
6a07d50277 fixed super dot access, made super available as a value 2011-12-02 20:07:42 -08:00
leaf corcoran
5d76a8d741 fixed bug with class value declaring 2011-10-01 22:35:34 -07:00
leaf corcoran
3fb8682f96 moved class from compiler to tree transformation 2011-10-01 22:35:34 -07:00
leaf corcoran
24ae69cfdf fixed bug with comments failing to parse in open tables 2011-08-28 23:19:48 -07:00
leaf corcoran
ba29e159b5 tests pass, fixed some bug 2011-07-14 00:02:07 -07:00
leaf corcoran
a80f8f875e instances store class in __class 2011-07-04 11:40:20 -07:00
leaf corcoran
27836f1d80 super for classes, synthesized init calls super 2011-06-19 12:07:01 -07:00
leaf corcoran
67a59a9622 class inheritance 2011-06-15 22:41:17 -07:00
leaf corcoran
65fdf7e6b2 new class system 2011-06-15 08:52:01 -07:00
leaf corcoran
858608a04d basic class syntax 2011-06-14 23:13:33 -07:00