diff options
Diffstat (limited to 'src/main/scala/scalam/m/ast/statements.scala')
-rw-r--r-- | src/main/scala/scalam/m/ast/statements.scala | 14 |
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 |