コード例 #1
0
ファイル: BindingAssigner.cs プロジェクト: Phoshi/Gram
        public override Tree <Binding> VisitBinding_trailing(gramParser.Binding_trailingContext context)
        {
            var numBindings = context.binding().Count;
            var bindings    = context.binding().Take(numBindings - 1).Zip(value.Get <IEnumerable <IValue> >(), (binding, subValue) => new BindingAssigner(interpreter, subValue).Visit(binding));

            var tree = new Tree <Binding>();

            foreach (var binding in bindings)
            {
                tree.Add(binding);
            }

            var trailing = new BindingAssigner(interpreter,
                                               ValueFactory.make(value.Get <IEnumerable <IValue> >().Skip(numBindings - 1)));

            tree.Add(trailing.Visit(context.binding().Last()));

            return(tree);
        }
コード例 #2
0
ファイル: BindingExplorer.cs プロジェクト: Phoshi/Gram
 public override Tree <Binding> VisitBinding_trailing(gramParser.Binding_trailingContext context)
 {
     return(new Tree <Binding>(new Binding("list", Type.Of(ValueType.LIST))));
 }