26 MLIRGen(mlir::MLIRContext *context);
40 void emitStatement(
ASTNode *node);
47 mlir::Value emitExpression(
ASTNode *node);
49 mlir::Value emitCall(
CallNode *node);
53 mlir::Value emitBuiltinCall(
CallNode *node,
const std::vector<mlir::Value> &args);
64 bool isBuiltinFunction(
CallNode *node);
70 std::unordered_map<std::string, mlir::Value> builtinVariables();
77 std::unordered_map<std::string, mlir::func::FuncOp> builtinFunctions();
80 mlir::MLIRContext *_context;
81 mlir::OpBuilder _builder;
82 std::unordered_map<std::string, mlir::Value> _variableTable;
83 std::unordered_map<std::string, mlir::func::FuncOp> _functionTable;