add posmap matching specs

This commit is contained in:
leaf corcoran 2014-03-04 10:12:09 -08:00
parent 437be6efb5
commit 5f4d476ad0

View File

@ -3,6 +3,8 @@ moonscript = require "moonscript.base"
errors = require "moonscript.errors" errors = require "moonscript.errors"
util = require "moonscript.util" util = require "moonscript.util"
import unindent from require "spec.helpers"
get_rewritten_line_no = (fname) -> get_rewritten_line_no = (fname) ->
fname = "spec/error_inputs/#{fname}.moon" fname = "spec/error_inputs/#{fname}.moon"
chunk = moonscript.loadfile fname chunk = moonscript.loadfile fname
@ -28,3 +30,35 @@ describe "error rewriting", ->
it "should rewrite line number", -> it "should rewrite line number", ->
assert.same get_rewritten_line_no(name), expected_no assert.same get_rewritten_line_no(name), expected_no
describe "line map", ->
import to_lua from require "moonscript.base"
it "should create line table", ->
moon_code = unindent [[
print "hello world"
if something
print "cats"
]]
lua_code, posmap = assert to_lua moon_code
-- print util.debug_posmap(posmap, moon_code, lua_code)
assert.same { 7, 29, 42, 27 }, posmap
it "should create line table for multiline string", ->
moon_code = unindent [[
print "one"
x = [==[
one
two
thre
yes
no
]==]
print "two"
]]
lua_code, posmap = assert to_lua moon_code
-- print util.debug_posmap(posmap, moon_code, lua_code)
assert.same {[1]: 7, [7]: 19, [8]: 63}, posmap