From 80e4b6d1738bda88c9e9d4ec5115de9e22d439c1 Mon Sep 17 00:00:00 2001 From: Karol Stasiak Date: Sat, 29 Dec 2018 19:59:17 +0100 Subject: [PATCH] Fix #use and #pragma --- .../millfork/parser/AbstractSourceLoadingQueue.scala | 2 +- src/main/scala/millfork/parser/Preprocessor.scala | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/scala/millfork/parser/AbstractSourceLoadingQueue.scala b/src/main/scala/millfork/parser/AbstractSourceLoadingQueue.scala index 8553d4d5..43b2beb7 100644 --- a/src/main/scala/millfork/parser/AbstractSourceLoadingQueue.scala +++ b/src/main/scala/millfork/parser/AbstractSourceLoadingQueue.scala @@ -64,7 +64,7 @@ abstract class AbstractSourceLoadingQueue[T](val initialFilenames: List[String], val PreprocessingResult(src, featureConstants, pragmas) = Preprocessor(options, shortFileName, Files.readAllLines(path, StandardCharsets.UTF_8).toIndexedSeq) for (pragma <- pragmas) { if (!supportedPragmas(pragma._1)) { - options.log.warn(s"Unsupported pragma: #pragma $pragma", Some(Position(moduleName, pragma._2, 1, 0))) + options.log.warn(s"Unsupported pragma: #pragma ${pragma._1}", Some(Position(moduleName, pragma._2, 1, 0))) } } val parser = createParser(shortFileName, src, parentDir, featureConstants, pragmas.keySet) diff --git a/src/main/scala/millfork/parser/Preprocessor.scala b/src/main/scala/millfork/parser/Preprocessor.scala index 467b6f4d..0fba7c43 100644 --- a/src/main/scala/millfork/parser/Preprocessor.scala +++ b/src/main/scala/millfork/parser/Preprocessor.scala @@ -59,7 +59,7 @@ object Preprocessor { keyword match { case "use" => if (enabled) { if (param == "") log.error("#use should have a parameter", pos) - featureConstants += param -> platform.features.getOrElse(param, { + featureConstants += param -> options.features.getOrElse(param, { log.warn(s"Undefined parameter $param, assuming 0", pos) 0L }) @@ -115,8 +115,10 @@ object Preprocessor { ifStack.push(ifStack.pop().copy(hadEnabled = true, hadElse = true)) } case "pragma" => - if (param == "") log.error("#pragma should", pos) - pragmas += param -> lineNo + if (enabled) { + if (param == "") log.error("#pragma should have a parameter", pos) + pragmas += param -> lineNo + } case _ => log.error("Invalid preprocessor directive: #" + keyword, pos)