aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2012-10-30 13:52:36 +0100
committerJakob Odersky <jodersky@gmail.com>2012-10-30 13:53:05 +0100
commit9733fdd35a30c6396b98e43774a82c31b92a512d (patch)
tree3a3ed574e638f8209150b9ed0dd89d39f7d42ed9
parent6d839c29de8d4d4abd9ead17f6b55a6d13989476 (diff)
downloadscalam-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 }