Commit Graph

260 Commits

Author SHA1 Message Date
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
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