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
290b73f92b
differentiate between table key literals and variable references #42
2012-09-07 18:51:19 -07:00
leaf corcoran
b170172465
wrap update expressions in parentheses if passed an expression #43
2012-09-07 16:41:19 -07:00
leaf corcoran
d3170a018d
support full syntax of generic for loop #41
2012-08-12 00:58:35 -07:00
leaf corcoran
c93e2d35f5
fixed regression, assign allowed in class decl again
2012-01-22 11:50:30 -08:00
leaf corcoran
16f4c956bf
unless line decorator
2012-01-13 21:48:07 -08:00
leaf corcoran
bf416dbb1c
remove empty return statement at end of fndef ( #20 )
2012-01-13 21:24:46 -08:00
leaf corcoran
1ef297349a
updated test
2012-01-11 20:39:09 -08:00
leaf corcoran
d7f8ade88e
standalone @ and @@ are aliases for self and self.__class
2012-01-10 22:14:14 -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
3fc11c813e
@@ syntax for class variables within instances
2012-01-08 22:02:43 -08:00
leaf corcoran
53f587021d
support for indented unbound tables as last argument to function calls
2011-12-08 22:44:07 -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
02a5dbcdd1
fix compile failure when comprehension exp has no value
2011-11-19 13:03:51 -08:00
leaf corcoran
3f6c1d517e
switch tests, parse switch non-cascade expression
2011-11-18 19:07:17 -08:00
leaf corcoran
636c24258f
added key,value table comprehensions
2011-11-17 20:34:16 -08:00
leaf corcoran
5d9851b8cd
export keyword works before class declaration, fixed export test
2011-11-06 22:48:25 -08:00
leaf corcoran
374a7c5975
can export assignment statements
2011-11-06 22:29:39 -08:00
leaf corcoran
de3372d96e
import done through transform, binding import also works now
2011-11-06 22:06:39 -08:00
leaf corcoran
5cdbb68503
rebuilt tests
2011-11-06 15:44:40 -08:00
leaf corcoran
88683065e0
use , for slice range delimiter (sorry)
2011-11-05 10:00:09 -07:00
leaf corcoran
6925deedc8
fixed parse error for comment at end of file
2011-11-04 18:58:01 -07:00
leaf corcoran
c3fd7812ce
fixed with's dot chain from not parsing all types after first chain item
2011-11-01 19:56:29 -07:00
leaf corcoran
a2f9ca0743
vararg bubbling works for block_exp
2011-10-12 21:03:55 -07:00
leaf corcoran
d43f0f5a9c
moved unpack foreach to transform, removed do end from output
2011-10-10 00:24:16 -07:00
leaf corcoran
0131786390
varargs bubbling moved to block_exp
2011-10-09 15:58:39 -07:00
leaf corcoran
7f55485e62
tests for special export symbols
2011-10-09 02:00:25 -07: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
b7af08f15f
function stub syntax, and start of tree transformer
2011-10-01 11:46:47 -07:00
leaf corcoran
6fae81994c
support return statement with no arguments
2011-09-30 23:23:22 -07:00
leaf corcoran
319d387c72
fixed parse error with some keywords at start of variable names
2011-09-30 20:20:36 -07:00
leaf corcoran
6c391cb572
fixed "\\" from not parsing
2011-09-11 23:36:01 -07:00
leaf corcoran
d0a92fb1db
self args can be in any function, default value for self args works
2011-09-11 23:18:05 -07:00
leaf corcoran
f2ce353b4c
added :
prefix operator for self assignment in table lits
2011-08-28 23:41:24 -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
20548ecd70
..= for string concatenation update
2011-08-20 10:44:08 -07:00
leaf corcoran
d75c2b04ff
arguments can be continued on next line with indent
...
+ some parsing cleanups
2011-08-20 10:38:40 -07:00
leaf corcoran
faf21dd805
keep track of accumulator size instead of using length operator
...
should be faster
2011-08-13 19:19:17 -07:00
leaf corcoran
a76c251899
don't use table.insert to append to table
2011-08-13 11:20:10 -07:00
leaf corcoran
9bc2b1eef4
shebang support
2011-08-12 19:51:50 -07:00
leaf corcoran
05b3a8f989
fixed number literals (all lua ones supported)
...
integer, float and hex
2011-08-12 19:35:22 -07:00
leaf corcoran
f1ec1ae321
fix updated test
2011-07-27 22:35:45 -07:00
leaf corcoran
20b6ca7036
vararg bubbling for ... in comprehension expressions
2011-07-22 21:16:28 -07:00
leaf corcoran
472c107786
fixed parse error for empty lines before else/elseif
2011-07-22 19:21:12 -07:00