def METHOD_NAME(src_txt):
    src_ast = ast.parse(src_txt)
    wire_collector = WireCollector(src_txt.splitlines())
    wire_collector.visit(src_ast)
    src_lines = src_txt.split('\n')
    for lineno, expr_offset, end_offset in wire_collector.wire_stmts:
        src_line = src_lines[lineno]
        fragment = src_line[expr_offset : end_offset]
        match = wire_re.match(fragment)
        assert match, (lineno, expr_offset, end_offset, src_line, fragment)
        # get the span of the LtE
        span = match.span(1)
        assert fragment[slice(*span)] == '<='
        assert src_line[expr_offset + span[0]] == '<'
        new_fragment = ''.join((fragment[:span[0]], '@', fragment[span[0] + 1:]))
        assert len(new_fragment) == len(fragment)
        new_match = new_wire_re.match(new_fragment)
        assert new_match
        assert new_match.span(1) == span
        # Would be slighter faster to construct the new_src_line directly
        # instead of constructing the new_fragment then the new_src_line.
        # But I want to have to the assertions.  Also I doubt
        # Performance will ever be an issue
        new_src_line = ''.join((
            src_line[:expr_offset],
            new_fragment,
            src_line[end_offset:]))
        assert len(new_src_line) == len(src_line)
        src_lines[lineno] = new_src_line
    new_src_txt = '\n'.join(src_lines)
    assert len(src_txt) == len(new_src_txt)
    return new_src_txt