package lustre-v6

  1. Overview
  2. Docs

Static evaluation of constants.

Evaluation statique des expressions "réputées" constantes : defs de constantes, tailles de tableaux, indices et step des arrays.

exception EvalArray_error of string
val eval_array_size : IdSolver.t -> AstCore.val_exp -> int

Rôle : calcule une taille de tableau

Entrées:

Sorties : int (strictement positif)

Lic.ts de bord : EvalArray_error "bad array size, type int expected but get <t>" si t pas int EvalArray_error "bad array size <n>" si n <= 0

val eval_array_index : IdSolver.t -> AstCore.val_exp -> Lxm.t -> int

Rôle :

Entrées : id_solver, val_exp, taille du tableau

Sorties : int (entre 0 et taille du tableau -1)

Lic.ts de bord : EvalArray_error msg si pas bon

val eval_array_slice : IdSolver.t -> AstCore.slice_info -> Lxm.t -> Lic.slice_info

Rôle :

Entrées : id_solver, slice_info, size du tableau, lxm (source de l'opération slice pour warning) Sorties : slice_info_eff, i.e. (fisrt,last,step,width) tels que step <> 0 et

  • si step > 0 alors 0<=first<=last et first<=sz
  • si step < 0 alors 0<=last<=first et first<=sz
  • 1<=width<=sz Lic.ts de bord : EvalArray_error msg si pas bon