packages feed

eo-phi-normalizer-3.0.0: data/0.49.4/org/eolang/io/console.phi

{⟦
  org() ↦ ⟦
    eolang() ↦ ⟦
      io() ↦ ⟦
        console() ↦ ⟦
          φ ↦ Φ̇.sys.os.is-windows.if(ξ.windows-console, ξ.posix-console).platform,
          posix-console() ↦ ⟦
            platform ↦ ξ,
            read(size) ↦ ⟦
              φ ↦ ξ.input-block(Φ̇.bytes(⟦ Δ ⤍ -- ⟧)).read(ξ.size).self,
              input-block(buffer) ↦ ⟦
                self ↦ ξ,
                φ ↦ ξ.buffer,
                read(size) ↦ ⟦
                  read-bytes ↦ Φ̇.dataized(
                    Φ̇.sys.posix(
                      "read",
                      Φ̇.tuple(
                        Φ̇.tuple(Φ̇.tuple.empty, Φ̇.sys.posix.stdin-fileno), ξ.size
                      )
                    ).output
                  ).as-bytes,
                  φ ↦ Φ̇.seq(
                    Φ̇.tuple(
                      Φ̇.tuple(Φ̇.tuple.empty, ξ.read-bytes), ξ.ρ.ρ.input-block(ξ.read-bytes)
                    )
                  ).self
                ⟧
              ⟧
            ⟧,
            write(buffer) ↦ ⟦
              φ ↦ ξ.output-block.write(ξ.buffer).self,
              output-block() ↦ ⟦
                self ↦ ξ,
                φ ↦ Φ̇.true,
                write(buffer) ↦ ⟦
                  φ ↦ Φ̇.seq(
                    Φ̇.tuple(
                      Φ̇.tuple(
                        Φ̇.tuple.empty,
                        Φ̇.sys.posix(
                          "write",
                          Φ̇.tuple(
                            Φ̇.tuple(
                              Φ̇.tuple(
                                Φ̇.tuple.empty, Φ̇.sys.posix.stdout-fileno
                              ),
                              ξ.buffer
                            ),
                            ξ.buffer.size
                          )
                        ).code
                      ),
                      ξ.ρ.ρ.output-block
                    )
                  ).self
                ⟧
              ⟧
            ⟧
          ⟧,
          windows-console() ↦ ⟦
            platform ↦ ξ,
            read(size) ↦ ⟦
              φ ↦ ξ.input-block(Φ̇.bytes(⟦ Δ ⤍ -- ⟧)).read(ξ.size).self,
              input-block(buffer) ↦ ⟦
                self ↦ ξ,
                φ ↦ ξ.buffer,
                read(size) ↦ ⟦
                  read-bytes ↦ Φ̇.dataized(
                    Φ̇.sys.win32(
                      "ReadFile",
                      Φ̇.tuple(
                        Φ̇.tuple(Φ̇.tuple.empty, Φ̇.sys.win32.std-input-handle), ξ.size
                      )
                    ).output
                  ).as-bytes,
                  φ ↦ Φ̇.seq(
                    Φ̇.tuple(
                      Φ̇.tuple(Φ̇.tuple.empty, ξ.read-bytes), ξ.ρ.ρ.input-block(ξ.read-bytes)
                    )
                  ).self
                ⟧
              ⟧
            ⟧,
            write(buffer) ↦ ⟦
              φ ↦ ξ.output-block.write(ξ.buffer).self,
              output-block() ↦ ⟦
                self ↦ ξ,
                φ ↦ Φ̇.true,
                write(buffer) ↦ ⟦
                  φ ↦ Φ̇.seq(
                    Φ̇.tuple(
                      Φ̇.tuple(
                        Φ̇.tuple.empty,
                        Φ̇.sys.win32(
                          "WriteFile",
                          Φ̇.tuple(
                            Φ̇.tuple(
                              Φ̇.tuple(
                                Φ̇.tuple.empty, Φ̇.sys.win32.std-output-handle
                              ),
                              ξ.buffer
                            ),
                            ξ.buffer.size
                          )
                        ).code
                      ),
                      ξ.ρ.ρ.output-block
                    )
                  ).self
                ⟧
              ⟧
            ⟧
          ⟧
        ⟧,
        λ ⤍ Package
      ⟧,
      λ ⤍ Package
    ⟧,
    λ ⤍ Package
  ⟧
⟧}