private Block CreateInitialBlock(Implementation impl, List <Cmd> preconditions) { var initCmds = new List <Cmd>(preconditions); initCmds.AddRange(globalSnapshotInstrumentation.CreateInitCmds()); initCmds.AddRange(refinementInstrumentation.CreateInitCmds()); initCmds.AddRange(noninterferenceInstrumentation.CreateInitCmds(impl)); return(BlockHelper.Block(civlTypeChecker.AddNamePrefix("init"), initCmds, new List <Block> { impl.Blocks[0] })); }
private Block CreateInitialBlock(Implementation impl, List <Cmd> preconditions) { var initCmds = new List <Cmd>(preconditions); initCmds.AddRange(globalSnapshotInstrumentation.CreateInitCmds()); initCmds.AddRange(refinementInstrumentation.CreateInitCmds()); initCmds.AddRange(noninterferenceInstrumentation.CreateInitCmds(impl)); var gotoCmd = new GotoCmd(Token.NoToken, new List <String> { impl.Blocks[0].Label }, new List <Block> { impl.Blocks[0] }); return(new Block(Token.NoToken, civlTypeChecker.AddNamePrefix("init"), initCmds, gotoCmd)); }
private Block AddInitialBlock(Implementation impl) { var initCmds = new List <Cmd>(); initCmds.AddRange(globalSnapshotInstrumentation.CreateInitCmds()); initCmds.AddRange(refinementInstrumentation.CreateInitCmds()); initCmds.AddRange(noninterferenceInstrumentation.CreateInitCmds(impl)); var gotoCmd = new GotoCmd(Token.NoToken, new List <String> { impl.Blocks[0].Label }, new List <Block> { impl.Blocks[0] }); return(new Block(Token.NoToken, "og_init", initCmds, gotoCmd)); }