From 67a35ee400b827862481782ef77d803fdba0eda9 Mon Sep 17 00:00:00 2001 From: Jordi Baylina Date: Sun, 15 Sep 2019 10:47:52 +0200 Subject: [PATCH] better info in runtime constraint assertion --- src/exec.js | 2 ++ src/gencode.js | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/exec.js b/src/exec.js index 228f3eb..35d7c24 100644 --- a/src/exec.js +++ b/src/exec.js @@ -1046,6 +1046,8 @@ function execSignalAssign(ctx, ast) { } function execConstrain(ctx, ast) { + ast.fileName = ctx.fileName; + ast.filePath = ctx.filePath; const a = exec(ctx, ast.values[0]); if (ctx.error) return; const b = exec(ctx, ast.values[1]); diff --git a/src/gencode.js b/src/gencode.js index 355b2ee..62f6020 100644 --- a/src/gencode.js +++ b/src/gencode.js @@ -422,11 +422,13 @@ function genConstrain(ctx, ast) { if (ctx.error) return; const b = gen(ctx, ast.values[1]); if (ctx.error) return; - return `ctx.assert(${a}, ${b})`; + const strErr = ast.fileName +": "+ast.first_line; + return `ctx.assert(${a}, ${b}, \"${strErr}\")`; } function genSignalAssignConstrain(ctx, ast) { - return genVarAssignement(ctx, ast) + ";\n" + genConstrain(ctx, ast); +// return genVarAssignement(ctx, ast) + ";\n" + genConstrain(ctx, ast); + return genVarAssignement(ctx, ast); } function genVarAddAssignement(ctx, ast) {