{$HiddenIdents} unit SPythonHidden; interface uses SPythonSystem; function !Floor(x : real) : integer; function !Div(x: integer; y: integer): integer; function !Div(x: BigInteger; y: BigInteger): BigInteger; function !Div(x: real; y: real): real; function !Mod(x: integer; y: integer): integer; function !Mod(x: BigInteger; y: BigInteger): BigInteger; function !Mod(x: real; y: real): real; type !UnknownType = class end; // TODO: Перенести в SPythonSystemPys следующие методы function list(sq: sequence of T): SPythonSystem.list; function list(d : dict) : SPythonSystem.list; function &set(sq: sequence of T): &set; function &set(): empty_set; function dict(params pairs: array of (TKey, TVal)): dict; function dict(seqOfPairs: IEnumerable>) : dict; implementation function list(sq: sequence of T): SPythonSystem.list := new SPythonSystem.list(sq); function list(d : dict) : SPythonSystem.list := new SPythonSystem.list(d.keys()); function &set(sq: sequence of T): &set; begin Result := new &set(sq); end; function &set(): empty_set := new empty_set; function dict(params pairs: array of (TKey, TVal)): dict := new dict(pairs); function dict(seqOfPairs: sequence of (TKey, TVal)): dict := new dict(seqOfPairs); function !Floor(x : real) : integer := PABCSystem.Floor(x); function !Div(x: integer; y: integer): integer; begin Result := x div y; if ((x < 0) xor (y < 0)) and (x mod y <> 0) then Result -= 1; end; function !Div(x: BigInteger; y: BigInteger): BigInteger; begin Result := x div y; if ((x < 0) xor (y < 0)) and (x mod y <> 0) then Result -= 1; end; function !Div(x: real; y: real): real := System.Math.Floor(x / y); function !Mod(x: integer; y: integer): integer := x - !Div(x, y) * y; function !Mod(x: BigInteger; y: BigInteger): BigInteger := x - !Div(x, y) * y; function !Mod(x: real; y: real): real := x - PABCSystem.Floor(x / y) * y; end.