module Parser:APRON Parsing of expressionssig
..end
This small module implements the parsing of expressions, constraints and generators. The allowed syntax is simple (no parenthesis) but supports interval expressions.
cons ::= expr ('>' | '>=' | '=' | '!=' | '=' | '<=' | '<') expr | expr = expr 'mod' scalar
gen ::= ('V:' | 'R:' | 'L:' | 'RM:' | 'LM:') expr
expr ::= expr '+' term | expr '-' term | term
term ::= coeff ['*'] identifier | coeff | ['-'] identifier
coeff ::= scalar | ['-'] '['scalar ';' scalar ']'
scalar ::= ['-'] (integer | rational | floating_point_number)
There is the possibility to parse directly from a lexing buffer,
or from a string (from which one can generate a buffer with the
function Lexing.from_string
.
This module uses the underlying modules Apron_lexer
and Apron_parser
.
exception Error of string
val linexpr1_of_lexbuf : Environment.t -> Lexing.lexbuf -> Linexpr1.t
val lincons1_of_lexbuf : Environment.t -> Lexing.lexbuf -> Lincons1.t
val generator1_of_lexbuf : Environment.t -> Lexing.lexbuf -> Generator1.t
val texpr1expr_of_lexbuf : Lexing.lexbuf -> Texpr1.expr
val texpr1_of_lexbuf : Environment.t -> Lexing.lexbuf -> Texpr1.t
val tcons1_of_lexbuf : Environment.t -> Lexing.lexbuf -> Tcons1.t
val linexpr1_of_string : Environment.t -> string -> Linexpr1.t
val lincons1_of_string : Environment.t -> string -> Lincons1.t
val generator1_of_string : Environment.t -> string -> Generator1.t
val texpr1expr_of_string : string -> Texpr1.expr
val texpr1_of_string : Environment.t -> string -> Texpr1.t
val tcons1_of_string : Environment.t -> string -> Tcons1.t
val lincons1_of_lstring : Environment.t -> string list -> Lincons1.earray
val generator1_of_lstring : Environment.t -> string list -> Generator1.earray
val tcons1_of_lstring : Environment.t -> string list -> Tcons1.earray
val of_lstring : 'a Manager.t -> Environment.t -> string list -> 'a Abstract1.t