(numberString, lineNumber)
| 114 | return |
| 115 | |
| 116 | def parseNumber(numberString, lineNumber): |
| 117 | prefix = numberString[0] |
| 118 | numberString = numberString[1:] |
| 119 | result = 0 |
| 120 | if (prefix == "$" or prefix == "@"): |
| 121 | result = int(numberString, 16) |
| 122 | if (result > 65535): |
| 123 | integerError(lineNumber) |
| 124 | elif (prefix == "#"): |
| 125 | result = int(numberString) |
| 126 | if (result > 65535): |
| 127 | integerError(lineNumber) |
| 128 | elif (prefix == "R" and numberString.isdigit() and int(numberString) <= 15): |
| 129 | result = int(numberString) |
| 130 | if (result > 15): |
| 131 | integerError(lineNumber) |
| 132 | else: #is a label |
| 133 | result = getLocationOfLabel(prefix + numberString) |
| 134 | if (result == -1 and lineNumber == -1): #second time around |
| 135 | referenceNotFoundError(prefix + numberString) |
| 136 | elif (result == -1): |
| 137 | return "LABEL-" + (prefix + numberString) |
| 138 | if (result > 65535): |
| 139 | integerError(lineNumber) |
| 140 | if (result < 0): |
| 141 | integerError(lineNumber) |
| 142 | return result |
| 143 | |
| 144 | def encode(line, lineNumber): |
| 145 | #convert to list of integers |
no test coverage detected