예제 #1
0
        public void AddNode(object node)
        {
            object value = node;

            while (lists.Peek().Item2.Count > 0)
            {
                switch (lists.Peek().Item2.Pop())
                {
                    case QuoteType.Quote:
                        value = new QuoteNode(value);
                        break;

                    case QuoteType.Backquote:
                        value = new BackquoteNode(value);
                        break;

                    case QuoteType.Unquote:
                        value = new UnquoteNode(value);
                        break;

                    case QuoteType.Splice:
                        value = new SpliceNode(value);
                        break;
                }
            }

            lists.Peek().Item1.Add(value);
        }
예제 #2
0
 private void PrettyPrintSub(QuoteNode node)
 {
     stringWriter.Write("'");
     PrettyPrint(node.InnerValue);
 }
예제 #3
0
 public object Evaluate(QuoteNode node, Environment environment)
 {
     return node.InnerValue;
 }