<think>
Okay, I need to fix the parse_span function and the other two functions according to the problem description. Let me start by understanding the requirements.

First, the parse_span function is supposed to take a string like "2yd 1ft 4in" and convert it into total inches. The current code splits the text by spaces and takes the part before the last two characters as the value. But that's not correct because the units are part of each part. For example, "2yd" is 2 yards, which is 72 inches. The current code would take "2yd" as "2" and add it as 2 inches, which is wrong. So the problem is that the current code is not properly parsing the units and values.

So the first step is to correctly parse each part. Each part is a value followed by a unit. For example, "2yd" is 2 yards. So the code should split each part into the value and the unit. Then, convert the value to an integer and multiply by the unit's conversion factor.

But the current code is splitting the text into parts by spaces, then taking the part[:-2] as the value. That's incorrect because the unit is part of the string. For example, "2yd" would be split into "2yd", and then part[:-2] is "2", which is correct. Wait, but that's actually correct. Wait, the code is taking the part before the last two characters. For example, "2yd" is 2 yards. The unit is "yd", so the value is 2. So the code is taking the part[:-2], which is "2", then converting to int. Then adding that to total. But that's wrong because the unit is yd, which is 36 inches. So the code is missing the conversion factor.

Ah, right! The current code is just adding the value as is, but it should multiply by the unit's conversion factor. So the current code is incorrect. The function is supposed to parse each part, extract the value and unit, then convert to inches.

So the problem is that the current code is not handling the unit conversion. The original code is just taking the value part and adding it as inches, which is wrong. So the first thing is to fix parse_span to correctly parse each part, extract the value and unit, then convert to inches.

So, for each part in the text, split into value and unit. For example, "2yd" is value 2, unit yd. Then, the value is multiplied by the unit's conversion factor (36 for yd, 12 for ft, 1 for in). So the code should process each part, extract the value and unit, then sum the total inches.

But how to split each part into value and unit? The parts are like "2yd", "1ft", "4in". So each part is a string that ends with a unit (yd, ft, in). So for each part, the unit is the last two characters, and the value is the rest.

So, for each part in the text, we can split into value and unit. But the problem is that the text may have parts like "17in" (which is 17 inches), so the unit is "in", and the value is 17. So the code should split each part into value and unit, then convert the value to an integer, multiply by the unit's conversion factor, and add to the total.

So the current code is wrong because it's not considering the unit's conversion factor. The code is just adding the value as is, which is incorrect.

So the