From 855fe23439bbcf3b1cb8a8798d055cb30fb610c1 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sat, 27 Jan 2018 16:39:56 -0800 Subject: [PATCH] Tweaked code to not rely on moonscript. --- nomsu.lua | 12 +++++++++--- nomsu.moon | 5 +++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/nomsu.lua b/nomsu.lua index d2acc1a..3b5aa2f 100644 --- a/nomsu.lua +++ b/nomsu.lua @@ -1563,8 +1563,14 @@ if arg then err_hand = function(error_message) print(tostring(colored.red("ERROR:")) .. " " .. tostring(colored.bright(colored.yellow(colored.onred((error_message or "")))))) print("stack traceback:") - local to_lua - to_lua = require("moonscript.base").to_lua + local ok, to_lua = pcall(function() + return require('moonscript.base').to_lua + end) + if not ok then + to_lua = function() + return nil + end + end local nomsu_file = io.open("nomsu.moon") local nomsu_source = nomsu_file:read("*a") local _, line_table = to_lua(nomsu_source) @@ -1611,7 +1617,7 @@ if arg then if calling_fn.istailcall and not name then name = "" end - if calling_fn.short_src == "./nomsu.moon" then + if calling_fn.short_src == "./nomsu.moon" and line_table then local char = line_table[calling_fn.currentline] local line_num = 1 for _ in nomsu_source:sub(1, char):gmatch("\n") do diff --git a/nomsu.moon b/nomsu.moon index e2e2f10..a42e2e9 100755 --- a/nomsu.moon +++ b/nomsu.moon @@ -1006,7 +1006,8 @@ if arg -- TODO: properly print out the calling site of nomsu code, not just the *called* code - import to_lua from require "moonscript.base" + ok, to_lua = pcall -> require('moonscript.base').to_lua + if not ok then to_lua = -> nil nomsu_file = io.open("nomsu.moon") nomsu_source = nomsu_file\read("*a") _, line_table = to_lua(nomsu_source) @@ -1038,7 +1039,7 @@ if arg else if calling_fn.istailcall and not name name = "" - if calling_fn.short_src == "./nomsu.moon" + if calling_fn.short_src == "./nomsu.moon" and line_table char = line_table[calling_fn.currentline] line_num = 1 for _ in nomsu_source\sub(1,char)\gmatch("\n") do line_num += 1