예제 #1
0
        public override ResolveResult Resolve(CppResolver resolver)
        {
            ResolveResult lhs = left.Resolve(resolver);
            ResolveResult rhs = right.Resolve(resolver);

            return(resolver.ResolveBinaryOperator(operatorType, lhs, rhs));
        }
예제 #2
0
 public override ResolveResult Resolve(CppResolver resolver)
 {
     return(resolver.ResolveConditional(
                condition.Resolve(resolver),
                trueExpr.Resolve(resolver),
                falseExpr.Resolve(resolver)
                ));
 }
예제 #3
0
        public override ResolveResult Resolve(CppResolver resolver)
        {
            ResolveResult rr;

            if (targetType != null)
            {
                rr = new TypeResolveResult(targetType.Resolve(resolver.CurrentTypeResolveContext));
            }
            else
            {
                rr = targetExpression.Resolve(resolver);
            }
            return(resolver.ResolveMemberAccess(rr, memberName, typeArguments.Resolve(resolver.CurrentTypeResolveContext)));
        }
예제 #4
0
 public override ResolveResult Resolve(CppResolver resolver)
 {
     return(resolver.ResolveUnaryOperator(operatorType, expression.Resolve(resolver)));
 }
예제 #5
0
 public override ResolveResult Resolve(CppResolver resolver)
 {
     return(expression.Resolve(resolver.WithCheckForOverflow(checkForOverflow)));
 }
예제 #6
0
 public override ResolveResult Resolve(CppResolver resolver)
 {
     return(resolver.ResolveCast(targetType.Resolve(resolver.CurrentTypeResolveContext), expression.Resolve(resolver)));
 }