module CsoundExpr.Translator.Instr (toInstr, toOpcodeExpr) where import qualified Data.Map as Map import CsoundExpr.Translator.ExprTree.TreeSeq import qualified CsoundExpr.Translator.Cs.CsTree as La import qualified CsoundExpr.Translator.Cs.CsoundFile as Cs import CsoundExpr.Translator.Types import CsoundExpr.Translator.AssignmentElimination import CsoundExpr.Translator.MultiOutsFolding --------------------------------------------------------------- --------------------------------------------------------------- -- translate intruments toInstr :: (Id, Instr) -> Cs.Instr toInstr (id, x) = Cs.Instr id $ toOpcodeExpr x --------------------------------------------------------------- --------------------------------------------------------------- -- translate opcodes toOpcodeExpr :: Instr -> [Cs.OpcodeExpr] toOpcodeExpr = foldMultiOuts . eliminateAssignment . reduceAdjLists . adjLists 0