Lines Matching defs:ExprAST
133 /// ExprAST - Base class for all expression nodes.
134 class ExprAST {
136 virtual ~ExprAST() = default;
142 class NumberExprAST : public ExprAST {
152 class VariableExprAST : public ExprAST {
162 class BinaryExprAST : public ExprAST {
164 std::unique_ptr<ExprAST> LHS, RHS;
167 BinaryExprAST(char Op, std::unique_ptr<ExprAST> LHS,
168 std::unique_ptr<ExprAST> RHS)
175 class CallExprAST : public ExprAST {
177 std::vector<std::unique_ptr<ExprAST>> Args;
181 std::vector<std::unique_ptr<ExprAST>> Args)
188 class IfExprAST : public ExprAST {
189 std::unique_ptr<ExprAST> Cond, Then, Else;
192 IfExprAST(std::unique_ptr<ExprAST> Cond, std::unique_ptr<ExprAST> Then,
193 std::unique_ptr<ExprAST> Else)
200 class ForExprAST : public ExprAST {
202 std::unique_ptr<ExprAST> Start, End, Step, Body;
205 ForExprAST(const std::string &VarName, std::unique_ptr<ExprAST> Start,
206 std::unique_ptr<ExprAST> End, std::unique_ptr<ExprAST> Step,
207 std::unique_ptr<ExprAST> Body)
232 std::unique_ptr<ExprAST> Body;
236 std::unique_ptr<ExprAST> Body)
271 std::unique_ptr<ExprAST> LogError(const char *Str) {
281 static std::unique_ptr<ExprAST> ParseExpression();
284 static std::unique_ptr<ExprAST> ParseNumberExpr() {
291 static std::unique_ptr<ExprAST> ParseParenExpr() {
306 static std::unique_ptr<ExprAST> ParseIdentifierExpr() {
316 std::vector<std::unique_ptr<ExprAST>> Args;
340 static std::unique_ptr<ExprAST> ParseIfExpr() {
370 static std::unique_ptr<ExprAST> ParseForExpr() {
395 std::unique_ptr<ExprAST> Step;
421 static std::unique_ptr<ExprAST> ParsePrimary() {
440 static std::unique_ptr<ExprAST> ParseBinOpRHS(int ExprPrec,
441 std::unique_ptr<ExprAST> LHS) {
478 static std::unique_ptr<ExprAST> ParseExpression() {