예제 #1
0
            public IIsPossibly <IWeakTypeReference> Run(IResolvableScope scope, IResolveReferenceContext context)
            {
                var res = make(
                    left.Run(scope, context),
                    right.Run(scope, context));

                return(res);
            }
예제 #2
0
            public IIsPossibly <WeakPathOperation> Run(IResolvableScope scope, IResolveReferenceContext context)
            {
                var res = Possibly.Is(new WeakPathOperation(
                                          left.Run(scope, context),
                                          Possibly.Is(new WeakMemberReference(left.GetReturnedType().GetMemberDefinition(new NameKey(name))))));

                return(res);
            }
예제 #3
0
            public IIsPossibly <TFrontendCodeElement> Run(IResolvableScope scope, IResolveReferenceContext context)
            {
                var res = make(
                    left.Run(scope, context),
                    right.Run(scope, context));

                return(res);
            }
예제 #4
0
            public IIsPossibly <WeakAssignOperation> Run(IResolvableScope scope, IResolveReferenceContext context)
            {
                var leftRes = left.Run(scope, context);
                var res     = Possibly.Is(new WeakAssignOperation(
                                              leftRes,
                                              right.Run(scope, context)));

                return(res);
            }
예제 #5
0
 public IIsPossibly <WeakBlockDefinition> Run(IResolvableScope _, IResolveReferenceContext context)
 {
     return
         (Possibly.Is(
              new WeakBlockDefinition(
                  resolveReferance.Select(x => x.Run(scope, context)).ToArray(),
                  scope,
                  new IIsPossibly <IConvertableFrontendCodeElement <ICodeElement> > [0])));
 }
예제 #6
0
            public IIsPossibly <WeakObjectDefinition> Run(IResolvableScope _, IResolveReferenceContext context)
            {
                var innerRes = new WeakObjectDefinition(
                    scope,
                    elements.Select(x => x.Run(scope, context).Cast <IIsPossibly <WeakAssignOperation> >()).ToArray());
                var res = Possibly.Is(innerRes);

                return(res);
            }
예제 #7
0
 public IIsPossibly <WeakMethodDefinition> Run(IResolvableScope _, IResolveReferenceContext context)
 {
     return
         (Possibly.Is(
              new WeakMethodDefinition(
                  output.Run(methodScope, context),
                  parameter.Run(methodScope, context).IfIs(x => x.MemberDefinition),
                  lines.Select(x => x.Run(methodScope, context)).ToArray(),
                  methodScope,
                  new IIsPossibly <IConvertableFrontendCodeElement <ICodeElement> > [0], isEntryPoint)));
 }
예제 #8
0
            public IIsPossibly <WeakModuleDefinition> Run(IResolvableScope _, IResolveReferenceContext context)
            {
                var innerRes = new WeakModuleDefinition(
                    scope,
                    resolveReferance.Select(x => x.Run(scope, context)).ToArray(),
                    nameKey);

                var res = Possibly.Is(innerRes);

                return(res);
            }
예제 #9
0
            public IIsPossibly <WeakMemberReference> Run(IResolvableScope scope, IResolveReferenceContext context)
            {
                memberDefinitionBox.Fill(
                    Possibly.Is(
                        new WeakMemberDefinition(
                            isReadonly,
                            memberName,
                            type.Run(scope, context))));

                return(Possibly.Is(new WeakMemberReference(Possibly.Is(memberDefinitionBox))));
            }
예제 #10
0
            public IIsPossibly <WeakGenericTypeDefinition> Run(IResolvableScope _, IResolveReferenceContext context)
            {
                // hmm getting the template down here is hard
                // scope mostly comes from context
                // why is that?

                var nextLines = lines.Select(x => x.Run(this.scope, context)).ToArray();

                return(box.Fill(Possibly.Is(new WeakGenericTypeDefinition(
                                                Possibly.Is(nameKey),
                                                this.scope,
                                                genericParameters.Select(x => Possibly.Is(x)).ToArray()))));
            }
예제 #11
0
 public IIsPossibly <WeakConstantString> Run(IResolvableScope scope, IResolveReferenceContext context)
 {
     return(Possibly.Is(new WeakConstantString(Possibly.Is(str))));
 }
예제 #12
0
 public IIsPossibly <WeakTypeReference> Run(IResolvableScope scope, IResolveReferenceContext context)
 {
     return(Possibly.Is(new WeakTypeReference(scope.PossiblyGetType(key))));
 }
예제 #13
0
 public IIsPossibly <WeakConstantBool> Run(IResolvableScope scope, IResolveReferenceContext context)
 {
     return(Possibly.Is(new WeakConstantBool(Possibly.Is(dub))));
 }
예제 #14
0
파일: NewEmpty.cs 프로젝트: rauldoblem/Tac
 public IIsPossibly <WeakEmptyInstance> Run(IResolvableScope _, IResolveReferenceContext context)
 {
     return(Possibly.Is(new WeakEmptyInstance()));
 }
예제 #15
0
            public IIsPossibly <WeakImplementationDefinition> Run(IResolvableScope _, IResolveReferenceContext context)
            {
                var innerRes = new WeakImplementationDefinition(
                    contextDefinition.Run(methodScope, context).IfIs(x => x.MemberDefinition),
                    parameterDefinition.Run(methodScope, context).IfIs(x => x.MemberDefinition),
                    output.Run(methodScope, context),
                    elements.Select(x => x.Run(methodScope, context)).ToArray(),
                    methodScope,
                    new IConvertableFrontendCodeElement <ICodeElement> [0]);

                var res = Possibly.Is(innerRes);

                return(res);
            }
예제 #16
0
 public IIsPossibly <IWeakTypeReference> Run(IResolvableScope _, IResolveReferenceContext context)
 {
     definitionBox.Fill(Possibly.Is(new WeakTypeDefinition(resolvableScope, Possibly.Is(key))));
     return(Possibly.Is(typeReferance));
 }
예제 #17
0
파일: Member.cs 프로젝트: rauldoblem/Tac
 public IIsPossibly <WeakMemberReference> Run(IResolvableScope scope, IResolveReferenceContext context)
 {
     return(Possibly.Is(new WeakMemberReference(scope.PossiblyGetMember(false, key))));
 }