Commit Graph

146 Commits

Author SHA1 Message Date
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
16d127abb5 Initial working version. 2018-06-18 15:44:35 -07:00
Bruce Hill
1a6e28e835 Improvements to object system. 2018-06-15 00:17:09 -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
e7bdc35aa8 Cleanups to try/catch logic and object logic. 2018-06-04 17:23:13 -07:00
Bruce Hill
7cd4f276b7 Added todo 2018-05-30 17:27:10 -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
624fcdcc7e Moved as_lua_id() onto 'string' 2018-05-30 13:46:54 -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
ba76a35e84 Fixed up file hash lib. 2018-05-24 15:33:12 -07:00
Bruce Hill
2e345e271f Misc changes, fixed up Object lib and tests. 2018-05-24 14:57:35 -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
1a755ddee8 Added tentative support for luajit (depends on pure-lua LPEG
implementation).
2018-05-09 13:35:04 -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
34a2f50ebc Deleted habit breaker. 2018-04-20 17:00:33 -07:00
Bruce Hill
da33269c30 All tests passing (except object) 2018-04-19 17:23:54 -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
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
d02b4b8718 Added a bunch of metamethod stuff. 2018-02-05 15:11:49 -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
a387fd86a8 Added colons for aesthetics. 2018-01-31 15:31:13 -08:00
Bruce Hill
b1406a3203 Removed "core_defs" 2018-01-30 16:41:51 -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
d7abcba34d Fix for bad indentation. 2018-01-30 15:10:29 -08:00
Bruce Hill
27c8024888 Added numeric-for list comprehension 2018-01-29 15:14:50 -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
214b3f9186 Removed nomsu:write() and nomsu:writeln() and replaced with just plain
ol' print()
2018-01-26 15:02:32 -08:00
Bruce Hill
0c0fb98389 Added some training wheels for functions. 2018-01-25 18:08:04 -08:00
Bruce Hill
90b2888d46 Fixed up how_do_i with updated syntax. 2018-01-25 17:44:09 -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
566b7d09c8 Updated training wheels with new syntax and print(). 2018-01-24 03:00:31 -08:00
Bruce Hill
42d950f7b4 Fix for some old syntax. 2018-01-24 02:55:49 -08:00
Bruce Hill
a33cb2598f Cleaned up code duplication in 'compile % to %' and 'compile % to code
%' and improved generated lua output for the common case (a text value).
2018-01-24 01:38:55 -08:00
Bruce Hill
30639f52e1 Added "export" for explicitly non-local variables. 2018-01-23 19:42:14 -08:00
Bruce Hill
49f0e95571 Prevented redeclaration of function arguments as locals. 2018-01-23 19:29:11 -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
376dd65278 Updated and fixed up how_do_i 2018-01-19 18:13:13 -08:00
Bruce Hill
4764842fe6 Updated class.nom for new syntax. 2018-01-19 17:32:01 -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
7759b778f6 Cleaned up code output to be just a series of declarations, instead of a
table literal and a loop.
2018-01-18 16:45:24 -08:00
Bruce Hill
f91d06d9fa Initial commit of object oriented classes. 2018-01-18 01:49:27 -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
4c059a7f9b Removed unnecessary semicolons that broke luajit. 2018-01-16 01:44:50 -08:00
Bruce Hill
5a526675db Better usage of ACTION_METADATA and deprecating nomsu.defs. 2018-01-12 19:28:19 -08:00