Lines Matching refs:ExprAST
90 /// ExprAST - Base class for all expression nodes.
91 class ExprAST {
93 virtual ~ExprAST() {}
98 class NumberExprAST : public ExprAST {
106 class VariableExprAST : public ExprAST {
114 class BinaryExprAST : public ExprAST {
116 ExprAST *LHS, *RHS;
118 BinaryExprAST(char op, ExprAST *lhs, ExprAST *rhs)
124 class CallExprAST : public ExprAST {
126 std::vector<ExprAST*> Args;
128 CallExprAST(const std::string &callee, std::vector<ExprAST*> &args)
149 ExprAST *Body;
151 FunctionAST(PrototypeAST *proto, ExprAST *body)
185 ExprAST *Error(const char *Str) { fprintf(stderr, "Error: %s\n", Str);return 0;}
189 static ExprAST *ParseExpression();
194 static ExprAST *ParseIdentifierExpr() {
204 std::vector<ExprAST*> Args;
207 ExprAST *Arg = ParseExpression();
226 static ExprAST *ParseNumberExpr() {
227 ExprAST *Result = new NumberExprAST(NumVal);
233 static ExprAST *ParseParenExpr() {
235 ExprAST *V = ParseExpression();
248 static ExprAST *ParsePrimary() {
259 static ExprAST *ParseBinOpRHS(int ExprPrec, ExprAST *LHS) {
274 ExprAST *RHS = ParsePrimary();
293 static ExprAST *ParseExpression() {
294 ExprAST *LHS = ParsePrimary();
330 if (ExprAST *E = ParseExpression())
337 if (ExprAST *E = ParseExpression()) {