Commit Graph

218 Commits

Author SHA1 Message Date
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
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
Bruce Hill
2abaf67b66 Fix for compile lib putting the files in the wrong place. 2018-05-03 21:55:58 -07:00
Bruce Hill
e64a91b8ba Better error reporting and codegen. 2018-05-03 16:31:02 -07:00
Bruce Hill
05528c50ec Further improvements on the CLI. 2018-04-28 19:16:54 -07:00
Bruce Hill
3a049c15df Improvements to command line file handling. 2018-04-28 18:07:22 -07:00
Bruce Hill
df9a82a971 Overhaul of command-line API. It's a bit cleaner now. 2018-04-28 17:08:44 -07:00
Bruce Hill
d13a945b5f Removed LFS dependency in favor of just using find 2018-04-28 15:25:31 -07:00
Bruce Hill
23022dc88c Re-added (..), which is necessary for long expressions as first arg to
an action.
2018-04-28 15:21:28 -07:00
Bruce Hill
b54829de36 Better text interpolation/handling of "\". Also added syntax support for
(statement; statement)
2018-04-27 16:45:35 -07:00