X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_notation%2FcicNotation.ml;h=9ed0c5038e07c5c5d28792c4bf17233144a0df6e;hb=2ec306151ac692b5165e9ca30553762cb9be9e33;hp=87eb9980e04ad34de832e01520c72d34dbe3c18f;hpb=e20f3963028a966fc93ba0d611c4aa8341d20e2c;p=helm.git diff --git a/helm/ocaml/cic_notation/cicNotation.ml b/helm/ocaml/cic_notation/cicNotation.ml index 87eb9980e..9ed0c5038 100644 --- a/helm/ocaml/cic_notation/cicNotation.ml +++ b/helm/ocaml/cic_notation/cicNotation.ml @@ -32,15 +32,23 @@ type notation_id = let process_notation st = match st with - | Notation (loc, l1, associativity, precedence, l2) -> + | Notation (loc, dir, l1, associativity, precedence, l2) -> let rule_id = - CicNotationParser.extend l1 ?precedence ?associativity - (fun env loc -> CicNotationFwd.instantiate_level2 env l2) + if dir <> Some `RightToLeft then + [ RuleId (CicNotationParser.extend l1 ?precedence ?associativity + (fun env loc -> CicNotationFwd.instantiate_level2 env l2)) ] + else + [] in let pp_id = - CicNotationRew.add_pretty_printer ?precedence ?associativity l2 l1 + if dir <> Some `LeftToRight then + [ PrettyPrinterId + (CicNotationRew.add_pretty_printer ?precedence ?associativity + l2 l1) ] + else + [] in - st, [ RuleId rule_id; PrettyPrinterId pp_id ] + st, rule_id @ pp_id | Interpretation (loc, dsc, l2, l3) -> let interp_id = CicNotationRew.add_interpretation dsc l2 l3 in st, [ InterpretationId interp_id ] @@ -53,10 +61,10 @@ let remove_notation = function let load_notation fname = let ic = open_in fname in - let istream = Stream.of_channel ic in + let lexbuf = Ulexing.from_utf8_channel ic in try while true do - match GrafiteParser.parse_statement istream with + match GrafiteParser.parse_statement lexbuf with | Executable (_, Command (_, cmd)) -> ignore (process_notation cmd) | _ -> () done