module Mathista.IL where
import Mathista.AST

data IL
    = ILFuncDecl String [(Id, Id)] [Id]
    | ILCall    String [Id] [Id]
    | ILReturn  [Id]
    | ILLAssign Id [Id] [Integer] [Double] -- Vto, indexes, dims, elements
    | ILAssign  Id [Id] [Id] Id -- Vto, indexes, dims, Vform
    | ILIf      Id
    | ILElseIf  Id
    | ILElse
    | ILWhile   Id
    | ILBreak
    | ILContinue
    | ILEnd
    deriving (Eq, Show)