package mopsa
MOPSA: A Modular and Open Platform for Static Analysis using Abstract Interpretation
Install
dune-project
Dependency
Authors
Maintainers
Sources
mopsa-analyzer-v1.2.tar.gz
md5=37966e98ffeebcedc09bd6e9b2b81f69
sha512=40d4d826c25f680766c07eccbabdf5e8a4fa023016e8a164e4e4f6b3781c8484dc4df437055721dfd19b9db8fb7fe3b61236c4833186d346fc7204a68d01eaaa
doc/mopsa.mopsa_utils/Mopsa_utils/Core/Location/index.html
Module Core.Location
Positions and ranges
Positions
=============
val get_pos_file : pos -> string
val get_pos_line : pos -> int
val get_pos_column : pos -> int
val mk_pos : string -> int -> int -> pos
Return the relative path of `file` w.r.t. the current working directory
Extended source locations, decorated with a stack of positions. It can be used to distinguish between different use of the same lexical token. E.g., in C, it tracks macro argument expansion.
Ranges
==========
Range tags can be used to annotate AST nodes added by the abstract domains that are not textually present in the source files.
val mk_string_tag : ('a, Format.formatter, unit, range_tag) format4 -> 'a
val tag_range : range -> ('a, Format.formatter, unit, range) format4 -> 'a
Tag a range with a (formatted) annotation.
val fresh_range_counter : int ref
val mk_fresh_range : unit -> range
val mk_program_range : string list -> range
val get_range_file : range -> string
val get_range_relative_file : range -> string
val get_range_line : range -> int
val get_range_column : range -> int
val is_orig_range : range -> bool
val is_program_range : range -> bool
val match_range_file : string -> range -> bool
val match_range_line : int -> range -> bool
val from_lexing_pos : Lexing.position -> pos
val from_lexing_range : Lexing.position -> Lexing.position -> range
Range annotations
=====================
val with_range : 'a -> range -> 'a with_range
val get_content : 'a with_range -> 'a
val get_range : 'a with_range -> range
val bind_range : 'a with_range -> ?range:range -> ('a -> 'b) -> 'b with_range
val bind_pair_range : 'a with_range -> ('a -> 'b * 'c) -> 'b with_range * 'c
val compare_with_range :
('a -> 'b -> int) ->
'a with_range ->
'b with_range ->
int
Pretty printers
===================
val pp_position : Format.formatter -> pos -> unit
val pp_relative_position : Format.formatter -> pos -> unit
val pp_position_stack :
(Format.formatter -> 'a -> unit) ->
Format.formatter ->
'a list ->
unit
val pp_eposition : Format.formatter -> epos -> unit
val pp_relative_eposition : Format.formatter -> epos -> unit
val pp_range : Format.formatter -> range -> unit
val pp_relative_range : Format.formatter -> range -> unit
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page