diff options
| -rw-r--r-- | coreMacros/src/main/scala/chisel3/internal/RangeTransform.scala | 14 | ||||
| -rw-r--r-- | src/test/scala/chiselTests/RangeMacroTest.scala | 4 |
2 files changed, 8 insertions, 10 deletions
diff --git a/coreMacros/src/main/scala/chisel3/internal/RangeTransform.scala b/coreMacros/src/main/scala/chisel3/internal/RangeTransform.scala index bbb36190..20142d5d 100644 --- a/coreMacros/src/main/scala/chisel3/internal/RangeTransform.scala +++ b/coreMacros/src/main/scala/chisel3/internal/RangeTransform.scala @@ -31,7 +31,7 @@ class RangeTransform(val c: Context) { currString = currString.dropWhile(_ == ' ') // allow whitespace if (currString.isEmpty()) { if (nextArgIndex >= args.length) { - c.abort(c.enclosingPosition, s"Incomplete range specifier, expected interpolated value") + c.abort(c.enclosingPosition, s"Incomplete range specifier") } val nextArg = args(nextArgIndex) nextArgIndex += 1 @@ -47,11 +47,7 @@ class RangeTransform(val c: Context) { val nextStringVal = currString.takeWhile(!Set('[', '(', ' ', ',', ')', ']').contains(_)) currString = currString.substring(nextStringVal.length) if (currString.isEmpty()) { - if (nextStringIndex >= strings.length) { - c.abort(c.enclosingPosition, s"Incomplete range specifier") - } - currString = strings(nextStringIndex) - nextStringIndex += 1 + c.abort(c.enclosingPosition, s"Incomplete range specifier") } c.parse(nextStringVal) } @@ -62,7 +58,7 @@ class RangeTransform(val c: Context) { val startInclusive = currString(0) match { case '[' => true case '(' => false - case _ => c.abort(c.enclosingPosition, s"Unknown start inclusive/exclusive specifier, got: '${currString(0)}'") + case other => c.abort(c.enclosingPosition, s"Unknown start inclusive/exclusive specifier, got: '$other'") } currString = currString.substring(1) // eat the inclusive/exclusive specifier val minArg = getNextValue() @@ -76,7 +72,7 @@ class RangeTransform(val c: Context) { val endInclusive = currString(0) match { case ']' => true case ')' => false - case _ => c.abort(c.enclosingPosition, s"Unknown end inclusive/exclusive specifier, got: '${currString(0)}'") + case other => c.abort(c.enclosingPosition, s"Unknown end inclusive/exclusive specifier, got: '$other'") } currString = currString.substring(1) // eat the inclusive/exclusive specifier currString = currString.dropWhile(_ == ' ') @@ -90,6 +86,8 @@ class RangeTransform(val c: Context) { c.abort(c.enclosingPosition, s"Unused characters in range specifier: '$unused'") } + // TODO: FINISH THIS! + c.warning(c.enclosingPosition, s"$startInclusive ${showRaw(minArg)} ${showRaw(maxArg)} $endInclusive") q"" diff --git a/src/test/scala/chiselTests/RangeMacroTest.scala b/src/test/scala/chiselTests/RangeMacroTest.scala index 797c75c4..d6c51704 100644 --- a/src/test/scala/chiselTests/RangeMacroTest.scala +++ b/src/test/scala/chiselTests/RangeMacroTest.scala @@ -25,7 +25,7 @@ import rangeMacroTest._ @dump class RangeMacroTest extends ChiselPropSpec { property("Range macros should work") { - def ducks() = {2} - range" (0, ${ducks}] " + range"(0,${1+1}]" + range" ( 0 , ${1+1} ] " } } |
