Lines Matching refs:ExprAST

138 class ExprAST {  class
140 virtual ~ExprAST() = default;
146 class NumberExprAST : public ExprAST {
156 class VariableExprAST : public ExprAST {
167 class UnaryExprAST : public ExprAST {
169 std::unique_ptr<ExprAST> Operand;
172 UnaryExprAST(char Opcode, std::unique_ptr<ExprAST> Operand) in UnaryExprAST()
179 class BinaryExprAST : public ExprAST {
181 std::unique_ptr<ExprAST> LHS, RHS;
184 BinaryExprAST(char Op, std::unique_ptr<ExprAST> LHS, in BinaryExprAST()
185 std::unique_ptr<ExprAST> RHS) in BinaryExprAST()
192 class CallExprAST : public ExprAST {
194 std::vector<std::unique_ptr<ExprAST>> Args;
198 std::vector<std::unique_ptr<ExprAST>> Args) in CallExprAST()
205 class IfExprAST : public ExprAST {
206 std::unique_ptr<ExprAST> Cond, Then, Else;
209 IfExprAST(std::unique_ptr<ExprAST> Cond, std::unique_ptr<ExprAST> Then, in IfExprAST()
210 std::unique_ptr<ExprAST> Else) in IfExprAST()
217 class ForExprAST : public ExprAST {
219 std::unique_ptr<ExprAST> Start, End, Step, Body;
222 ForExprAST(const std::string &VarName, std::unique_ptr<ExprAST> Start, in ForExprAST()
223 std::unique_ptr<ExprAST> End, std::unique_ptr<ExprAST> Step, in ForExprAST()
224 std::unique_ptr<ExprAST> Body) in ForExprAST()
232 class VarExprAST : public ExprAST {
233 std::vector<std::pair<std::string, std::unique_ptr<ExprAST>>> VarNames;
234 std::unique_ptr<ExprAST> Body;
238 std::vector<std::pair<std::string, std::unique_ptr<ExprAST>>> VarNames, in VarExprAST()
239 std::unique_ptr<ExprAST> Body) in VarExprAST()
301 std::unique_ptr<ExprAST> LogError(const char *Str) { in LogError()
311 static std::unique_ptr<ExprAST> ParseExpression();
314 static std::unique_ptr<ExprAST> ParseNumberExpr() { in ParseNumberExpr()
321 static std::unique_ptr<ExprAST> ParseParenExpr() { in ParseParenExpr()
336 static std::unique_ptr<ExprAST> ParseIdentifierExpr() { in ParseIdentifierExpr()
346 std::vector<std::unique_ptr<ExprAST>> Args; in ParseIdentifierExpr()
370 static std::unique_ptr<ExprAST> ParseIfExpr() { in ParseIfExpr()
400 static std::unique_ptr<ExprAST> ParseForExpr() { in ParseForExpr()
425 std::unique_ptr<ExprAST> Step; in ParseForExpr()
447 static std::unique_ptr<ExprAST> ParseVarExpr() { in ParseVarExpr()
450 std::vector<std::pair<std::string, std::unique_ptr<ExprAST>>> VarNames; in ParseVarExpr()
461 std::unique_ptr<ExprAST> Init = nullptr; in ParseVarExpr()
500 static std::unique_ptr<ExprAST> ParsePrimary() { in ParsePrimary()
522 static std::unique_ptr<ExprAST> ParseUnary() { in ParseUnary()
537 static std::unique_ptr<ExprAST> ParseBinOpRHS(int ExprPrec, in ParseBinOpRHS()
538 std::unique_ptr<ExprAST> LHS) { in ParseBinOpRHS()
575 static std::unique_ptr<ExprAST> ParseExpression() { in ParseExpression()
979 ExprAST *Init = VarNames[i].second.get(); in codegen()