diff options
author | Jakob Odersky <jodersky@gmail.com> | 2012-10-30 13:52:36 +0100 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2012-10-30 13:53:05 +0100 |
commit | 9733fdd35a30c6396b98e43774a82c31b92a512d (patch) | |
tree | 3a3ed574e638f8209150b9ed0dd89d39f7d42ed9 | |
parent | 6d839c29de8d4d4abd9ead17f6b55a6d13989476 (diff) | |
download | scalam-9733fdd35a30c6396b98e43774a82c31b92a512d.tar.gz scalam-9733fdd35a30c6396b98e43774a82c31b92a512d.tar.bz2 scalam-9733fdd35a30c6396b98e43774a82c31b92a512d.zip |
move 'tree.scala' to 'package.scala' in ast package
-rw-r--r-- | src/main/scala/scalam/m/ast/package.scala (renamed from src/main/scala/scalam/m/ast/tree.scala) | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/main/scala/scalam/m/ast/tree.scala b/src/main/scala/scalam/m/ast/package.scala index a99b50c..f3a3736 100644 --- a/src/main/scala/scalam/m/ast/tree.scala +++ b/src/main/scala/scalam/m/ast/package.scala @@ -3,9 +3,21 @@ package scalam.m.ast trait Mable { def m: String } //top level m constructs -case class Identifier(name: String) extends Mable { def m: String = name} +case class Identifier(name: String) extends Mable { + def m: String = name + + def toValid = { + val word = name.filter(c => c.isLetterOrDigit || c == '_') + val id = word.headOption match { + case None => sys.error("") + case Some(c) => if (!c.isLetter) 'x' + word else word + } + Identifier(id) + } +} trait Expression extends Mable trait Statement extends Mable +case class Comment(text: String) extends Mable {def m = "% " + text} //expressions case class IntLiteral(x: Int) extends Expression { def m = x.toString } |