From bc41cc3a244bf47679d1c47d17006a2aa7356bc8 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Tue, 29 Jan 2019 16:16:45 -0800 Subject: Switched to have colors/utf8 be optional, fixed an issue with currently running files leaking when errors occurred (causing spurious circular import errors), and improved tutorial. --- nomsu_compiler.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'nomsu_compiler.lua') diff --git a/nomsu_compiler.lua b/nomsu_compiler.lua index 0cedd50..c9a15db 100644 --- a/nomsu_compiler.lua +++ b/nomsu_compiler.lua @@ -9,6 +9,7 @@ do local _obj_0 = require("code_obj") LuaCode, Source = _obj_0.LuaCode, _obj_0.Source end +require("text") local SyntaxTree = require("syntax_tree") local Files = require("files") local pretty_error = require("pretty_errors") @@ -20,6 +21,17 @@ fail_at = function(source, msg) source = source.source elseif type(source) == 'string' then source = Source:from_string(source) + else + assert(source.short_src and source.currentline) + file = Files.read(source.short_src) + assert(file, "Could not find " .. tostring(source.short_src)) + local lines = file:lines() + local start = 1 + for i = 1, source.currentline - 1 do + start = start + #lines[i] + end + local stop = start + #lines[source.currentline] + source = Source(source.short_src, start, stop) end if source and not file then file = Files.read(source.filename) -- cgit v1.2.3