public virtual TResult Visit(BaseExpression expression) { return(expression switch { Phi a => Visit(a), Increment a => Visit(a), Decrement a => Visit(a), ErrorExpression a => Visit(a), Bracketed a => Visit(a), Abs a => Visit(a), Sqrt a => Visit(a), Sine a => Visit(a), Cosine a => Visit(a), Tangent a => Visit(a), ArcSine a => Visit(a), ArcCos a => Visit(a), ArcTan a => Visit(a), PostIncrement a => Visit(a), PreIncrement a => Visit(a), PostDecrement a => Visit(a), PreDecrement a => Visit(a), Add a => Visit(a), Subtract a => Visit(a), Multiply a => Visit(a), Divide a => Visit(a), Modulo a => Visit(a), Negate a => Visit(a), Exponent a => Visit(a), Or a => Visit(a), And a => Visit(a), Not a => Visit(a), Factorial a => Visit(a), Variable a => Visit(a), ConstantNumber a => Visit(a), ConstantString a => Visit(a), EqualTo a => Visit(a), NotEqualTo a => Visit(a), GreaterThan a => Visit(a), GreaterThanEqualTo a => Visit(a), LessThan a => Visit(a), LessThanEqualTo a => Visit(a), _ => VisitUnknown(expression) });
protected override bool Visit(ArcSine app) => StaticFalse(app);
protected override Type Visit(ArcSine app) => UnaryNumeric(app, app.Parameter, true, false);
protected override BaseExpression Visit(ArcSine app) { using (AppendLine("ASIN")) return(base.Visit(app)); }
[NotNull] protected abstract TResult Visit([NotNull] ArcSine app);
[NotNull] protected virtual BaseExpression Visit([NotNull] ArcSine app) { return(new ArcSine(Visit(app.Parameter))); }
protected override IDataFlowGraphExpressionNode Visit(ArcSine app) { return(VisitUnary(new UnaryOp(Guid.NewGuid(), "asin", Visit(app.Parameter), a => new ArcSine(a)))); }
protected override bool Visit(ArcSine app) => Visit(app.Parameter);
protected override IEnumerable <BaseStatement> Visit(ArcSine app) => Unary(app, a => new ArcSine(a));
protected override bool Visit(ArcSine app) => Visit(app.Parameter) && _level >= YololChip.Professional;