public ApplyFunctorToOperationCalls(QsFunctor functor) : base(new TransformationsState(functor)) { this.StatementKinds = new IgnoreOuterBlockInConjugations <TransformationsState>(this); this.ExpressionKinds = new ExpressionKindTransformation(this); this.Types = new TypeTransformation <TransformationsState>(this, TransformationOptions.Disabled); }
public ApplyFunctorToOperationCalls(QsFunctor functor) : base(new TransformationsState(functor)) { if (functor.IsControlled) { this.Statements = new AddVariableDeclarations <TransformationsState>(this, ControlQubitsDeclaration); } this.StatementKinds = new IgnoreOuterBlockInConjugations <TransformationsState>(this); this.ExpressionKinds = new ExpressionKindTransformation(this); this.Types = new TypeTransformation <TransformationsState>(this, TransformationOptions.Disabled); }
public ApplyToExpressionKind(Core.ExpressionTransformation expression, QsFunctor functor) : base(expression) => this.FunctorToApply = functor ?? throw new ArgumentNullException(nameof(functor));
public ApplyFunctorToOperationCalls(QsFunctor functor) : base( s => new IgnoreOuterBlockInConjugations <ApplyFunctorToOperationCalls>(s as ApplyFunctorToOperationCalls), new ExpressionTransformation <ApplyToExpressionKind>(e => new ApplyToExpressionKind(e, functor))) { }
public ExpressionKindTransformation(QsFunctor functor) : base(new TransformationsState(functor)) { }
public TransformationsState(QsFunctor functor) => this.FunctorToApply = functor ?? throw new ArgumentNullException(nameof(functor));
public TransformationsState(QsFunctor functor) => this.FunctorToApply = functor;
public ApplyFunctorToOperationCalls(QsFunctor functor) : base(new ExpressionTransformation <ApplyToExpressionKind>(e => new ApplyToExpressionKind(e, functor))) { }