private static void ProcessLine(FunctionDataBuilder fdb, String line) { Regex regex = new Regex(TAB_DELIM_PATTERN); String[] parts = regex.Split(line); if (parts.Length != 8) { throw new Exception("Bad line format '" + line + "' - expected 8 data fields"); } int functionIndex = ParseInt(parts[0]); String functionName = parts[1]; int minParams = ParseInt(parts[2]); int maxParams = ParseInt(parts[3]); byte returnClassCode = ParseReturnTypeCode(parts[4]); byte[] parameterClassCodes = ParseOperandTypeCodes(parts[5]); // 6 IsVolatile bool hasNote = parts[7].Length > 0; ValidateFunctionName(functionName); // TODO - make POI use IsVolatile fdb.Add(functionIndex, functionName, minParams, maxParams, returnClassCode, parameterClassCodes, hasNote); }