aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scalam/m/ast/statements.scala
blob: 97b982198b947dc1ebbe6a7ba8feb5ac01e25cac (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
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