Lines Matching full:expression
72 * If both operands are compile-time constants and can be folded, returns an expression
76 std::unique_ptr<Expression> constantFold(const Expression& left,
78 const Expression& right) const;
102 std::unique_ptr<Expression> convertExpression(const ASTExpression& expression);
107 std::unique_ptr<Expression> call(int offset,
109 std::vector<std::unique_ptr<Expression>> arguments);
111 const std::vector<std::unique_ptr<Expression>>& arguments);
112 std::unique_ptr<Expression> call(int offset, std::unique_ptr<Expression> function,
113 std::vector<std::unique_ptr<Expression>> arguments);
114 int coercionCost(const Expression& expr, const Type& type);
115 std::unique_ptr<Expression> coerce(std::unique_ptr<Expression> expr, const Type& type);
118 std::unique_ptr<Expression> convertNumberConstructor(
121 std::vector<std::unique_ptr<Expression>> params);
122 std::unique_ptr<Expression> convertCompoundConstructor(
125 std::vector<std::unique_ptr<Expression>> params);
126 std::unique_ptr<Expression> convertConstructor(int offset,
128 std::vector<std::unique_ptr<Expression>> params);
133 std::unique_ptr<Expression> convertBinaryExpression(const ASTBinaryExpression& expression);
137 std::unique_ptr<Expression> convertIdentifier(const ASTIdentifier& identifier);
139 std::unique_ptr<Expression> convertIndex(std::unique_ptr<Expression> base,
143 std::unique_ptr<Expression> convertPrefixExpression(const ASTPrefixExpression& expression);
146 std::unique_ptr<Expression> getCap(int offset, String name);
147 std::unique_ptr<Expression> getArg(int offset, String name);
148 std::unique_ptr<Expression> convertSuffixExpression(const ASTSuffixExpression& expression);
149 std::unique_ptr<Expression> convertTypeField(int offset, const Type& type,
151 std::unique_ptr<Expression> convertField(std::unique_ptr<Expression> base,
153 std::unique_ptr<Expression> convertSwizzle(std::unique_ptr<Expression> base,
155 std::unique_ptr<Expression> convertTernaryExpression(const ASTTernaryExpression& expression);
163 void fixRectSampling(std::vector<std::unique_ptr<Expression>>& arguments);
164 void checkValid(const Expression& expr);
165 void markWrittenTo(const Expression& expr, bool readWrite);
166 void getConstantInt(const Expression& value, int64_t* out);