Module LustreDependencies

module I = LustreIdent
module ISet = I.Set
module IMap = I.Hashtbl
module A = LustreAst
type decl =
| NodeOrFun
| Type
| Contract
| Const

Enum over declaration types.

exception Unknown_decl of decl * I.t * Lib.position

Reference to an unknown declaration.

val pp_print_decl : Stdlib.Format.formatter -> decl -> unit

Pretty printer for declarations.

type t

A dependency context.

val empty : t

Empty dependency context.

val add : t -> (decl * LustreIdent.t) -> (decl * LustreIdent.t) -> unit

Adds a dependency in a dependency context.

val mem : t -> (decl * LustreIdent.t) -> (decl * LustreIdent.t) -> bool

Checks if a declaration depends on another.

val info_of_decl : LustreAst.declaration -> Lib.position * LustreIdent.t * decl

Identifier corresponding to a declaration.

val insert_decl : LustreAst.declaration -> (decl * LustreIdent.t) -> LustreAst.declaration list -> LustreAst.declaration list

Inserts a declaration in a list of declarations, after the one with name f_ident.