Lines Matching refs:ExprAST
83 /// ExprAST - Base class for all expression nodes.
84 class ExprAST {
86 virtual ~ExprAST() {}
91 class NumberExprAST : public ExprAST {
99 class VariableExprAST : public ExprAST {
107 class BinaryExprAST : public ExprAST {
109 ExprAST *LHS, *RHS;
111 BinaryExprAST(char op, ExprAST *lhs, ExprAST *rhs)
117 class CallExprAST : public ExprAST {
119 std::vector<ExprAST*> Args;
121 CallExprAST(const std::string &callee, std::vector<ExprAST*> &args)
142 ExprAST *Body;
144 FunctionAST(PrototypeAST *proto, ExprAST *body)
178 ExprAST *Error(const char *Str) { fprintf(stderr, "Error: %s\n", Str);return 0;}
182 static ExprAST *ParseExpression();
187 static ExprAST *ParseIdentifierExpr() {
197 std::vector<ExprAST*> Args;
200 ExprAST *Arg = ParseExpression();
219 static ExprAST *ParseNumberExpr() {
220 ExprAST *Result = new NumberExprAST(NumVal);
226 static ExprAST *ParseParenExpr() {
228 ExprAST *V = ParseExpression();
241 static ExprAST *ParsePrimary() {
252 static ExprAST *ParseBinOpRHS(int ExprPrec, ExprAST *LHS) {
267 ExprAST *RHS = ParsePrimary();
286 static ExprAST *ParseExpression() {
287 ExprAST *LHS = ParsePrimary();
323 if (ExprAST *E = ParseExpression())
330 if (ExprAST *E = ParseExpression()) {