,,
Mon Dec 04 2023 11:49:20 GMT+0000 (Coordinated Universal Time)
def mathOp(line, tline, i, rowNum):
op = []
num_of_operations = 0
num_of_AN = 0
while i < len(line):
if line[i] == "SUM OF":
op.append("+")
i += 1
num_of_operations += 1
elif line[i] == "DIFF OF":
op.append("-")
i += 1
num_of_operations += 1
elif line[i] == "PRODUKT OF":
op.append("*")
i += 1
num_of_operations += 1
elif line[i] == "QUOSHUNT OF":
op.append("/")
i += 1
num_of_operations += 1
elif line[i] == "MOD OF":
op.append("%")
i += 1
num_of_operations += 1
elif line[i] == "BIGGR OF":
op.append("max")
i += 1
num_of_operations += 1
elif line[i] == "SMALLR OF":
op.append("min")
i += 1
num_of_operations += 1
else:
if tline[i] == "NUMBR":
op.append(int(line[i]))
i += 1
elif tline[i] == "NUMBAR":
op.append(float(line[i]))
i += 1
elif tline[i] == "VARIABLE":
value, _ = searchVarValue(line[i])
op.append(value)
i += 1
elif tline[i] == "YARN":
value = typeCasting(line[i], tline[i], "NUMBAR", rowNum)
op.append(value)
i += 1
elif tline[i] == "AN":
i += 1
num_of_AN += 1
else:
raise RuntimeError("Unexpected %r at line %d" % (line[i], rowNum))
i += 1
expected_operands = num_of_operations + 1
actual_operands = len(op) - (num_of_AN + num_of_operations)
if expected_operands != actual_operands:
raise RuntimeError(
"Expected %d operands, but found %d at line %d"
% (expected_operands, actual_operands, rowNum)
)
else:
return parse(deque(op))



Comments