Commit Graph

89 Commits

Author SHA1 Message Date
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
87b93f4aba Added nomsu:assert() 2018-01-05 15:23:18 -08:00
Bruce Hill
de668ce174 Low hanging optimization fruit. 2018-01-05 14:56:35 -08:00
Bruce Hill
8cc1262504 Updated examples and made operator characters not stick to each other.
Useful for <%x>=6 properly registering as <%x> = 6.
2018-01-03 19:26:41 -08:00
Bruce Hill
b2ddc1d768 Added support for \000 and \x00 style byte literals. 2018-01-03 17:23: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
611a8c87f3 renamed utils2 -> utils 2017-12-18 16:26:26 -08:00
Bruce Hill
eaea9c0599 Recompiled. 2017-12-18 16:25:56 -08:00
Bruce Hill
3c303018bb Tweaks. 2017-12-15 15:30:05 -08:00
Bruce Hill
28f5c31299 Switched compiler to do lua> instead of lua files. 2017-12-14 16:41:22 -08:00
Bruce Hill
49adc12952 Minor fix. 2017-12-14 14:26:24 -08:00
Bruce Hill
ce398c255a Rebuild. 2017-12-14 14:08:07 -08:00
Bruce Hill
536a3ba649 Got it working. 2017-12-13 16:29:15 -08:00
Bruce Hill
0c1c406ce0 More updates with more functional macros and source code storage. 2017-12-11 17:53:23 -08:00
Bruce Hill
0f0dcaac37 Recompiled. 2017-12-09 16:00:09 -08:00
Bruce Hill
96441251c4 Pretty much everything is working?? 2017-12-09 15:34:52 -08:00
Bruce Hill
28b6bc1883 Simplified parser by removing prev_edge. 2017-12-08 15:39:05 -08:00
Bruce Hill
8da2b1d64c Added unicode support and cleaned up the parser a bit. 2017-12-08 15:37:36 -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
8c0816995a Added empty string check. 2017-11-01 20:11:44 -07:00
Bruce Hill
f1a2c936de Fixed some codegen stuff, optimized "say" for the common case of string
literals.
2017-11-01 16:49:11 -07:00
Bruce Hill
b0072e6dcf Added local var persistence for REPL. 2017-10-31 18:35:40 -07:00
Bruce Hill
6ba79a8ff1 Added support for serializing rules. 2017-10-31 16:19:08 -07:00
Bruce Hill
c1ec00d5fc Changed it so variables can't contain wordbreakers anymore. 2017-10-30 14:08:23 -07:00
Bruce Hill
28a6446c66 Added tree_to_nomsu() and improved codegen by compiling \foo to
nomsu:parse("foo") and removing some newlines.
2017-10-22 18:40:49 -07:00
Bruce Hill
3d81837261 Made it so nomsu only runs REPL with -i 2017-10-20 15:17:57 -07:00
Bruce Hill
c6819cf1e9 More callstack fixin 2017-10-20 15:10:04 -07:00
Bruce Hill
b909dce5d1 Fix for callstack. 2017-10-20 15:07:57 -07:00
Bruce Hill
09cb00e106 Recompile. 2017-10-19 18:16:48 -07:00
Bruce Hill
e42f14dbd1 Recompile. 2017-10-19 17:01:08 -07:00
Bruce Hill
e43f60a124 Rebuilt. 2017-10-13 19:44:32 -07:00
Bruce Hill
bccfe9d8e1 Changed tokenizing to treat symbols as their own things. 2017-10-13 19:41:58 -07:00
Bruce Hill
56f014a488 Improved code generation by changing vars["x"] to vars.x for allowed lua
var names.
2017-10-13 18:14:18 -07:00
Bruce Hill
a176c7dfb5 Rebuilt. 2017-10-13 18:09:46 -07:00
Bruce Hill
d13bcde2b9 Renamed repr_if_not_string to "stringify" and added nomsu:stringify for
convenience.
2017-10-13 16:16:07 -07:00
Bruce Hill
7435b61380 Changed generated code to be less verbose for function and macro defs
(using "foo %" syntax instead of {type="FunctionCall", ...} literals).
2017-10-13 16:10:47 -07:00
Bruce Hill
06d05ebeee Tweaked macros to insert runtime checks, rather than compile-time. 2017-10-13 14:15:02 -07:00
Bruce Hill
c189be29bc Added better output control for stderr. 2017-10-12 14:39:49 -07:00
Bruce Hill
d0b0cfcf39 Added an option to pass in vars to run() 2017-10-10 00:52:07 -07:00
Bruce Hill
2f1c0284fe Test fix. 2017-10-09 04:37:16 -07:00
Bruce Hill
9e1aaf2d5c Moved timeout code into compiler and out of a lib. 2017-10-09 04:31:41 -07:00
Bruce Hill
ca130f36a5 Added chain for loaded files. 2017-10-09 03:51:53 -07:00
Bruce Hill
e8c820b8f5 Moved colors to only when invoking from command line. 2017-10-08 20:41:05 -07:00
Bruce Hill
5b28823d6b Fixed command line for no args. 2017-10-08 18:25:50 -07:00
Bruce Hill
7c231bf435 Updated command line interface and compilation. 2017-10-08 18:23:48 -07:00
Bruce Hill
529afd465f Fixed permissions to work better with aliases. 2017-10-08 15:06:05 -07:00
Bruce Hill
b7973b0afa Renamed ansicolors to consolecolors. 2017-10-07 16:25:17 -07:00