From 2a7b88913ee0bfeb0ad63d585f0755c4b315e489 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Wed, 8 Jun 2022 02:01:31 +0000 Subject: [PATCH] Kiss.exp() throw reader and compile errors with file position --- kiss/src/kiss/Kiss.hx | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/kiss/src/kiss/Kiss.hx b/kiss/src/kiss/Kiss.hx index acda904b..905e852d 100644 --- a/kiss/src/kiss/Kiss.hx +++ b/kiss/src/kiss/Kiss.hx @@ -5,7 +5,9 @@ import haxe.Exception; import haxe.macro.Context; import haxe.macro.Expr; import haxe.macro.ExprTools; +import haxe.macro.PositionTools; import haxe.io.Path; +import sys.io.File; import kiss.Stream; import kiss.Reader; import kiss.ReaderExp; @@ -208,19 +210,25 @@ class Kiss { #end public static macro function exp(kissCode:ExprOf) { var pos = kissCode.pos; + var pos = PositionTools.getInfos(pos); + trace(pos); var kissCode = ExprTools.getValue(kissCode); - /* - var lineNumber = + + var content = File.getContent(pos.file).substr(0, pos.min); + var lines:kiss.List = content.split('\n'); + var lineNumber = lines.length; + var column = lines[-1].length + 1; + trace(lines[-1]); var pos = { file: pos.file, absoluteChar: pos.min, - line: lineNumber; - column: + line: lineNumber, + column: column }; - */ + return _try(() -> { var exp = null; - var stream = Stream.fromString(kissCode/*, pos*/); + var stream = Stream.fromString(kissCode, pos); var k = defaultKissState(); Reader.readAndProcess(stream, k, (nextExp) -> { if (exp == null) {