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

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 @@ ...@@ -3,7 +3,7 @@
* Général * Général
** BUG: ** 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 = signature abs =
o:type; o:type;
...@@ -27,6 +27,25 @@ end ...@@ -27,6 +27,25 @@ end
# form parse a:o; # form parse a:o;
-> 2 analyses. -> 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 ** TODO Avant Prochaine release
+ [X] merge avec trunk + [X] merge avec trunk
...@@ -39,6 +58,10 @@ end ...@@ -39,6 +58,10 @@ end
+ [X] améliorer le pretty-printing des termes + [X] améliorer le pretty-printing des termes
+ [X] ajouter dépendence à ocf + [X] ajouter dépendence à ocf
+ [ ] ajouter dépendence à Ocaml 4.02.1 ? (requis par 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 ** DONE Faire un Bolt package
......
...@@ -240,8 +240,8 @@ struct ...@@ -240,8 +240,8 @@ struct
let prog = match lex.datalog_prog with let prog = match lex.datalog_prog with
| None -> None | None -> None
| Some p -> | Some p ->
let duplicate_entry = Dico.mem id d in let duplicated_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 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 Some new_prog in
{lex with {lex with
dico=Dico.add id (Constant (loc,interpreted_term)) d; dico=Dico.add id (Constant (loc,interpreted_term)) d;
......
...@@ -417,15 +417,18 @@ struct ...@@ -417,15 +417,18 @@ struct
let rec close_forest_context_up f_forest f_tree depth resume = 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 try
right f_forest f_tree depth resume let f_forest,f_tree,depth = up f_forest f_tree depth in
with
| Move_failure Right ->
(try (try
close_forest_context_up f_forest f_tree depth resume right f_forest f_tree depth resume
with with
| Move_failure Up -> f_forest,f_tree,depth,resume) | 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= 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