Commit Graph

100 Commits

Author SHA1 Message Date
7d2b7199d8 Lots of cleanups, including expanded use of (... compiles to "text
literal") shorthand, deprecating Lua value, and more use of Lua "..."
with text interpolations.
2018-11-09 14:37:22 -08:00
652c29bdef Major overhaul, splitting nomsu_compiler into nomsu_environment,
nomsu_compiler, and nomsu_decompiler. Also added comprehensions.
2018-11-08 15:24:15 -08:00
c8ccbe5f42 Removed utils.lua, simplified some metaprogramming stuff, added native support
for calling functions with (%a %b %c) instead of (call %a with [%b,
%c]), renamed _List -> List, _Dict -> Dict, improved example code.
2018-11-06 15:15:14 -08:00
307dea1881 Changed stub convention to (foo 1 baz 2) -> foo_1_baz instead of
foo_1_baz_2, removed "smext", made some cleanup changes.
2018-11-02 14:39:23 -07:00
d0c3c57f7b Simplified AST to just use a single moonscript class called "SyntaxTree"
instead of a different metatable for each type of syntax tree.
2018-10-31 15:54:51 -07:00
83219f8522 Bumped version number, fixed REPL, and simplified/fixed (use %). 2018-10-31 03:52:00 -07:00
ea3197aaff Fully working version of (action [foo]: baz) -> ((foo) means: baz)
refactor and misc other changes.
2018-10-30 23:42:36 -07:00
e7e84c9eda Fix for compiler not parenthesizing method targets, fix for parser not
recognizing \ line continuation, and improvements to
upgrade tool API.
2018-10-30 20:32:49 -07:00
fdf7a537c8 Versioning fixes. 2018-10-30 19:50:20 -07:00
8515a87427 Bumped compiler version. 2018-10-29 13:03:19 -07:00
23abab4f80 Some cleanups and fixes, made the parser more permissive of prematurely
terminated files.
2018-10-29 13:00:30 -07:00
8a8940c9bc Fixes for actions with targets colliding with compiler actions, and lua
keywords as dict keys.
2018-09-26 13:59:31 -07:00
f2048235f5 Incremental checkin, currently not working, just saving progress. 2018-09-21 00:30:44 -07:00
Bruce Hill
79d4bd5125 Got rid of repr() use and replaced with :as_lua() or :as_nomsu() in as
many places as possible.
2018-09-18 19:49:29 -07:00
Bruce Hill
c1cba45968 Added support for compile actions returning trees, and compiling blocks
into values.
2018-09-17 15:30:24 -07:00
Bruce Hill
e3bf10196a Added support for compile actions returning syntax trees, which will get
recompiled until they produce Lua code.
2018-09-16 17:53:26 -07:00
Bruce Hill
f225a48367 Much better error reporting for compile errors (i.e. not parse errors),
using the pretty_error system.
2018-09-16 17:38:51 -07:00
Bruce Hill
96e5e567cb Working module system. 2018-09-16 16:57:24 -07:00
Bruce Hill
2282085e13 Initial working version. 2018-09-15 20:20:46 -07:00
Bruce Hill
f8cfdd0f22 Better parsing of strings and handling of non-printable characters and
tabs.
2018-09-15 15:39:57 -07:00
Bruce Hill
e22c35681f Auto-upgraded everything. 2018-09-14 19:17:16 -07:00
Bruce Hill
7112af7cb6 Fixed comments in nomsu codegen. 2018-09-14 15:24:31 -07:00
Bruce Hill
626b6cab79 Updated compiler to produce cool string output. 2018-09-14 15:20:07 -07:00
Bruce Hill
3e2844ef62 Added error truncating. 2018-09-14 14:55:00 -07:00
Bruce Hill
9bba7dd2cd Using more concise peg file finding. 2018-09-14 14:46:29 -07:00
Bruce Hill
cdbf3c971f Bumped compiler version to 8 2018-09-14 14:43:21 -07:00
Bruce Hill
13ce4e7ee9 Renaming parser2 to parser. 2018-09-14 14:42:20 -07:00
Bruce Hill
31f593fb09 Removing the remnants of the old parser system. 2018-09-14 14:39:10 -07:00
Bruce Hill
54e1f99e90 Upgraded nomsu.1.peg to tidier version. 2018-09-14 14:26:06 -07:00
Bruce Hill
21d0d7901c Upgraded nomsu.2.peg and fixed minor bug in Source serialization in
trees.
2018-09-14 14:12:22 -07:00
Bruce Hill
7c1f2dfd69 Fixes and improvements, and ported nomsu.3.peg to new tidier syntax. 2018-09-14 14:01:07 -07:00
Bruce Hill
ea310306d7 Initial working version. 2018-09-12 15:32:04 -07:00
Bruce Hill
9e10c8bf00 Removing dead code and string.as_lua_id() (now just set on string
metametatable)
2018-09-10 16:37:16 -07:00
Bruce Hill
989e133a57 Fixed tree_to_nomsu for method calls that span lines. 2018-09-10 16:29:17 -07:00
Bruce Hill
7c6047254e Upgraded to 3.8 (text method changes) and fixed some bugs in
tree_to_nomsu.
2018-09-10 16:26:27 -07:00
Bruce Hill
43e6523fd4 Shifting towards more text methods instead of text global functions.
Also fixed a bug with method call parenthesizing.
2018-09-10 15:56:00 -07:00
Bruce Hill
a35d010dfe Removed the mandatory "_" prefix for Nomsu variables, renamed "list" and
"dict" to "List" and "Dict", or in Nomsu's environment, "_List" and
"_Dict", removed uuid.lua and replaced it with core/id.nom for handling
IDs.
2018-09-06 12:48:16 -07:00
Bruce Hill
e1bc075bb5 Removing the "A_" prefix on action names, and improving the quality of
as_lua_id() (guaranteed injectivity).
2018-08-31 15:22:32 -07:00
Bruce Hill
4f30e02acb Handling more compatibility stuff, including Lua 5.4, and a backup for
if openssl module is not found, and moving containers (List/Dict) into
their own file, as well as bit operators (and support for __bxor, etc.
metamethods in Lua 5.2/LuaJIT)
2018-08-29 19:39:15 -07:00
Bruce Hill
811fdd6856 Tweaked version 3.6 to include deprecating list append/removal functions
in favor of using a method call style.
2018-08-29 16:00:04 -07:00
Bruce Hill
e64632be1a Switched "as_lua_id" to not add an underscore by default, and just add
it manually to variables and A_ as a prefix to actions. Now, by default,
classes and method calls don't use the A_ prefix, which means nomsu can
more easily play nice with regular Lua objects.
2018-08-29 14:20:18 -07:00
Bruce Hill
e44acbf338 Lots of overhaul, supporting a new Object Oriented approach (e.g.
%obj::action 1 2) and syntax.
2018-08-28 15:08:07 -07:00
Bruce Hill
930d522fbc Bunch of miscellaneous changes. Paved the way a little bit for having
different compiler domains.
2018-08-27 13:39:22 -07:00
Bruce Hill
4f53ea5cc4 Cleaning up clumping logic a little. 2018-07-30 15:12:19 -07:00
Bruce Hill
ab4ebdf175 Changed autoformatting rules to ensure tests get clumped together with
the thing below them.
2018-07-30 15:06:03 -07:00
Bruce Hill
dc0c940d65 Added bit library and support for checking Lua version and whether
LuaJIT is being used.
2018-07-30 14:26:28 -07:00
Bruce Hill
f6e9bdc1c0 Fixed a bug where if an indented string interpolation was at the end of
an indented text, the nomsu codegen would fail to put a "\n.." after it,
so it wouldn't parse as an iterpolation.
2018-07-26 16:00:12 -07:00
Bruce Hill
b3c73c280e Fixed bug where Text was the first item in an index chain. 2018-07-26 15:56:59 -07:00
Bruce Hill
6014c5aa43 Removed debugging shim. 2018-07-24 16:42:21 -07:00
Bruce Hill
b6c99c56a1 Updated package.nomsupath behavior to first search the installed
locations, *then* search the current directory. This makes the system `nomsu` run
properly, even if the local directory has a broken file that has the
same name as a nomsu file.
2018-07-24 15:09:55 -07:00