Commit Graph

1664 Commits

Author SHA1 Message Date
01b61c83d7 First phase of changing object representation.
This code is full of hacks and isn't the right representation, but
it gets it so that Value is no longer just a raw Obj*.
2013-11-16 11:26:32 -08:00
1266578a4e Add trivial fib benchmark. 2013-11-14 20:57:56 -08:00
cfb5193ce8 Function parameters. 2013-11-14 18:25:28 -08:00
167e174480 User-defined operators. 2013-11-14 10:59:28 -08:00
f6eadbe3f4 Get rid of mixfix methods (for now at least). 2013-11-14 09:21:58 -08:00
a24f29002d Better parsing error messages. 2013-11-13 23:06:53 -08:00
5ac4087d0c Some design notes. 2013-11-13 17:09:55 -08:00
85d9bffa08 Block comments. 2013-11-13 17:09:47 -08:00
27a652e565 Start sketching out inheritance. 2013-11-13 11:05:03 -08:00
509f62fdad Ditch man file. 2013-11-13 07:15:10 -08:00
9d4599f6e6 Unary operators and variable assignment. 2013-11-13 07:10:52 -08:00
7e2c200e0d Garbage collection! 2013-11-12 08:32:35 -08:00
0339bcdeca Use object conversion macros consistently. 2013-11-10 14:21:14 -08:00
915ecb4e58 Static methods. 2013-11-10 11:46:13 -08:00
2f241e2225 Metrics for tests. 2013-11-10 11:12:38 -08:00
f19dd64f8b Floating point number literals. 2013-11-09 21:32:57 -08:00
3cdabcb8c7 "%" operator for numbers. 2013-11-09 21:01:18 -08:00
a1f10786ef "this" expressions. 2013-11-09 15:42:23 -08:00
0cc5524249 Generate correct code for locals. 2013-11-09 11:38:01 -08:00
a2f0e41bcb Method parameters. 2013-11-09 11:18:27 -08:00
166d74930f "is" operator. 2013-11-07 17:07:32 -08:00
55e433f980 Reorganize the compiler to be bottom-up.
Gets rid of a bunch of forward declarations and shortens the code.
Also makes points of recursion more explicit.
2013-11-07 07:04:25 -08:00
8f6881c6a8 Change syntax for blocks -> fns. 2013-11-06 07:47:47 -08:00
c0c6020292 "block" -> "function".
Moving away from using Smalltalk-style block objects for all scopes.
2013-11-06 06:52:28 -08:00
4ff444b1ab Unskip some working tests. 2013-11-05 20:38:16 -08:00
2e6888364d "null" literal. 2013-11-05 18:22:22 -08:00
3db228eecf Start hacking on "if" expressions. 2013-11-05 15:40:21 -08:00
67356df1f9 "==" and "!=" operators. 2013-11-05 09:57:57 -08:00
c331ce5301 Tweak metrics script. 2013-11-05 07:57:18 -08:00
6000177126 Clean up block and method calling. 2013-11-05 07:56:59 -08:00
dff19bd8c3 Booleans and comparison operators on numbers. 2013-11-03 21:38:58 -08:00
dae0246581 Pratt parsing FTW! 2013-11-03 10:16:14 -08:00
1741bb2693 ".toString" on num and string. 2013-11-01 23:27:28 -07:00
cfa65a6536 Don't require a newline at the end of a file. 2013-11-01 06:57:21 -07:00
70f6d61cca Start hacking in a REPL. 2013-10-31 22:25:00 -07:00
4f4f630fec Simple script for code metrics. 2013-10-31 21:54:04 -07:00
46c0fe87e6 Parentheses for grouping. 2013-10-31 21:49:15 -07:00
8e6ce2bb2a Clean up file reading. 2013-10-31 14:39:41 -07:00
64f1b39ee9 Get infix arithmetic operators working. 2013-10-31 07:04:44 -07:00
3f433922eb Reorganize object types. Sort alphabetically. 2013-10-28 07:17:36 -07:00
9208a7f862 Start testing errors.
- Add support to test runner for compile errors.
- Include line number in tokens.
- Exit with non-zero on compile error.
2013-10-28 07:12:39 -07:00
db14c531b8 More tests for primitives. 2013-10-28 06:53:51 -07:00
f5d9908346 String literal tests. 2013-10-28 06:45:19 -07:00
95fb0863d9 Add IO class.
With io.write(), can start writing tests now.
2013-10-27 22:45:40 -07:00
ca445412b8 Reorganize compiler code a bit. 2013-10-27 21:59:14 -07:00
6ce2c7cec5 Move primitives to separate file. 2013-10-27 11:28:15 -07:00
c7e11059f4 Allow multi-part method calls.
Also correctly mangle names with arguments and parts.
2013-10-27 11:20:19 -07:00
b9baf46e9a Argument lists. 2013-10-26 16:01:44 -07:00
d9a4da94a3 "count" method on strings. 2013-10-26 14:34:15 -07:00
f867bb8348 String literals and objects. 2013-10-25 20:40:24 -07:00