private CompiledExpression(ExpressionSyntax syntax, IMathContext context = null)
        {
            Syntax  = syntax;
            Context = context;

            Intermediate      = IntermediateExpression.Compile(syntax, context);
            calculationBuffer = new MathValue[Intermediate.DistSize];
        }
Exemplo n.º 2
0
        private SimpleMathExpression(string expression, IMathContext?context = null)
        {
            Expression = expression;
            Context    = context;

            Intermediate  = IntermediateCompiler.Compile(expression, context);
            runtimeBuffer = new MathValue[Intermediate.DistSize];
        }
        private static IEnumerable<ParameterAnnotationInfo> GetParameterAnnotationInfoFromExpression(IntermediateExpression expression)
        {
            var fromCall = GetAnnotationInfoFromMethodCall(expression.TargetMethodCall);
            var fromNew = GetAnnotationInfoFromNew(expression.TargetNew);

            return fromCall.Concat(fromNew);
        }
 private static MemberInfo GetMemberInfo(IntermediateExpression expression)
 {
     if (expression.TargetMethodCall != null)
     {
         return expression.TargetMethodCall.Method;
     }
     if (expression.TargetMemberAccess != null)
     {
         return expression.TargetMemberAccess.Member;
     }
     if (expression.TargetNew != null)
     {
         return expression.TargetNew.Constructor;
     }
     throw new ArgumentException("Unexpected expression structure", nameof(expression));
 }
        private static IEnumerable<MemberAnnotationInfo> GetAnnotationInfoFromExpression(IntermediateExpression expression)
        {
            var fromEquals = GetAnnotationInfoFromMemberEquals(expression.EqualsMethodCall);

            return fromEquals;
        }