Lines Matching defs:ExprAST

121 /// ExprAST - Base class for all expression nodes.
122 class ExprAST {
124 virtual ~ExprAST() {}
129 class NumberExprAST : public ExprAST {
138 class VariableExprAST : public ExprAST {
147 class UnaryExprAST : public ExprAST {
149 std::unique_ptr<ExprAST> Operand;
152 UnaryExprAST(char Opcode, std::unique_ptr<ExprAST> Operand)
158 class BinaryExprAST : public ExprAST {
160 std::unique_ptr<ExprAST> LHS, RHS;
163 BinaryExprAST(char Op, std::unique_ptr<ExprAST> LHS,
164 std::unique_ptr<ExprAST> RHS)
170 class CallExprAST : public ExprAST {
172 std::vector<std::unique_ptr<ExprAST>> Args;
176 std::vector<std::unique_ptr<ExprAST>> Args)
182 class IfExprAST : public ExprAST {
183 std::unique_ptr<ExprAST> Cond, Then, Else;
186 IfExprAST(std::unique_ptr<ExprAST> Cond, std::unique_ptr<ExprAST> Then,
187 std::unique_ptr<ExprAST> Else)
193 class ForExprAST : public ExprAST {
195 std::unique_ptr<ExprAST> Start, End, Step, Body;
198 ForExprAST(const std::string &VarName, std::unique_ptr<ExprAST> Start,
199 std::unique_ptr<ExprAST> End, std::unique_ptr<ExprAST> Step,
200 std::unique_ptr<ExprAST> Body)
237 std::unique_ptr<ExprAST> Body;
241 std::unique_ptr<ExprAST> Body)
274 std::unique_ptr<ExprAST> Error(const char *Str) {
284 static std::unique_ptr<ExprAST> ParseExpression();
287 static std::unique_ptr<ExprAST> ParseNumberExpr() {
294 static std::unique_ptr<ExprAST> ParseParenExpr() {
309 static std::unique_ptr<ExprAST> ParseIdentifierExpr() {
319 std::vector<std::unique_ptr<ExprAST>> Args;
343 static std::unique_ptr<ExprAST> ParseIfExpr() {
373 static std::unique_ptr<ExprAST> ParseForExpr() {
398 std::unique_ptr<ExprAST> Step;
424 static std::unique_ptr<ExprAST> ParsePrimary() {
444 static std::unique_ptr<ExprAST> ParseUnary() {
459 static std::unique_ptr<ExprAST> ParseBinOpRHS(int ExprPrec,
460 std::unique_ptr<ExprAST> LHS) {
497 static std::unique_ptr<ExprAST> ParseExpression() {