Module PyIR.Stmt

type gen_kind =
  1. | Generator
  2. | Coroutine
  3. | AsyncGenerator
type t =
  1. | Let of {
    1. lhs : SSA.t;
    2. rhs : Exp.t;
    }
  2. | SetAttr of {
    1. lhs : Exp.t;
    2. attr : Ident.t;
    3. rhs : Exp.t;
    }
  3. | Store of {
    1. lhs : ScopedIdent.t;
    2. rhs : Exp.t;
    }
  4. | StoreSubscript of {
    1. lhs : Exp.t;
    2. index : Exp.t;
    3. rhs : Exp.t;
    }
  5. | Call of {
    1. lhs : SSA.t;
    2. exp : Exp.t;
    3. args : Exp.t list;
    4. arg_names : Exp.t;
    }
  6. | CallMethod of {
    1. lhs : SSA.t;
    2. name : Ident.t;
    3. self_if_needed : Exp.t;
    4. args : Exp.t list;
    5. arg_names : Exp.t;
    }
  7. | BuiltinCall of {
    1. lhs : SSA.t;
    2. call : BuiltinCaller.t;
    3. args : Exp.t list;
    4. arg_names : Exp.t;
    }
  8. | StoreDeref of {
    1. name : Ident.t;
    2. slot : int;
    3. rhs : Exp.t;
    }
    (*

    STORE_DEREF

    *)
  9. | Delete of ScopedIdent.t
  10. | DeleteDeref of {
    1. name : Ident.t;
    2. slot : int;
    }
    (*

    DELETE_DEREF

    *)
  11. | DeleteAttr of {
    1. exp : Exp.t;
    2. attr : Ident.t;
    }
  12. | ImportStar of Exp.t
  13. | GenStart of {
    1. kind : gen_kind;
    }
  14. | SetupAnnotations