Commit Graph

239 Commits

Author SHA1 Message Date
Bruce Hill
b5fb8933af Removed dependency on 'immutable' library. This lets LuaJIT do more
aggressive optimizations and generally helps performance. Some safety is
lost, but I think the performance gains, reduced complexity, and reduced
dependencies are worth it.
2018-06-12 15:14:07 -07:00
Bruce Hill
0c9973ff03 Tidying up exceptions and error reporting. Also simplified the grammar a
tiny bit.
2018-06-12 13:56:35 -07:00
Bruce Hill
810ae220bc Added list/dict metatables to make comparison and string representations
simpler. Also deleted Counters.
2018-06-06 13:25:34 -07:00
Bruce Hill
2d88c68d71 Fixed piping in file. 2018-06-05 16:44:43 -07:00
Bruce Hill
5dfdcb39a6 Fixed indentation detection for indented text with leading whitespace. 2018-06-05 16:38:18 -07:00
Bruce Hill
e22e107390 Minor tidying. 2018-06-04 23:02:13 -07:00
Bruce Hill
08e590ac57 Much better reporting for compile-time errors (now includes source and
line number again)
2018-06-04 22:54:08 -07:00
Bruce Hill
83183122f1 Optimizations and cleanup. Build script now fails on first error and
uses the precompiled versions it has just compiled.
2018-06-04 20:44:58 -07:00
Bruce Hill
563e415e07 Switched from Node(Tuple(values...), source) to Node(source, values...),
thanks to support from immutable-tables for mixed tables.
2018-06-04 17:57:07 -07:00
Bruce Hill
e7bdc35aa8 Cleanups to try/catch logic and object logic. 2018-06-04 17:23:13 -07:00
Bruce Hill
b53516c47c Simplified and correctified lib/object (though the codegen still need
streamlining), added a .stub member to Action trees, and switched
Source's repr to be @filename[start:stop] instead of
"filename[start:stop]"
2018-05-30 17:21:19 -07:00
Bruce Hill
5637676bc4 Dead code cleanup 2018-05-30 14:29:15 -07:00
Bruce Hill
b3df63eb10 Added 'for (%k,%v) in ...' alias for 'for %k = %v in ...' 2018-05-30 14:08:30 -07:00
Bruce Hill
624fcdcc7e Moved as_lua_id() onto 'string' 2018-05-30 13:46:54 -07:00
Bruce Hill
0afcb416bc Microoptimization 2018-05-30 13:41:21 -07:00
Bruce Hill
f9229c5e91 Better parse error reporting. 2018-05-30 13:07:15 -07:00
Bruce Hill
e5d9879a79 Cleaned up patterns a little. 2018-05-30 12:07:08 -07:00
Bruce Hill
a01e7d27bd Removed ldt shim 2018-05-29 19:23:34 -07:00
Bruce Hill
21e3a7b375 More improvements to error reporting. 2018-05-29 19:10:11 -07:00
Bruce Hill
8806d7639e Cleaned and fixed up colored console text output for error messages. 2018-05-29 18:11:04 -07:00
Bruce Hill
e697689ddd Fixed up the edge cases and simplified the code a bit. 2018-05-29 17:10:54 -07:00
Bruce Hill
3573dfe995 Almost-working reimplementation of source code mapping. 2018-05-29 16:15:10 -07:00
Bruce Hill
e17822d1e5 Cleaned up some asserts for performance. 2018-05-29 11:14:07 -07:00
Bruce Hill
b6be516e3f Fix for luajit, though I'm not sure why it worked for lua either. 2018-05-28 23:24:43 -07:00
Bruce Hill
2e15c0fd50 Some tweaks/cleanup on the nomsu code as well as adding variable
mangling to 'parse % as %' to make almost hygienic macros.
2018-05-27 18:29:23 -07:00
Bruce Hill
6ce32bdd25 Cleaned up lpeg matching stuff to use lpeg.Carg(1) instead of
lpeg.userdata, and switched indent/dedent/nodent to use a number to
track indentation instead of a stack.
2018-05-26 19:25:17 -07:00
Bruce Hill
0c7c06beab Moving back to capturing tables in LPEG and everything is a Source, not
string.
2018-05-26 15:59:03 -07:00
Bruce Hill
8cb2788e0d Re-added sources. 2018-05-26 15:04:38 -07:00
Bruce Hill
0b4a81191a Minor tidying. 2018-05-26 13:09:25 -07:00
Bruce Hill
64294f5cd6 Removed the Word tree type and replaced it with raw strings, since
they're only used as part of Actions
2018-05-24 21:17:15 -07:00
Bruce Hill
d9b795ee45 Adding some src map building code. 2018-05-24 20:27:26 -07:00
Bruce Hill
446892d11e Consolidating code obj code and expunging all [[..]]-style lua strings. 2018-05-24 16:13:46 -07:00
Bruce Hill
0c07968e07 Added error checking for bad paths. 2018-05-24 15:51:16 -07:00
Bruce Hill
5758626bf7 Cleaned up string quotes 2018-05-24 15:36:10 -07:00
Bruce Hill
2e345e271f Misc changes, fixed up Object lib and tests. 2018-05-24 14:57:35 -07:00
Bruce Hill
ad94ed3653 Moved all the tree->lua and tree->nomsu code back into single functions
in nomsu.moon, and cleaned up how Vars are treated, since they are not
atomic.
2018-05-16 19:08:59 -07:00
Bruce Hill
6f6c4377b2 Initial working version. 2018-05-16 18:13:02 -07:00
Bruce Hill
af9dc07025 Converted DictEntry to be an actual tree, instead of a pseudo-tree, made 'parse % as %'
generate lua code with already-substituted tree literals instead of reparsing and
substituting at parse time, and made some general optimizations.
2018-05-16 15:45:59 -07:00
Bruce Hill
3ffeaf1f5d Removed "for all"-style iteration and changed "for % from 1 to 10"-style
to "for % in 1 to 10" for consistency.
2018-05-15 20:33:07 -07:00
Bruce Hill
01aa199f7a Adding support for coroutines, and cleaning up comment syntax. 2018-05-15 16:36:38 -07:00
Bruce Hill
28cd9ae0b7 More API cleanup, and fixed a bug with optimized lua files generating
spurious circular import errors.
2018-05-15 15:22:03 -07:00
Bruce Hill
ae979c3718 Minor cleanups changes. 2018-05-15 14:53:42 -07:00
Bruce Hill
3be20840ca Removing dead code. 2018-05-14 15:39:16 -07:00
Bruce Hill
52a3631ed6 Merging use_file and run_file 2018-05-14 15:37:25 -07:00
Bruce Hill
7410e42bc0 Minor optimizations. 2018-05-14 14:45:45 -07:00
Bruce Hill
95ee15982b Switched to use inline nomsu generation for Nomsu tree lua
compilation and removed some dead code around Nomsu.debug
2018-05-11 13:54:24 -07:00
Bruce Hill
4126589afe Cleanup: removed "File" type trees (now just Block), overhauled
how_do_i.nom, added "result of %" macro, which allowed comprehensions to
be way more concisely defined. Moved len() operator into the nomsu
environment.
2018-05-10 22:47:18 -07:00
Bruce Hill
4e7b652014 Switched luajit to use custom built luajit lpeg, allowed find to
traverse symbolic links.
2018-05-09 20:35:11 -07:00
Bruce Hill
1a755ddee8 Added tentative support for luajit (depends on pure-lua LPEG
implementation).
2018-05-09 13:35:04 -07:00
Bruce Hill
a5bbce315d Minor tweaks/cleanups. 2018-05-03 22:34:00 -07:00