コード例 #1
0
            public IResolvelizeScope <WeakAssignOperation> Run(IPopulatableScope scope, IPopulateScopeContext context)
            {
                left.GetReturnedType().AcceptsType(right.GetReturnedType());

                return(new WeakAssignOperationFinalizeScope(
                           left.Run(scope, context),
                           right.Run(scope, context)));
            }
コード例 #2
0
            public IResolvelizeScope <WeakPathOperation> Run(IPopulatableScope scope, IPopulateScopeContext context)
            {
                left.GetReturnedType().HasMember(new NameKey(name));

                return(new WeakPathOperationFinalizeScope(
                           left.Run(scope, context),
                           name));
            }
コード例 #3
0
ファイル: AbstractOperation.cs プロジェクト: rauldoblem/Tac
            public IResolvelizeScope <IWeakTypeReference> Run(IPopulatableScope scope, IPopulateScopeContext context)
            {
                // TODO
                // this is something I don't much like
                // right runs first because of assign
                // in assign you might have something like
                // method [int;int] input { input < ? 2 if { 1 return; } else { input - 1 > fac * input return; } } =: fac
                // if the left runs first than fac will not be found
                // and so it will add it to the scope
                // but if the right is run first
                // fac works
                // if I add an assign that goes the other way...
                // this will break

                // part of me just thinks
                // force 'var' on member definition

                return(new BinaryFinalizeScope(
                           left.Run(scope, context),
                           right.Run(scope, context),
                           make));
            }
コード例 #4
0
 public IResolvelizeScope <TFrontendCodeElement> Run(IPopulatableScope scope, IPopulateScopeContext context)
 {
     return(new TrailingFinalizeScope(left.Run(scope, context), make));
 }