aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scalam/m
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2012-11-01 13:01:29 +0100
committerJakob Odersky <jodersky@gmail.com>2012-11-01 13:01:29 +0100
commit2dfddf1c5f8f43d32a1a60af4263f5b338c15bd0 (patch)
treec5a8adbbdda55554e5f4f88f0add78dbf3308bc5 /src/main/scala/scalam/m
parentcde13945605fb9f543cfb960728c5c7d48d6f3f5 (diff)
downloadscalam-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.scala20
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