예제 #1
0
        private LispList parseQuote(StreamReader reader)
        {
            reader.Read();

            var list = new LispList();

            list.Add(new LispSymbol("quote"));
            list.Add(parseExpression(reader));

            return(list);
        }
예제 #2
0
        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!");
        }