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
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
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
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
7f99c70d56
Fixed renaming lua_obj->code_obj
2018-04-26 14:00:15 -07:00
Bruce Hill
50a092e4b5
Got nomsu codegen working again.
2018-04-25 16:04:55 -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
14bda2fb2d
Cleanups and optimizations.
2018-04-20 14:33:57 -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
ec17442090
Cleaning up.
2018-04-18 15:46:01 -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
ab8ccf4e27
Off by one error.
2018-04-09 19:45:43 -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
86925c5b3a
Patched debug.getinfo to return reasonable info for nomsu functions.
2018-04-08 18:24:11 -07:00
Bruce Hill
4e51768ebd
Improved codegen code.
2018-04-08 16:06:39 -07:00
Bruce Hill
fd621a1062
Cleaned up LHS of "." operator to avoid adding unnecessary parens so
...
Lua's parser doesn't get confused by (x).y = 1.
2018-04-08 15:41:55 -07:00
Bruce Hill
a49e97f0e3
Retrofitted "%'s %" to parse as dot syntax.
2018-04-06 16:53:59 -07:00
Bruce Hill
227b944bad
Initial working version.
2018-04-06 16:45:57 -07:00
Bruce Hill
972de38421
Minor cleanup.
2018-03-06 16:50:25 -08:00
Bruce Hill
4bc1f59725
Removed cached() since it wasn't actually helping perf.
2018-03-06 15:29:57 -08:00
Bruce Hill
9564492cf1
More support for optional metadata and better Tuple support.
2018-03-05 18:46:25 -08:00
Bruce Hill
885c42bcfe
Updated to fit immutable lib update.
2018-02-27 14:31:28 -08:00
Bruce Hill
a9c4b78074
Initial branch of switching to using immutable types.
2018-02-13 15:18:00 -08:00
Bruce Hill
da65c91cb6
Cleanup of replaced vars, now uses tree_map()
2018-02-12 14:48:11 -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
e8d5d2a240
Added check for circular imports.
2018-02-05 15:35:06 -08:00
Bruce Hill
f58dc0fcb7
Reverted "use %" to expr-like behavior with return values preserved.
2018-02-05 15:10:02 -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
Bruce Hill
513c721198
Updated 'use %' to support directories, and cleaned up action_metadata a
...
tiny bit.
2018-02-02 14:01:06 -08:00
Bruce Hill
2dbf2d8810
Cleanup of REPL and detection of command-line running.
2018-01-30 16:40:23 -08:00
Bruce Hill
0563571625
Overhaul of indentations. Now strictly requiring exactly 4 spaces
...
everywhere, and supporting indented string interpolations.
2018-01-30 15:11:18 -08:00
Bruce Hill
855fe23439
Tweaked code to not rely on moonscript.
2018-01-27 16:40:29 -08:00
Bruce Hill
90c56d3135
Added a ton of tests for virtually all the functionality. Helped me find
...
and fix a lot of latent problems.
2018-01-26 20:20:38 -08:00
Bruce Hill
d5aa4e5298
Minor fix for value_to_nomsu
2018-01-26 15:19:05 -08:00
Bruce Hill
95f3f55ff2
Cleaned up unnecessary buffer use.
2018-01-26 15:03:15 -08:00
Bruce Hill
214b3f9186
Removed nomsu:write() and nomsu:writeln() and replaced with just plain
...
ol' print()
2018-01-26 15:02:32 -08:00
Bruce Hill
53c735be55
Removed "\.." syntax, and just added support for the literal ".." as
...
long as it's not followed by an indented region.
2018-01-26 14:53:30 -08:00
Bruce Hill
fb22ba11ac
Fixed improperly handling locals of a block.
2018-01-25 18:07:51 -08:00
Bruce Hill
c79bea4401
Overhaul of compiling API (eliminated some of the expr/statements
...
helpers and forced the use of {expr=..., locals=...}-type syntax. This
helped fix up all of the cases like loops where locals were being
mishandled and led to some cleaner code.
2018-01-25 17:36:05 -08:00
Bruce Hill
f769351556
Updated and improve syntax for some stuff. Also added string indexing
...
like in python, including slices.
2018-01-24 13:13:26 -08:00
Bruce Hill
d173e9ae88
Fixed id for nil/NaN and cleaned up collection metatable stuff.
2018-01-24 12:38:09 -08:00
Bruce Hill
ef5eb18cbb
Updated TODO.
2018-01-24 00:43:30 -08:00
Bruce Hill
6d11354b3f
Added implicit local declarations and new syntax of %var <- %value.
2018-01-23 19:22:45 -08:00
Bruce Hill
ac8089dd58
Fixed typo.
2018-01-23 15:25:31 -08:00
Bruce Hill
c1ac0635fd
Refactored syntax a bit so that ":" isn't necessary for a block, and can
...
be used for inline expressions instead. Also, dict literals now use ":" instead
of "=".
2018-01-19 17:30:39 -08:00
Bruce Hill
d888b1134a
Added more info to error message.
2018-01-19 15:12:00 -08:00
Bruce Hill
6021f04490
Fix for lua parsing of long strings/table literals.
2018-01-18 16:44:32 -08:00
Bruce Hill
f91d06d9fa
Initial commit of object oriented classes.
2018-01-18 01:49:27 -08:00
Bruce Hill
12cc294c7a
Fixed some minor bugs that made generated nomsu uglier.
2018-01-17 16:45:29 -08:00
Bruce Hill
8bbebb8735
Completely fixed/reworked tree_to_nomsu, and it's okay right now.
2018-01-17 16:37:27 -08:00
Bruce Hill
d82c4f85d8
Added support for translating comments instead of dropping them.
2018-01-15 15:50:32 -08:00
Bruce Hill
5a526675db
Better usage of ACTION_METADATA and deprecating nomsu.defs.
2018-01-12 19:28:19 -08:00
Bruce Hill
90c72074db
Renamed replaced_vars() to be more descriptive.
2018-01-12 16:45:49 -08:00
Bruce Hill
28badba29a
Deleted some dead code.
2018-01-12 16:34:46 -08:00
Bruce Hill
6b09187899
Switched to use load() with environment table instead of passing in
...
nomsu to everything. This has some nice code cleanliness benefits.
2018-01-12 16:33:11 -08:00
Bruce Hill
06bf76f818
Truncated debug output for readability.
2018-01-11 18:48:43 -08:00
Bruce Hill
425f4ed7a7
Added todo.
2018-01-11 15:34:54 -08:00
Bruce Hill
ba87104202
Fixed require->use, updated TODO.
2018-01-11 14:07:14 -08:00
Bruce Hill
756c1f718e
Renamed "require %" to "use %"
2018-01-11 03:35:35 -08:00
Bruce Hill
9d8c701441
Added "%'s id" to use UUIDs and changed "% = %" to "set % = %" and some
...
other misc.
2018-01-11 03:32:12 -08:00
Bruce Hill
1c6b660d6b
Updated TODO
2018-01-11 02:10:23 -08:00
Bruce Hill
8c1da9a6c3
Purged references to "macro" and replaced with "compile action" or
...
"compile-time action".
2018-01-11 02:07:37 -08:00
Bruce Hill
199161a438
Renamed def->define_action and defmacro->define_macro
2018-01-11 01:57:52 -08:00
Bruce Hill
82cc997ddf
Renamed rule % = % to action % %
2018-01-11 01:19:03 -08:00
Bruce Hill
6f4b67632a
Renamed String -> Text
2018-01-11 01:09:26 -08:00