Vous avez reçu un message "Your GitLab account has been locked ..." ? Pas d'inquiétude : lisez cet article https://docs.gricad-pages.univ-grenoble-alpes.fr/help/unlock/

Commit 1e5a2fe0 authored by Erwan Jahier's avatar Erwan Jahier
Browse files

lurette 0.91 Fri, 20 Sep 2002 16:34:48 +0200 by jahier

Parent-Version:      0.90
Version-Log:

source/parse_env.ml:
    Allow a space between a '-' and a numeric value.

Project-Description: Lurette
parent a02a6397
......@@ -35,13 +35,13 @@
(source/control.ml 4416 1030975996 c/4_control.ml 1.3)
(source/eval.ml 7755 1027066799 49_eval.ml 1.13)
(source/gen_stubs.ml 34392 1032355637 24_generate_l 1.34)
(source/parse_env.ml 22623 1032531447 41_parse_env. 1.25)
(source/parse_env.ml 23768 1032532488 41_parse_env. 1.26)
(doc/ocamldoc.hva 313 1008328137 b/13_ocamldoc.h 1.1)
(source/automata.mli 3397 1027349504 b/46_automata.m 1.2)
(source/sim2chro.ml 2716 1032355637 b/24_sim2chro.m 1.12)
(doc/Interface_draft 5232 1003928781 19_Interface_ 1.1)
(source/formula.mli 3665 1032510467 44_formula.ml 1.15)
(demo/chaudiere/chaudiere.ima 452 1032531447 c/11_chaudiere. 1.3)
(demo/chaudiere/chaudiere.ima 450 1032532488 c/11_chaudiere. 1.4)
(demo/chaudiere/buggy_chaudiere_ctrl.lus 219 1031732392 c/10_buggy_chau 1.1)
(demo/chaudiere/chaudiere_oracle.lus 107 1031732392 c/8_chaudiere_ 1.1)
(test/time.res 5577 1030614411 b/49_time.res 1.6)
......
......@@ -12,7 +12,7 @@ arcs =
1:
((U = pre(1,U) + pre(1, Dudt))
&&
( 2. * Dudt + 1. > (IfThenElseNum Heat_on 0. -5.))
( Dudt + 1. > (IfThenElseNum Heat_on 0. (- 5.)))
&&
( Dudt < (IfThenElseNum Heat_on 2. 0.))) .
......
;; -*- Prcs -*-
(Created-By-Prcs-Version 1 3 3)
(Project-Description "Lurette")
(Project-Version lurette 0 90)
(Parent-Version lurette 0 89)
(Project-Version lurette 0 91)
(Parent-Version lurette 0 90)
(Version-Log "
source/parse_env.ml:
Allow arbitrary expression in the lhs of boolean
compararison operators (<,>,=,>=,<=).
Allow a space between a '-' and a numeric value.
")
(New-Version-Log ""
)
(Checkin-Time "Fri, 20 Sep 2002 16:17:27 +0200")
(Checkin-Time "Fri, 20 Sep 2002 16:34:48 +0200")
(Checkin-Login jahier)
(Populate-Ignore ())
(Project-Keywords)
......@@ -50,7 +49,7 @@ source/parse_env.ml:
(source/rnumsolver.ml (lurette/b/27_rnumsolver 1.7 644))
(source/parse_env.mli (lurette/40_parse_env. 1.9 644))
(source/parse_env.ml (lurette/41_parse_env. 1.25 644))
(source/parse_env.ml (lurette/41_parse_env. 1.26 644))
(source/show_env.mli (lurette/42_show_env.m 1.7 644))
(source/show_env.ml (lurette/43_show_env.m 1.12 644))
......@@ -157,7 +156,7 @@ source/parse_env.ml:
(demo/chaudiere/chaudiere_oracle.lus (lurette/c/8_chaudiere_ 1.1 644))
(demo/chaudiere/chaudiere_ctrl.lus (lurette/c/9_chaudiere_ 1.1 644))
(demo/chaudiere/buggy_chaudiere_ctrl.lus (lurette/c/10_buggy_chau 1.1 644))
(demo/chaudiere/chaudiere.ima (lurette/c/11_chaudiere. 1.3 644))
(demo/chaudiere/chaudiere.ima (lurette/c/11_chaudiere. 1.4 644))
......
......@@ -593,11 +593,11 @@ and (parse_expr_or_bool_ident: string -> vnt list -> aut_token -> formula) =
( match some_var with
None ->
( try
match tok with parser
match tok with parser
[< f = parse_more_formula (Bvar(id)) vars >] -> f
with e ->
print_err_msg tok_list "parse_expr_or_bool_ident" ;
raise e
with e ->
print_err_msg tok_list "parse_expr_or_bool_ident" ;
raise e
)
| Some(var) ->
( try
......@@ -608,9 +608,9 @@ and (parse_expr_or_bool_ident: string -> vnt list -> aut_token -> formula) =
f = parse_expr_right e vars
>]
-> f
with e ->
print_err_msg tok_list "parse_expr_or_bool_ident" ;
raise e
with e ->
print_err_msg tok_list "parse_expr_or_bool_ident" ;
raise e
)
)
......@@ -652,84 +652,122 @@ and (parse_expr_right : expr -> vnt list -> aut_token -> formula) =
*)
and (parse_expr: vnt list -> aut_token -> expr) =
fun vars tok ->
match tok with parser
[< e1 = parse_mult vars; e = parse_more_adds e1 vars >] -> e
let tok_list = Stream.npeek 10 tok in
try
match tok with parser
[< e1 = parse_mult vars; e = parse_more_adds e1 vars >] -> e
with e ->
print_err_msg tok_list "parse_expr" ;
raise e
and (parse_more_adds: expr -> vnt list -> aut_token -> expr) =
fun e1 vars tok ->
match tok with parser
[< 'Genlex.Kwd "+";
pl = parse_pragma_list ;
e2 = parse_mult vars;
e = parse_more_adds (Sum(e1, e2)) vars
>]
-> e
| [< 'Genlex.Kwd "-";
pl = parse_pragma_list ;
e2 = parse_mult vars;
e = parse_more_adds (Diff(e1, e2)) vars
>]
-> e
| [< >]
-> e1
let tok_list = Stream.npeek 10 tok in
try
match tok with parser
[< 'Genlex.Kwd "+";
pl = parse_pragma_list ;
e2 = parse_mult vars;
e = parse_more_adds (Sum(e1, e2)) vars
>]
-> e
| [< 'Genlex.Kwd "-";
pl = parse_pragma_list ;
e2 = parse_mult vars;
e = parse_more_adds (Diff(e1, e2)) vars
>]
-> e
| [< >]
-> e1
with e ->
print_err_msg tok_list "parse_more_adds" ;
raise e
and (parse_mult: vnt list -> aut_token -> expr) =
fun vars tok ->
match tok with parser
[< e1 = parse_simple vars; e = parse_more_mults e1 vars >] -> e
let tok_list = Stream.npeek 10 tok in
try
match tok with parser
[< e1 = parse_simple vars; e = parse_more_mults e1 vars >] -> e
with e ->
print_err_msg tok_list "parse_more_adds" ;
raise e
and (parse_more_mults: expr -> vnt list -> aut_token -> expr) =
fun e1 vars tok ->
match tok with parser
[< 'Genlex.Kwd "*";
pl = parse_pragma_list ;
e2 = parse_simple vars;
e = parse_more_mults (Prod(e1, e2)) vars
>]
-> e
| [< 'Genlex.Kwd "/";
pl = parse_pragma_list ;
e2 = parse_simple vars;
e = parse_more_mults (Quot(e1, e2)) vars
>]
-> e
| [< 'Genlex.Ident "mod";
pl = parse_pragma_list ;
e2 = parse_simple vars;
e = parse_more_mults (Mod(e1, e2)) vars
>]
-> e
| [< >]
-> e1
let tok_list = Stream.npeek 10 tok in
try
match tok with parser
[< 'Genlex.Kwd "*";
pl = parse_pragma_list ;
e2 = parse_simple vars;
e = parse_more_mults (Prod(e1, e2)) vars
>]
-> e
| [< 'Genlex.Kwd "/";
pl = parse_pragma_list ;
e2 = parse_simple vars;
e = parse_more_mults (Quot(e1, e2)) vars
>]
-> e
| [< 'Genlex.Ident "mod";
pl = parse_pragma_list ;
e2 = parse_simple vars;
e = parse_more_mults (Mod(e1, e2)) vars
>]
-> e
| [< >]
-> e1
with e ->
print_err_msg tok_list "parse_more_mults" ;
raise e
and (parse_simple: vnt list -> aut_token -> expr) =
fun vars tok ->
match tok with parser
| [< 'Genlex.Ident "pre"; 'Genlex.Kwd "(";
'Genlex.Int i ; 'Genlex.Kwd "," ; 'Genlex.Ident id;
'Genlex.Kwd ")"; pl = parse_pragma_list >] ->
let s = ("_pre" ^ (string_of_int i) ^ id) in
let (_, vt) = List.find (fun (vn,vt) -> vn = s) vars in
let var =
match vt with
BoolT -> assert false
| IntT(_,_) -> Ivar(s)
| FloatT(_,_) -> Fvar(s)
in
var
| [< 'Genlex.Ident s ; pl = parse_pragma_list >] ->
let (_, vt) = List.find (fun (vn,vt) -> vn = s) vars in
let var =
match vt with
BoolT -> assert false
| IntT(_,_) -> Ivar(s)
| FloatT(_,_) -> Fvar(s)
in
var
| [< 'Genlex.Int i; pl = parse_pragma_list >] -> Ival(i)
| [< 'Genlex.Float f; pl = parse_pragma_list >] -> Fval(f)
| [< 'Genlex.Kwd "IfThenElseNum"; pl = parse_pragma_list ;
f1 = parse_formula vars;
e2 = parse_expr vars;
e3 = parse_expr vars >] -> Ite(f1, e2, e3)
| [< 'Genlex.Kwd "("; e = parse_expr vars; 'Genlex.Kwd ")" >] -> e
let tok_list = Stream.npeek 10 tok in
try
match tok with parser
| [< 'Genlex.Ident "pre"; 'Genlex.Kwd "(";
'Genlex.Int i ; 'Genlex.Kwd "," ; 'Genlex.Ident id;
'Genlex.Kwd ")"; pl = parse_pragma_list >] ->
let s = ("_pre" ^ (string_of_int i) ^ id) in
let (_, vt) = List.find (fun (vn,vt) -> vn = s) vars in
let var =
match vt with
BoolT -> assert false
| IntT(_,_) -> Ivar(s)
| FloatT(_,_) -> Fvar(s)
in
var
| [< 'Genlex.Ident s ; pl = parse_pragma_list >] ->
let (_, vt) = List.find (fun (vn,vt) -> vn = s) vars in
let var =
match vt with
BoolT -> assert false
| IntT(_,_) -> Ivar(s)
| FloatT(_,_) -> Fvar(s)
in
var
| [< 'Genlex.Kwd "-"; e = parse_minus_int_or_float vars >] -> e
| [< 'Genlex.Int i; pl = parse_pragma_list >] -> Ival(i)
| [< 'Genlex.Float f; pl = parse_pragma_list >] -> Fval(f)
| [< 'Genlex.Kwd "IfThenElseNum"; pl = parse_pragma_list ;
f1 = parse_formula vars;
e2 = parse_expr vars;
e3 = parse_expr vars >] -> Ite(f1, e2, e3)
| [< 'Genlex.Kwd "("; e = parse_expr vars; 'Genlex.Kwd ")" >] -> e
with e ->
print_err_msg tok_list "parse_simple" ;
raise e
and (parse_minus_int_or_float: vnt list -> aut_token -> expr) =
fun vars tok ->
let tok_list = Stream.npeek 10 tok in
try
match tok with parser
[< 'Genlex.Int i; pl = parse_pragma_list >] -> Ival(-i)
| [< 'Genlex.Float f; pl = parse_pragma_list >] -> Fval(-.f)
with e ->
print_err_msg tok_list "parse_minus_int_or_float" ;
raise e
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment