Lines Matching refs:ExprAST
140 class ExprAST { class
142 virtual ~ExprAST() {} in ~ExprAST()
147 class NumberExprAST : public ExprAST {
156 class VariableExprAST : public ExprAST {
166 class UnaryExprAST : public ExprAST {
168 std::unique_ptr<ExprAST> Operand;
171 UnaryExprAST(char Opcode, std::unique_ptr<ExprAST> Operand) in UnaryExprAST()
177 class BinaryExprAST : public ExprAST {
179 std::unique_ptr<ExprAST> LHS, RHS;
182 BinaryExprAST(char Op, std::unique_ptr<ExprAST> LHS, in BinaryExprAST()
183 std::unique_ptr<ExprAST> RHS) in BinaryExprAST()
189 class CallExprAST : public ExprAST {
191 std::vector<std::unique_ptr<ExprAST>> Args;
195 std::vector<std::unique_ptr<ExprAST>> Args) in CallExprAST()
201 class IfExprAST : public ExprAST {
202 std::unique_ptr<ExprAST> Cond, Then, Else;
205 IfExprAST(std::unique_ptr<ExprAST> Cond, std::unique_ptr<ExprAST> Then, in IfExprAST()
206 std::unique_ptr<ExprAST> Else) in IfExprAST()
212 class ForExprAST : public ExprAST {
214 std::unique_ptr<ExprAST> Start, End, Step, Body;
217 ForExprAST(const std::string &VarName, std::unique_ptr<ExprAST> Start, in ForExprAST()
218 std::unique_ptr<ExprAST> End, std::unique_ptr<ExprAST> Step, in ForExprAST()
219 std::unique_ptr<ExprAST> Body) in ForExprAST()
226 class VarExprAST : public ExprAST {
227 std::vector<std::pair<std::string, std::unique_ptr<ExprAST>>> VarNames;
228 std::unique_ptr<ExprAST> Body;
232 std::vector<std::pair<std::string, std::unique_ptr<ExprAST>>> VarNames, in VarExprAST()
233 std::unique_ptr<ExprAST> Body) in VarExprAST()
269 std::unique_ptr<ExprAST> Body;
273 std::unique_ptr<ExprAST> Body) in FunctionAST()
306 std::unique_ptr<ExprAST> LogError(const char *Str) { in LogError()
316 static std::unique_ptr<ExprAST> ParseExpression();
319 static std::unique_ptr<ExprAST> ParseNumberExpr() { in ParseNumberExpr()
326 static std::unique_ptr<ExprAST> ParseParenExpr() { in ParseParenExpr()
341 static std::unique_ptr<ExprAST> ParseIdentifierExpr() { in ParseIdentifierExpr()
351 std::vector<std::unique_ptr<ExprAST>> Args; in ParseIdentifierExpr()
375 static std::unique_ptr<ExprAST> ParseIfExpr() { in ParseIfExpr()
405 static std::unique_ptr<ExprAST> ParseForExpr() { in ParseForExpr()
430 std::unique_ptr<ExprAST> Step; in ParseForExpr()
452 static std::unique_ptr<ExprAST> ParseVarExpr() { in ParseVarExpr()
455 std::vector<std::pair<std::string, std::unique_ptr<ExprAST>>> VarNames; in ParseVarExpr()
466 std::unique_ptr<ExprAST> Init = nullptr; in ParseVarExpr()
505 static std::unique_ptr<ExprAST> ParsePrimary() { in ParsePrimary()
527 static std::unique_ptr<ExprAST> ParseUnary() { in ParseUnary()
542 static std::unique_ptr<ExprAST> ParseBinOpRHS(int ExprPrec, in ParseBinOpRHS()
543 std::unique_ptr<ExprAST> LHS) { in ParseBinOpRHS()
580 static std::unique_ptr<ExprAST> ParseExpression() { in ParseExpression()
982 ExprAST *Init = VarNames[i].second.get(); in codegen()