Beispiel #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);
        }
Beispiel #2
0
 private void PrettyPrintSub(BackquoteNode node)
 {
     stringWriter.Write("`");
     PrettyPrint(node.InnerValue);
 }
 public object ExpandBackquote(BackquoteNode node, int backquoteDepth, Environment environment)
 {
     return new QuoteNode(Expand(node.InnerValue, backquoteDepth + 1, environment));
 }
Beispiel #4
0
 public object Evaluate(BackquoteNode node, Environment environment)
 {
     return backqouteExpander.Expand(node.InnerValue, 1, environment);
 }