private void InstrumentBranch(
            LanguageSupport support, long fileId, long funcId, AstTransformer inserter, XElement func)
        {
            var branches = support.AstAnalyzer.FindBranches(func);

            foreach (var branch in branches)
            {
                var position = CodeRange.Locate(branch);
                var branchId = RegisterBranch(fileId, funcId, position);
                inserter.InsertPredicate(branch, branchId, ElementType.Decision);
            }
        }
        private void InstrumentStatement(
            LanguageSupport support, long fileId, long funcId, AstTransformer inserter, XElement func)
        {
            var stmts = support.AstAnalyzer.FindStatements(func);

            foreach (var stmt in stmts)
            {
                var position = CodeRange.Locate(stmt);
                var stmtId   = RegisterStatement(fileId, funcId, position);
                inserter.InsertStatementBefore(stmt, stmtId, CodeTransformer.Done, ElementType.Statement);
            }
        }
		private void InstrumentBranch(
				LanguageSupport support, long fileId, long funcId, AstTransformer inserter, XElement func) {
			var branches = support.AstAnalyzer.FindBranches(func);
			foreach (var branch in branches) {
				var position = CodeRange.Locate(branch);
				var branchId = RegisterBranch(fileId, funcId, position);
				inserter.InsertPredicate(branch, branchId, ElementType.Decision);
			}
		}
		private void InstrumentStatement(
				LanguageSupport support, long fileId, long funcId, AstTransformer inserter, XElement func) {
			var stmts = support.AstAnalyzer.FindStatements(func);
			foreach (var stmt in stmts) {
				var position = CodeRange.Locate(stmt);
				var stmtId = RegisterStatement(fileId, funcId, position);
				inserter.InsertStatementBefore(stmt, stmtId, CodeTransformer.Done, ElementType.Statement);
			}
		}