Commit Graph

112 Commits

Author SHA1 Message Date
2360ada21f Codegen tweak 2018-12-14 19:26:05 -08:00
83a40b7493 Updating to support multiple method calls. 2018-12-14 19:25:03 -08:00
6ba84a0f50 Initial setup work for syntax version 5. 2018-12-14 17:49:46 -08:00
0d88091f8d Cleanups and codegen improvements/fixes. 2018-12-13 15:21:55 -08:00
efd743591e Renamed append/concat_append to add/concat_add for Code objects. 2018-11-29 14:57:56 -08:00
09e571ffa6 Extended text comprehensions to Lua constructors. 2018-11-29 14:51:26 -08:00
7a7dcefc44 Added text comprehensions (in the style of the list/dict ones) 2018-11-29 14:23:17 -08:00
8e5f1b9e1e Simplifying the control flow API and deduplicating the code. 2018-11-26 16:22:04 -08:00
1a794c6487 Tweaks and tidying. 2018-11-23 17:22:29 -08:00
acd1191fb0 Tweaks and API cleanup. 2018-11-19 17:21:17 -08:00
7f47d42040 In-progress (but working) overhaul of some elements including: function
calls, lib/thing.nom API, multi-assignments, varargs, etc.
2018-11-17 14:39:08 -08:00
171e9d674e Re-implemented nomsu -> lua comment translation and added file chunk
comments.
2018-11-11 18:28:34 -08:00
b918668f18 Fixed -O optimization flag. 2018-11-11 18:03:25 -08:00
69aaea030e No longer passing tree to every compile action. Now, you can just
return a LuaCode object, and it will automatically get a source from
`tree` if it didn't already have a source. Plus some fixes/cleanup.
2018-11-09 16:41:19 -08:00
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
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
28d0792e69 Rebuild. 2018-09-21 00:30:53 -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
d428725c86 Recompile 2018-09-14 14:43:33 -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