diff options
author | Jakob Odersky <jodersky@gmail.com> | 2012-11-01 13:01:29 +0100 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2012-11-01 13:01:29 +0100 |
commit | 2dfddf1c5f8f43d32a1a60af4263f5b338c15bd0 (patch) | |
tree | c5a8adbbdda55554e5f4f88f0add78dbf3308bc5 /src/main/scala/scalam/m | |
parent | cde13945605fb9f543cfb960728c5c7d48d6f3f5 (diff) | |
download | scalam-2dfddf1c5f8f43d32a1a60af4263f5b338c15bd0.tar.gz scalam-2dfddf1c5f8f43d32a1a60af4263f5b338c15bd0.tar.bz2 scalam-2dfddf1c5f8f43d32a1a60af4263f5b338c15bd0.zip |
add default dataset name check
Diffstat (limited to 'src/main/scala/scalam/m')
-rw-r--r-- | src/main/scala/scalam/m/ast/Identifier.scala | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/main/scala/scalam/m/ast/Identifier.scala b/src/main/scala/scalam/m/ast/Identifier.scala index 6778e74..45dd967 100644 --- a/src/main/scala/scalam/m/ast/Identifier.scala +++ b/src/main/scala/scalam/m/ast/Identifier.scala @@ -7,15 +7,21 @@ package scalam.m.ast * @define construct identifier */ case class Identifier(name: String) extends Mable { - def m = name +} + +object Identifier { + + def makeValid(raw: String) = { + val transformSymbols = Map(' ' -> '_').withDefault(c => c) - def toValid = { - val word = name.filter(c => c.isLetterOrDigit || c == '_') - val id = word.headOption match { - case None => "x" - case Some(c) => if (!c.isLetter) 'x' + word else word + val validChars = raw.map(c => transformSymbols(c)) + + validChars.headOption match { + case Some(c) if (!c.isLetter) => 'x' + validChars + case Some(c) => validChars + case None => "id" } - Identifier(id) } + }
\ No newline at end of file |