aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scalam/m/ast/statements.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/scalam/m/ast/statements.scala')
-rw-r--r--src/main/scala/scalam/m/ast/statements.scala14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main/scala/scalam/m/ast/statements.scala b/src/main/scala/scalam/m/ast/statements.scala
new file mode 100644
index 0000000..97b9821
--- /dev/null
+++ b/src/main/scala/scalam/m/ast/statements.scala
@@ -0,0 +1,14 @@
+package scalam.m.ast
+
+trait Statement extends Mable with Root{
+ def m: String = this match {
+ case Assign(id, value) => id.m + " = " + value.m
+ case AssignMatrixIndex(id, indices, value) =>
+ id.m + indices.map(_.m).mkString("(", ",", ")") + " = " + value.m
+
+ case _ => throw new IllegalArgumentException("unkown statement: " + this)
+ }
+}
+
+case class Assign(variable: Identifier, value: Expression) extends Statement
+case class AssignMatrixIndex(variable: Identifier, indices: Seq[Expression], value: Expression) extends Statement