Bruce Hill
247e55059c
Fixed incorrect version ordering (was: Syntax.Compiler.Core.Lib, but
...
should be: Syntax.Core.Compiler.Lib)
2018-06-23 17:29:25 -07:00
Bruce Hill
dbf3de3d8e
Added versioning system.
2018-06-23 00:57:39 -07:00
Bruce Hill
86a3219e7f
Cleanup of some metaprogramming stuff, as well as adding support for
...
"package.nomsupath" to search for files in different locations, and
prioritizing use of "luafilesystem" over system calls.
2018-06-21 19:13:47 -07:00
Bruce Hill
d73cbf0aa5
Cleanups.
2018-06-20 15:22:06 -07:00
Bruce Hill
7f98262dfa
Minor cleanups
2018-06-18 18:39:25 -07:00
Bruce Hill
f83cc3ad8a
More streamlining and cleanup.
2018-06-18 18:11:09 -07:00
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
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
680006b25a
Switched to use "." syntax.
2018-04-08 16:01:28 -07:00
Bruce Hill
a49e97f0e3
Retrofitted "%'s %" to parse as dot syntax.
2018-04-06 16:53:59 -07:00
Bruce Hill
4c693d7474
Updated for optional metadata support.
2018-03-05 18:44:34 -08:00
Bruce Hill
a9c4b78074
Initial branch of switching to using immutable types.
2018-02-13 15:18:00 -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
1334030285
Added 'square root of %' alias.
2018-02-05 15:11:18 -08:00
Bruce Hill
667e5f3f81
Fixed bug with iteration over range that starts after 1, and added an
...
append alias that puts the list first.
2018-02-05 15:10:53 -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