Exemple #1
0
 static void AddCapture(MMap <Symbol, LNode> captures, LNode cap, Slice_ <LNode> items)
 {
     Debug.Assert(cap.Calls(S.Substitute, 1) && cap.Args.Last.IsId);
     if (items.Count == 1)
     {
         AddCapture(captures, cap.Args.Last.Name, items[0]);
     }
     else
     {
         AddCapture(captures, cap.Args.Last.Name, F.Call(S.Splice, items));
     }
 }
Exemple #2
0
        static void AddCapture(MMap <Symbol, LNode> captures, LNode cap, Slice_ <LNode> items)
        {
            LNode capId = GetCaptureIdentifier(cap);

            if (items.Count == 1)
            {
                AddCapture(captures, capId.Name, items[0]);
            }
            else
            {
                AddCapture(captures, capId.Name, F.Call(S.Splice, items));
            }
        }
Exemple #3
0
		static void AddCapture(MMap<Symbol, LNode> captures, LNode cap, Slice_<LNode> items)
		{
			LNode capId = GetCaptureIdentifier(cap);
			if (items.Count == 1)
				AddCapture(captures, capId.Name, items[0]);
			else
				AddCapture(captures, capId.Name, F.Call(S.Splice, items));
		}
Exemple #4
0
		static void AddCapture(MMap<Symbol, LNode> captures, LNode cap, Slice_<LNode> items)
		{
			Debug.Assert(cap.Calls(S.Substitute, 1) && cap.Args.Last.IsId);
			if (items.Count == 1)
				AddCapture(captures, cap.Args.Last.Name, items[0]);
			else
				AddCapture(captures, cap.Args.Last.Name, F.Call(S.Splice, items));
		}