X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=bitmatch_persistent.mli;h=8c97a34f5540b93e595c54638ae21e0b3e16ae77;hb=1be1a65d5fc5727d20e465bebaafcad263b87162;hp=d2057c653d8fc11c696b313024a3fcb345e3badc;hpb=3a36e2ecea95fef06b959a2a0d5a44589dd2d728;p=ocaml-bitstring.git diff --git a/bitmatch_persistent.mli b/bitmatch_persistent.mli index d2057c6..8c97a34 100644 --- a/bitmatch_persistent.mli +++ b/bitmatch_persistent.mli @@ -288,7 +288,8 @@ and alt = val string_of_pattern : pattern -> string val string_of_constructor : constructor -> string -val string_of_field : 'a field -> string +val string_of_pattern_field : patt field -> string +val string_of_constructor_field : expr field -> string (** Convert patterns, constructors or individual fields into printable strings for debugging purposes. @@ -329,7 +330,7 @@ val create_pattern_field : loc_t -> patt field The pattern is unbound, the type is set to [int], bit length to [32], endianness to [BigEndian], signedness to unsigned ([false]), - and source code location to the [_loc] parameter. + source code location to the [_loc] parameter, and no offset expression. To create a complete field you need to call the [set_*] functions. For example, to create [{ len : 8 : int }] @@ -422,6 +423,23 @@ val set_location : 'a field -> loc_t -> 'a field (** Sets the source code location of a field. This is used when pa_bitmatch displays error messages. *) +val set_offset_int : 'a field -> int -> 'a field +(** Set the offset expression for a field to the given number. + + The effect is that the field [{ _ : 8 : offset(160) }] could + be created by calling [set_offset_int field 160]. *) + +val set_offset : 'a field -> expr -> 'a field +(** Set the offset expression for a field to the given expression. + + The effect is that the field [{ _ : 8 : offset(160) }] could + be created by calling [set_offset_int field <:expr< 160 >>]. *) + +val set_no_offset : 'a field -> 'a field +(** Remove the offset expression from a field. The field will + follow the previous field, or if it is the first field will + be at offset zero. *) + (** {3 Create constructor fields} These fields are used in constructors ([BITSTRING]). *) @@ -485,3 +503,6 @@ val get_type : 'a field -> field_type val get_location : 'a field -> loc_t (** Get the source code location of a field. *) + +val get_offset : 'a field -> expr option +(** Get the offset expression of a field, or [None] if there is none. *)