8#ifndef SKSL_CONSTRUCTOR
9#define SKSL_CONSTRUCTOR
60 std::unique_ptr<Expression>
argument)
68 const std::unique_ptr<Expression>&
argument()
const {
73 return {&fArgument, 1};
77 return {&fArgument, 1};
81 std::unique_ptr<Expression> fArgument;
105 return {&fArguments.
front(), fArguments.
size()};
109 return {&fArguments.
front(), fArguments.
size()};
130namespace Constructor {
std::optional< double > getConstantValue(int n) const override
ComparisonResult compareConstant(const Expression &other) const override
virtual SkSpan< const std::unique_ptr< Expression > > argumentSpan() const =0
bool supportsConstantValues() const override
AnyConstructor(Position pos, Kind kind, const Type *type)
virtual SkSpan< std::unique_ptr< Expression > > argumentSpan()=0
const Type & componentType() const
Expression(Position pos, Kind kind, const Type *type)
const Type & type() const
std::string description() const final
SkSpan< const std::unique_ptr< Expression > > argumentSpan() const final
ExpressionArray & arguments()
MultiArgumentConstructor(Position pos, Kind kind, const Type *type, ExpressionArray arguments)
SkSpan< std::unique_ptr< Expression > > argumentSpan() final
const ExpressionArray & arguments() const
SkSpan< std::unique_ptr< Expression > > argumentSpan() final
SkSpan< const std::unique_ptr< Expression > > argumentSpan() const final
SingleArgumentConstructor(Position pos, Kind kind, const Type *type, std::unique_ptr< Expression > argument)
const std::unique_ptr< Expression > & argument() const
std::unique_ptr< Expression > & argument()
virtual const Type & componentType() const
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
std::unique_ptr< Expression > Convert(const Context &context, Position pos, const Type &type, ExpressionArray args)