Home | History | Annotate | Download | only in Chapter8

Lines Matching refs:ExprAST

136 /// ExprAST - Base class for all expression nodes.
137 class ExprAST {
139 virtual ~ExprAST() {}
144 class NumberExprAST : public ExprAST {
153 class VariableExprAST : public ExprAST {
163 class UnaryExprAST : public ExprAST {
165 std::unique_ptr<ExprAST> Operand;
168 UnaryExprAST(char Opcode, std::unique_ptr<ExprAST> Operand)
174 class BinaryExprAST : public ExprAST {
176 std::unique_ptr<ExprAST> LHS, RHS;
179 BinaryExprAST(char Op, std::unique_ptr<ExprAST> LHS,
180 std::unique_ptr<ExprAST> RHS)
186 class CallExprAST : public ExprAST {
188 std::vector<std::unique_ptr<ExprAST>> Args;
192 std::vector<std::unique_ptr<ExprAST>> Args)
198 class IfExprAST : public ExprAST {
199 std::unique_ptr<ExprAST> Cond, Then, Else;
202 IfExprAST(std::unique_ptr<ExprAST> Cond, std::unique_ptr<ExprAST> Then,
203 std::unique_ptr<ExprAST> Else)
209 class ForExprAST : public ExprAST {
211 std::unique_ptr<ExprAST> Start, End, Step, Body;
214 ForExprAST(const std::string &VarName, std::unique_ptr<ExprAST> Start,
215 std::unique_ptr<ExprAST> End, std::unique_ptr<ExprAST> Step,
216 std::unique_ptr<ExprAST> Body)
223 class VarExprAST : public ExprAST {
224 std::vector<std::pair<std::string, std::unique_ptr<ExprAST>>> VarNames;
225 std::unique_ptr<ExprAST> Body;
229 std::vector<std::pair<std::string, std::unique_ptr<ExprAST>>> VarNames,
230 std::unique_ptr<ExprAST> Body)
266 std::unique_ptr<ExprAST> Body;
270 std::unique_ptr<ExprAST> Body)
303 std::unique_ptr<ExprAST> LogError(const char *Str) {
313 static std::unique_ptr<ExprAST> ParseExpression();
316 static std::unique_ptr<ExprAST> ParseNumberExpr() {
323 static std::unique_ptr<ExprAST> ParseParenExpr() {
338 static std::unique_ptr<ExprAST> ParseIdentifierExpr() {
348 std::vector<std::unique_ptr<ExprAST>> Args;
372 static std::unique_ptr<ExprAST> ParseIfExpr() {
402 static std::unique_ptr<ExprAST> ParseForExpr() {
427 std::unique_ptr<ExprAST> Step;
449 static std::unique_ptr<ExprAST> ParseVarExpr() {
452 std::vector<std::pair<std::string, std::unique_ptr<ExprAST>>> VarNames;
463 std::unique_ptr<ExprAST> Init = nullptr;
502 static std::unique_ptr<ExprAST> ParsePrimary() {
524 static std::unique_ptr<ExprAST> ParseUnary() {
539 static std::unique_ptr<ExprAST> ParseBinOpRHS(int ExprPrec,
540 std::unique_ptr<ExprAST> LHS) {
577 static std::unique_ptr<ExprAST> ParseExpression() {
978 ExprAST *Init = VarNames[i].second.get();