From f37696df5ab7492cde4d76dd6dde4f84c80f2335 Mon Sep 17 00:00:00 2001 From: Karol Stasiak Date: Fri, 28 Sep 2018 22:41:57 +0200 Subject: [PATCH] Added #infoeval preprocessor directive --- docs/lang/preprocessor.md | 5 +++++ src/main/scala/millfork/parser/Preprocessor.scala | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/docs/lang/preprocessor.md b/docs/lang/preprocessor.md index 1bacdd62..35c211f8 100644 --- a/docs/lang/preprocessor.md +++ b/docs/lang/preprocessor.md @@ -114,6 +114,11 @@ Emits a diagnostic message. `#warn` emits a warning. It may be treated as an error depending on compilation options. `#info` emits a benign diagnostic message. +### `#infoeval` + + #infoeval + +Evaluates an expression and emits the result as a diagnostic message. ### `#use` diff --git a/src/main/scala/millfork/parser/Preprocessor.scala b/src/main/scala/millfork/parser/Preprocessor.scala index 7b7900de..4d9d16db 100644 --- a/src/main/scala/millfork/parser/Preprocessor.scala +++ b/src/main/scala/millfork/parser/Preprocessor.scala @@ -68,6 +68,11 @@ object Preprocessor { case "error" => if (enabled) log.error(param, pos) case "warn" => if (enabled) log.warn(param, pos) case "info" => if (enabled) log.info(param, pos) + case "infoeval" => + if (enabled) { + val value = evalParam(param, pos) + log.info(s"$param = $value", pos) + } case "if" => if (enabled) { val value = evalParam(param, pos)