Lines Matching refs:ExprAST
91 /// ExprAST - Base class for all expression nodes.
92 class ExprAST {
94 virtual ~ExprAST() {}
99 class NumberExprAST : public ExprAST {
107 class VariableExprAST : public ExprAST {
115 class BinaryExprAST : public ExprAST {
117 ExprAST *LHS, *RHS;
119 BinaryExprAST(char op, ExprAST *lhs, ExprAST *rhs)
125 class CallExprAST : public ExprAST {
127 std::vector<ExprAST*> Args;
129 CallExprAST(const std::string &callee, std::vector<ExprAST*> &args)
150 ExprAST *Body;
152 FunctionAST(PrototypeAST *proto, ExprAST *body)
187 ExprAST *Error(const char *Str) { fprintf(stderr, "Error: %s\n", Str);return 0;}
191 static ExprAST *ParseExpression();
196 static ExprAST *ParseIdentifierExpr() {
206 std::vector<ExprAST*> Args;
209 ExprAST *Arg = ParseExpression();
228 static ExprAST *ParseNumberExpr() {
229 ExprAST *Result = new NumberExprAST(NumVal);
235 static ExprAST *ParseParenExpr() {
237 ExprAST *V = ParseExpression();
250 static ExprAST *ParsePrimary() {
261 static ExprAST *ParseBinOpRHS(int ExprPrec, ExprAST *LHS) {
276 ExprAST *RHS = ParsePrimary();
295 static ExprAST *ParseExpression() {
296 ExprAST *LHS = ParsePrimary();
332 if (ExprAST *E = ParseExpression())
339 if (ExprAST *E = ParseExpression()) {