def buildToken(text, flavor, line, colStart, colEnd, stateDeets): newToken = Token() newToken.text = text newToken.flavor = flavor newToken.line = line newToken.colStart = colStart newToken.colEnd = colEnd #check for reserved ops if newToken.text in stateDeets.reservedWords: newToken.flavor = "T_" + str( newToken.text[0]).upper() + newToken.text[1:] elif newToken.text == "true" or newToken.text == "false": newToken.flavor = "T_BoolConstant" #check for errors if len(newToken.text) > 31 and "Constant" not in newToken.flavor: newToken.hasError = True newToken.errorType = "too long" elif newToken.flavor == "Unrecognized": newToken.hasError = True newToken.errorType = "unrecognized character" elif newToken.flavor == "unterminated string": newToken.hasError = True newToken.errorType = "unterminated string" stateDeets.tokenList.append(newToken) return stateDeets