MCPcopy Index your code
hub / github.com/InkboxSoftware/excelCPU / parseNumber

Function parseNumber

compileExcelASM16.py:116–142  ·  view source on GitHub ↗
(numberString, lineNumber)

Source from the content-addressed store, hash-verified

114 return
115
116def 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
144def encode(line, lineNumber):
145 #convert to list of integers

Callers 3

encodeFunction · 0.85
parseProgramFunction · 0.85
parseUnmarkedLabelsFunction · 0.85

Calls 3

integerErrorFunction · 0.85
getLocationOfLabelFunction · 0.85
referenceNotFoundErrorFunction · 0.85

Tested by

no test coverage detected