Bruce Hill
16d127abb5
Initial working version.
2018-06-18 15:44:35 -07:00
Bruce Hill
5629b81f78
Updating tests.
2018-06-15 00:40:40 -07:00
Bruce Hill
b12744d831
Some cleanup and fixes. Simplifying a lot of code, and extending the
...
flexibility of scoping. Redesigned Object system too.
2018-06-14 23:25:34 -07:00
Bruce Hill
49f1eb3d08
Reshuffling some files.
2018-06-14 22:17:37 -07:00
Bruce Hill
82cfd3e54b
More streamlining and cleanup. Especially for core/metaprogramming.nom
2018-06-14 21:59:43 -07:00
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
7cd512d15e
Added alias: "% as number"
2018-06-06 14:19:54 -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
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
f9229c5e91
Better parse error reporting.
2018-05-30 13:07:15 -07:00
Bruce Hill
3573dfe995
Almost-working reimplementation of source code mapping.
2018-05-29 16:15:10 -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
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
446892d11e
Consolidating code obj code and expunging all [[..]]-style lua strings.
2018-05-24 16:13:46 -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
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
113782ebd1
Added scopes to core.
2018-05-10 22:51:14 -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
602aacf8d8
Renamed "export" to "external"
2018-05-09 20:35:40 -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
36ead4d82b
Cleanup of unnecessary parens in generated lua code for math operations.
2018-05-03 16:38:06 -07:00
Bruce Hill
85c5511fa5
Fixed compile_lib and cleaned up control_flow
2018-04-28 19:38:03 -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
50a092e4b5
Got nomsu codegen working again.
2018-04-25 16:04:55 -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
bff93d386c
Refactor to improve indentation and move as_nomsu() into tree methods.
2018-04-24 20:17:08 -07:00
Bruce Hill
dec5ee8262
Lots of optimizations.
2018-04-20 16:23:59 -07:00