private LispList parseQuote(StreamReader reader) { reader.Read(); var list = new LispList(); list.Add(new LispSymbol("quote")); list.Add(parseExpression(reader)); return(list); }
private LispList parseList(StreamReader reader) { reader.Read(); skipWhitespaces(reader); var list = new LispList(); while (!reader.EndOfStream) { char c = (char)reader.Peek(); if (c == ')') { reader.Read(); return(list); } else { dynamic expression = parseExpression(reader); list.Add(expression); } skipWhitespaces(reader); } throw new NotImplementedException("Missing closing brace!"); }