package jasmin
Compiler for High-Assurance and High-Speed Cryptography
Install
dune-project
Dependency
Authors
Maintainers
Sources
jasmin-compiler-v2025.06.1.tar.bz2
sha256=e92b42fa69da7c730b0c26dacf842a72b4febcaf4f2157a1dc18b3cce1f859fa
doc/src/jasmin.jasmin/annotations.ml.html
Source file annotations.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
(* -------------------------------------------------------------------- *) type symbol = string type pident = symbol Location.located (* -------------------------------------------------------------------- *) type wsize = Wsize.wsize let int_of_ws = function | Wsize.U8 -> 8 | U16 -> 16 | U32 -> 32 | U64 -> 64 | U128 -> 128 | U256 -> 256 let string_of_ws ws = Format.sprintf "u%i" (int_of_ws ws) (* -------------------------------------------------------------------- *) type simple_attribute = | Aint of Z.t | Aid of symbol | Astring of string | Aws of wsize | Astruct of annotations and attribute = simple_attribute Location.located and annotation = pident * attribute option and annotations = annotation list let get (s: string) (annot: annotations) = match List.find_opt (fun (k, _) -> String.equal (Location.unloc k) s) annot with | Some (_, a) -> Some a | None -> None let has_symbol s annot = List.exists (fun (k, _) -> String.equal (Location.unloc k) s) annot let add_symbol ~loc s annot = if has_symbol s annot then annot else (Location.mk_loc loc s, None) :: annot (* -------------------------------------------------------------------- *) let sint = "Internal::wint::signed" let uint = "Internal::wint::unsigned" let has_sint annot = has_symbol sint annot let has_uint annot = has_symbol uint annot let is_wint (k, _) = let s = Location.unloc k in String.equal s sint || String.equal s uint let remove_wint annot = List.filter (fun x -> not (is_wint x)) annot let has_wint annot = BatList.find_map_opt (fun (k, _) -> let s = Location.unloc k in if String.equal s sint then Some Wsize.Signed else if String.equal s uint then Some Unsigned else None) annot
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>