private (RacketExpression?, string) ParseLine(string str) { RacketExpression?expression = null; RacketValueType? retValue; string retValueString; try { expression = RacketExpression.Parse(str); retValue = expression?.Evaluate(); retValueString = retValue?.ToString() ?? ""; } catch (Exception ex) { retValueString = $"; {ex.Message}"; } if (!string.IsNullOrEmpty(retValueString)) { retValueString += Environment.NewLine; } return(expression, retValueString); }