Exemple #1
0
        public override StatementList AllocObject(IVariable var, InstructionTranslator instTranslator)
        {
            var freshVariable = instTranslator.GetFreshVariable(Helpers.GetBoogieType(var));
            var stmts         = new StatementList();

            stmts.Add(dispatcher.AllocObject(freshVariable));
            stmts.Add(bg.VariableAssignment(var, freshVariable));
            return(stmts);
        }
Exemple #2
0
        public override StatementList CallReadArrayElement(IVariable resultVariable, Expression array, Expression index, InstructionTranslator instructionTranslator)
        {
            StatementList stmts = new StatementList();

            BoogieVariable boogieResVar = null;

            if (resultVariable != null)
            {
                boogieResVar = instructionTranslator.GetFreshVariable(Helpers.GetBoogieType(resultVariable));
            }
            stmts.Add(dispatcher.CallReadArrayElement(boogieResVar, array, index));
            if (resultVariable != null)
            {
                stmts.Add(dispatcher.WriteAddr(dispatcher.AddressOf(resultVariable), boogieResVar));
            }
            return(stmts);
        }