27 Commits

Author SHA1 Message Date
K. Lange
d2d1c98a1e Add 'del' statement. 2021-01-14 16:08:25 +09:00
K. Lange
10f3c16e40 Major overhaul of strings to support Unicode 2021-01-12 19:23:14 +09:00
K. Lange
3141678fa0 Add 'is'/'is not' for exact object equivalence 2021-01-11 15:03:05 +09:00
K. Lange
e6997418cb Improvements to repl tab completion 2021-01-10 22:07:13 +09:00
K. Lange
52427a5147 Add a basic 'with' statement
This is incomplete; it's missing the necessary plumbing to ensure __exit__
still gets called if the inner block returns or raises an exception. TODO
2021-01-09 12:46:59 +09:00
K. Lange
11e6b79e49 Remove 'export' keyword 2021-01-07 11:15:57 +09:00
K. Lange
57455ea80d basic lambda expressions (TODO: needs complex argument lists) 2021-01-05 13:28:45 +09:00
K Lange
ff8ed02ebd Make print() a function before it's too late 2021-01-04 23:34:10 +09:00
K. Lange
132542c6ab allow 'elif' for Python compatibility 2021-01-04 09:13:39 +09:00
K. Lange
8ef070bf94 Support 'from foo import bar, baz' 2021-01-04 07:47:05 +09:00
K. Lange
aa1c0c8e93 Support 'import foo as bar' 2021-01-04 07:39:00 +09:00
K. Lange
8ad29f7891 Ditch character literals and add single, triple strings 2021-01-03 14:09:45 +09:00
K. Lange
58132eedf8 Add binary operators 2021-01-01 08:55:39 +09:00
K. Lange
9a370f00e1 Add continue/break statements 2020-12-31 16:59:51 +09:00
K. Lange
33f7561076 List comprehensions, and several gc+scoping fixes along the way 2020-12-30 21:57:13 +09:00
K. Lange
5ff31e7d96 fix parse error line output for error tokens from scanner 2020-12-29 22:16:35 +09:00
K. Lange
c6e5c8c120 once again, completely redo the parsing for indentation so that we can have pretty syntax errors 2020-12-29 15:26:45 +09:00
K. Lange
a0d52a61f2 add an exception mechanism 2020-12-29 11:00:12 +09:00
K Lange
b32dde0431 add % operator 2020-12-28 16:32:27 +09:00
K. Lange
b3ad2e1f22 Second pass at cleaning up built-ins 2020-12-28 19:26:01 +09:00
K. Lange
1d3368861b fix a bunch of compiler stuff 2020-12-28 12:16:44 +09:00
K. Lange
8f42695f36 Fix up repl 2020-12-28 10:54:25 +09:00
K. Lange
1f754ebc01 not exactly how modules work in Python, but, uh, good enough for us for now 2020-12-27 18:55:52 +09:00
K. Lange
076da0bc1e remove temporary 'block' keyword 2020-12-27 10:58:36 +09:00
K. Lange
aab01f01f7 Finish up chapter 22, local variables; fix up indentation-based scoping 2020-12-26 18:39:29 +09:00
K. Lange
928047f1db Completed chapter 21, global variables 2020-12-26 16:53:15 +09:00
K. Lange
14aeea5f5b through chapter 19 of Crafting Interpreters 2020-12-26 09:32:21 +09:00