Commit Graph

41 Commits

Author SHA1 Message Date
Bruce Hill
c79bea4401 Overhaul of compiling API (eliminated some of the expr/statements
helpers and forced the use of {expr=..., locals=...}-type syntax. This
helped fix up all of the cases like loops where locals were being
mishandled and led to some cleaner code.
2018-01-25 17:36:05 -08:00
Bruce Hill
6d11354b3f Added implicit local declarations and new syntax of %var <- %value. 2018-01-23 19:22:45 -08:00
Bruce Hill
376dd65278 Updated and fixed up how_do_i 2018-01-19 18:13:13 -08:00
Bruce Hill
c1ac0635fd Refactored syntax a bit so that ":" isn't necessary for a block, and can
be used for inline expressions instead. Also, dict literals now use ":" instead
of "=".
2018-01-19 17:30:39 -08:00
Bruce Hill
f91d06d9fa Initial commit of object oriented classes. 2018-01-18 01:49:27 -08:00
Bruce Hill
8bbebb8735 Completely fixed/reworked tree_to_nomsu, and it's okay right now. 2018-01-17 16:37:27 -08:00
Bruce Hill
268a636157 Optimized loops to use local vars in loop definitions when possible. 2018-01-12 17:08:05 -08:00
Bruce Hill
6b09187899 Switched to use load() with environment table instead of passing in
nomsu to everything. This has some nice code cleanliness benefits.
2018-01-12 16:33:11 -08:00
Bruce Hill
e09f05a50c Reshuffled all the library code into files that make more sense and
cleaned up some of the library code.
2018-01-11 18:51:21 -08:00
Bruce Hill
7251f75087 Added "local %" macro as a stopgap for locals. 2018-01-11 15:32:54 -08:00
Bruce Hill
60aa3f5fcf Fixed ipairs->pairs to make dict iteration work. 2018-01-11 15:26:51 -08:00
Bruce Hill
3fbc89273d Removed some dead code and streamlined the API a bit. Also added
training wheels for ease of transitions.
2018-01-11 04:38:46 -08:00
Bruce Hill
756c1f718e Renamed "require %" to "use %" 2018-01-11 03:35:35 -08:00
Bruce Hill
9d8c701441 Added "%'s id" to use UUIDs and changed "% = %" to "set % = %" and some
other misc.
2018-01-11 03:32:12 -08:00
Bruce Hill
82cc997ddf Renamed rule % = % to action % % 2018-01-11 01:19:03 -08:00
Bruce Hill
53a9d4eae8 Pretty much mostly working. 2018-01-10 20:45:03 -08:00
Bruce Hill
421abe1a6f Cleaned up metaprogramming to go "compile to" -> "rule =" -> "parse as".
This speeds things up a bit, and is more intuitive.
2018-01-09 14:59:06 -08:00
Bruce Hill
f97ab858ed Modernized the codebase a bit to include "immediately:" for immediately
running code before further parsing takes place. That means that in the
default case, whole files can be run at once, which makes all but the
weirdest edge cases make a lot more sense and operate smoothly.
2018-01-08 18:53:57 -08:00
Bruce Hill
568a44ef19 Reworking some stuff so that functions only allow expressions to be
return values with either an explicit "return" statement or if they're
the only line in the function, and the line is an expression.
2018-01-07 18:45:27 -08:00
Bruce Hill
c92e5fbc81 Some overhaul of binary operators so that arbitrary math patterns work
fine.
2018-01-07 18:03:37 -08:00
Bruce Hill
2df539a762 More cleanup of vars.XX -> \%XX 2018-01-05 15:45:46 -08:00
Bruce Hill
cfee75b21b Reworked {} a bit and added dicts to the core language. Did some more
testing on string interpolations too.
2018-01-03 00:52:01 -08:00
Bruce Hill
4789892824 Got everything mostly working. 2017-12-30 14:31:07 -08:00
Bruce Hill
536a3ba649 Got it working. 2017-12-13 16:29:15 -08:00
Bruce Hill
b3b8c4d731 Some stuff changed to allow escaped args and some other ports from the
two_defs branch.
2017-12-04 17:35:47 -08:00
Bruce Hill
60a85bbd8b Removed some unnecessary semicolons on keywords. 2017-10-23 16:28:45 -07:00
Bruce Hill
b98059261c Abbreviated "lua code" to "lua>" and "lua expr" to "=lua" and "lua
block" to "lua do>"
2017-10-19 17:00:10 -07:00
Bruce Hill
bccfe9d8e1 Changed tokenizing to treat symbols as their own things. 2017-10-13 19:41:58 -07:00
Bruce Hill
e476bfea52 Improved code generation for "when" statements using elseif, and
improved code generation for loops by omitting goto labels when not used.
2017-10-13 18:09:04 -07:00
Bruce Hill
454bb76e2f Added chain and "with". 2017-10-12 14:39:03 -07:00
Bruce Hill
6a429d7955 Added "unless" to core. 2017-10-07 16:38:13 -07:00
Bruce Hill
dcd3391b36 Updated to undo some of the block/thunk stuff. Thunks are thunks, and
expressions can be grouped with parens, and they have a clear
distinction.
2017-10-02 17:21:22 -07:00
Bruce Hill
e2bbbfe161 More stuff is working more better. 2017-09-29 22:04:03 -07:00
Bruce Hill
ac25e20b9f Kinda mostly working, except for closure vars like in lib/secrets.nom. 2017-09-28 17:49:15 -07:00
Bruce Hill
10d61df78b Making forward progress. 2017-09-26 15:27:01 -07:00
Bruce Hill
af3274ca92 massive overhaul, compiler kinda works. 2017-09-24 20:20:27 -07:00
Bruce Hill
e4660b169c Renamed compiler -> nomsu for concision and clarity. 2017-09-22 11:56:46 -07:00
Bruce Hill
6882862d0f Cleaned up code generation to have less cruft. 2017-09-22 11:44:07 -07:00
Bruce Hill
b387e94a1e Did that. 2017-09-22 00:04:45 -07:00
Bruce Hill
5f2db8da0e Everything fixed up and some reduced lua codespew too! 2017-09-21 02:33:04 -07:00
Bruce Hill
3715481506 Another overhaul, this time pulling all the chunks of the core lib into
their own files.
2017-09-21 00:10:26 -07:00