Commit 033e0ec8 authored by POGODALLA Sylvain's avatar POGODALLA Sylvain

Bug fix: parsing of a constant that itseld is the image of a constant raised...

Bug fix: parsing of a constant that itseld is the image of a constant raised an exception (trying to move up in the tree when there is no move possible)
parent e6e7ac6b
......@@ -3,7 +3,7 @@
* Général
** BUG:
+ [ ] si 2 déclarations d'interprétations de la même constante dans un lexique, plusieurs solutions de parsing. Minmal example:
+ [X] si 2 déclarations d'interprétations de la même constante dans un lexique, plusieurs solutions de parsing. Minmal example:
signature abs =
o:type;
......@@ -27,6 +27,25 @@ end
# form parse a:o;
-> 2 analyses.
+ [ ] Bug: analyse d'une constante image d'une constante lève une exception:
signature trees =
tree:type;
une:tree;
end
signature strings =
o:type;
une:o->o;
end
lexicon yield(trees):strings =
tree := o->o;
une := une;
end
# yield parse une:tree;
** TODO Avant Prochaine release
+ [X] merge avec trunk
......@@ -39,6 +58,10 @@ end
+ [X] améliorer le pretty-printing des termes
+ [X] ajouter dépendence à ocf
+ [ ] ajouter dépendence à Ocaml 4.02.1 ? (requis par ocf)
+ [ ] ajouter parsing de types non atomiques
+ [ ] ajouter détection de nbre infini de solutions
+ [ ] permettre à ./acg de charger des fichiers .acgo
+ [ ] OPAM: enlever les warnings qui deviennent des erreurs
** DONE Faire un Bolt package
......
......@@ -240,8 +240,8 @@ struct
let prog = match lex.datalog_prog with
| None -> None
| Some p ->
let duplicate_entry = Dico.mem id d in
let new_prog= add_rule_for_cst_in_prog id duplicate_entry abs_type (Signature.expand_term interpreted_term lex.object_sig) lex p in
let duplicated_entry = Dico.mem id d in
let new_prog= add_rule_for_cst_in_prog id duplicated_entry abs_type (Signature.expand_term interpreted_term lex.object_sig) lex p in
Some new_prog in
{lex with
dico=Dico.add id (Constant (loc,interpreted_term)) d;
......
......@@ -417,15 +417,18 @@ struct
let rec close_forest_context_up f_forest f_tree depth resume =
let f_forest,f_tree,depth = up f_forest f_tree depth in
try
right f_forest f_tree depth resume
with
| Move_failure Right ->
let f_forest,f_tree,depth = up f_forest f_tree depth in
(try
close_forest_context_up f_forest f_tree depth resume
with
| Move_failure Up -> f_forest,f_tree,depth,resume)
right f_forest f_tree depth resume
with
| Move_failure Right ->
(try
close_forest_context_up f_forest f_tree depth resume
with
| Move_failure Up -> f_forest,f_tree,depth,resume))
with
| Move_failure Up -> f_forest,f_tree,depth,resume
let rec build_tree_aux f_forest f_tree depth resume=
......
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