if (name.GetLastCharacter() != ']') { JFloat value; input >> value; AddVariable(name, value); } else { const JSize nameLen = name.GetLength(); JIndex bracketIndex; const JBoolean foundBracket = name.LocateSubstring("[", &bracketIndex); assert( foundBracket && bracketIndex < nameLen-1 ); const JString sizeStr = name.GetSubstring(bracketIndex+1, nameLen-1); name.RemoveSubstring(bracketIndex, nameLen); JFloat x; const JBoolean isNumber = sizeStr.ConvertToFloat(&x); assert( isNumber ); const JSize arraySize = JRound(x); GNArray values(arraySize); for (JIndex i=1; i<= arraySize; i++) { JFloat value; input >> value; values.AppendElement(value); } AddArray(name, values); } } else { JString errorStr = "Unsupported variable type 'x'";