summaryrefslogtreecommitdiff
path: root/coreMacros/src/main
diff options
context:
space:
mode:
authorducky2016-10-25 16:59:20 -0700
committerducky2016-11-21 12:48:10 -0800
commit4245c8c31749d9031da4915708bb23ec82a56da2 (patch)
treea01a1e955d37ae78926de32c340f07f8db7f3764 /coreMacros/src/main
parent667a26bddb6133e8b243061f8a5fc5fe586cc1ae (diff)
Better testing, better parsing
Diffstat (limited to 'coreMacros/src/main')
-rw-r--r--coreMacros/src/main/scala/chisel3/internal/RangeTransform.scala14
1 files changed, 6 insertions, 8 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""