Commit Graph

50 Commits

Author SHA1 Message Date
Bruce Hill
968b5da150 Fixed some bugs. 2018-06-12 20:15:56 -07:00
Bruce Hill
63a19db0dc Working version. 2018-06-12 20:06:37 -07:00
Bruce Hill
3c510e4ee5 Lots of optimizations and simplifications, especially towards getting
better performance on luajit.
2018-06-12 18:04:41 -07:00
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
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
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
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
8cb2788e0d Re-added sources. 2018-05-26 15:04:38 -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
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
0a95a264e5 Cleaning up comments. 2018-05-15 18:56:00 -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
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
1a755ddee8 Added tentative support for luajit (depends on pure-lua LPEG
implementation).
2018-05-09 13:35:04 -07:00
Bruce Hill
126f51f955 Removing varargs from free var functions. 2018-05-04 13:49:20 -07:00
Bruce Hill
bf60ac28c5 Overhaul with smaller, more concise codebase around defining
actions/macros, and deleting some dead code.
2018-05-03 21:56:31 -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
Bruce Hill
6fecb5d395 Cleaning up codegen and TODO 2018-04-26 14:04:59 -07:00
Bruce Hill
4e821308af Overhauling parsing of Blocks (can no longer contain only one statement) 2018-04-25 17:44:24 -07:00
Bruce Hill
5d59d510cd Removing end-of-line ":" and "(..)" for blocks (they just use
indentation now).
2018-04-25 16:31:09 -07:00
Bruce Hill
ec5d730fa0 Switched repr() to only return ""-style strings, and not [[]]-style,
which helps with indenting generated lua code correctly. Also made a few
ergonomic fixes/changes for line breaking.
2018-04-24 20:39:18 -07:00
Bruce Hill
dec5ee8262 Lots of optimizations. 2018-04-20 16:23:59 -07:00
Bruce Hill
931ae40f40 Fixed compiling to .lua files 2018-04-19 19:43:32 -07:00
Bruce Hill
da33269c30 All tests passing (except object) 2018-04-19 17:23:54 -07:00
Bruce Hill
dcb380f1f6 More cleanup, slowly working through operators/control_flow 2018-04-18 17:41:57 -07:00
Bruce Hill
16f3a189fd More working, shifting towards having Lua and Nomsu objects instead of
just strings.
2018-04-18 15:28:59 -07:00
Bruce Hill
b589c23741 Disabled comment transpilation for now. 2018-04-17 14:47:42 -07:00
Bruce Hill
26d0de8299 Partially working, at least for metaprogramming.nom 2018-04-17 14:36:55 -07:00
Bruce Hill
54fc7fc440 Moving tree_to_lua into each of the Nomsu tree types, which are now in
their own file.
2018-04-17 14:19:07 -07:00
Bruce Hill
25e06d1fce Getting closer. 2018-04-13 15:29:20 -07:00
Bruce Hill
222d4d0727 More correct and more working. 2018-04-13 14:54:47 -07:00
Bruce Hill
b05a46c78c Incremental progress. 2018-04-12 20:39:22 -07:00
Bruce Hill
1de29826a8 Incremental progress towards working. 2018-04-12 18:01:59 -07:00
Bruce Hill
17a2bded6a Incremental progress. 2018-04-11 21:07:18 -07:00
Bruce Hill
b9827b1745 Work in progress... 2018-04-11 20:05:18 -07:00
Bruce Hill
d42d20c50a Re-added callstack callsite info. It's a bit hacky, but better than
nothing.
2018-04-09 18:58:27 -07:00
Bruce Hill
618bd47765 Typo caused metadata to go missing. 2018-04-08 18:11:55 -07:00
Bruce Hill
4c693d7474 Updated for optional metadata support. 2018-03-05 18:44:34 -08:00
Bruce Hill
02af19153e Moved over to have tree metadata stored outside the tree. This paves the
way for programmatically generating trees more easily.
2018-02-08 16:23:23 -08:00
Bruce Hill
3661754ed9 Reverted to ACTIONS instead of ACTION and added 'show lua %' macro. 2018-02-06 22:07:11 -08:00
Bruce Hill
505fec2a61 Restructured the nomsu files to group all the essentials into core/ and
all the optionals into lib/. lib/core.nom and tests/all.nom are no
longer needed now.
2018-02-02 15:49:42 -08:00