To focus the search input from anywhere on the page, press the 'S' key.
in-package search v0.1.0
Library
Module
Module type
Parameter
Class
Class type
This module provides a type that represents Python constant value.
type 'a t = private {
none : 'a;
(*Represents the value
*)None
.false_ : 'a;
(*Represents the value
*)False
.true_ : 'a;
(*Represents the value
*)True
.ellipsis : 'a;
(*Represents the value
*)...
.integer : int -> 'a;
(*Represents integer literals whose value can be represented by OCaml
*)int
type (e.g.42
).big_integer : string -> 'a;
(*Represents integer literals whose value cannot be represented by OCaml
*)int
type. The integer will be stored as a string instead.float_ : float -> 'a;
(*Represents Python float literals (e.g.
*)4.2
).complex : float -> 'a;
(*Represents Python complex literals (e.g.
4.2j
). The float argument is the imaginary part of the complex number.The reason why we do not need to keep track of the real part is that in Python, complex numbers with non-zero real part are represented as compound expressions (e.g.
*)1+2j
will be parsed as a binary expression that adds up constant1
and2j
) as opposed to literalsstring_ : string -> 'a;
(*Represents Python string literals (e.g.
"derp"
).At OCaml level, the value of the string literal is a UTF-8 decoded byte array of the original string literal in Python. If the original literal cannot be UTF-8 decoded, the
backslahreplace
error handler is used, which replaces the un-decodable parts with backslashed escape sequence.Note that due to technical limitations, \N escape sequence translation is not supported: String literal "\N{FOO}" will be treated as an ascii string of length 7 as opposed to a Unicode string of length 1.
*)byte_string : string -> 'a;
(*Represents Python string literals (e.g.
b"derp"
).Unlike non-ascii identifiers, non-ascii bytestring literals can be parsed properly by this library. That also means it has no trouble handling strings with embedded null bytes.
*)
}