]> matita.cs.unibo.it Git - helm.git/blob - helm/gTopLevel/disambiguatingParser.ml.in
6ba3b26ee8bf620afa36bbbb151a84ebdfa290fe
[helm.git] / helm / gTopLevel / disambiguatingParser.ml.in
1 (* Copyright (C) 2004, HELM Team.
2  * 
3  * This file is part of HELM, an Hypertextual, Electronic
4  * Library of Mathematics, developed at the Computer Science
5  * Department, University of Bologna, Italy.
6  * 
7  * HELM is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  * 
12  * HELM is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with HELM; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
20  * MA  02111-1307, USA.
21  * 
22  * For details, see the HELM World-Wide-Web page,
23  * http://helm.cs.unibo.it/
24  *)
25
26 exception NoWellTypedInterpretation
27
28 module AndreaAndZackDisambiguatingParser =
29  struct
30   module EnvironmentP3 = CicTextualParser2.EnvironmentP3
31
32   module Make (C : DisambiguateTypes.Callbacks) =
33    struct
34     let
35      disambiguate_term mqi_handle context metasenv term_as_string environment
36     =
37      let module Disambiguate' = Disambiguate.Make (C) in
38       let term =
39        CicTextualParser2.parse_term (Stream.of_string term_as_string)
40       in
41        Disambiguate'.disambiguate_term
42         mqi_handle context metasenv term environment
43    end
44  end
45
46
47 module CSCTextualDisambiguatingParser =
48  struct
49   module EnvironmentP3 = OldDisambiguate.EnvironmentP3
50
51   module Make (C : DisambiguateTypes.Callbacks) =
52    struct
53     let
54      disambiguate_term mqi_handle context metasenv term_as_string environment
55     =
56      let module Disambiguate' = OldDisambiguate.Make (C) in
57       let name_context =
58        List.map
59         (function
60             Some (n,_) -> Some n
61           | None -> None
62         ) context
63       in
64        let lexbuf = Lexing.from_string term_as_string in
65         let dom,mk_metasenv_and_expr =
66          CicTextualParserContext.main
67           ~context:name_context ~metasenv CicTextualLexer.token lexbuf
68         in
69          Disambiguate'.disambiguate_input mqi_handle
70           context metasenv dom mk_metasenv_and_expr environment
71    end
72  end
73
74 module CSCTexDisambiguatingParser =
75  struct
76   module EnvironmentP3 = OldDisambiguate.EnvironmentP3
77
78   module Make (C : DisambiguateTypes.Callbacks) =
79    struct
80     let
81      disambiguate_term mqi_handle context metasenv term_as_string environment
82     =
83      let module Disambiguate' = OldDisambiguate.Make (C) in
84       let name_context =
85        List.map
86         (function
87             Some (n,_) -> Some n
88           | None -> None
89         ) context
90       in
91        let lexbuf = Lexing.from_string term_as_string in
92         let dom,mk_metasenv_and_expr =
93          TexCicTextualParserContext.main
94           ~context:name_context ~metasenv TexCicTextualLexer.token lexbuf
95         in
96          Disambiguate'.disambiguate_input mqi_handle
97           context metasenv dom mk_metasenv_and_expr environment
98    end
99  end
100
101 @CHOSEN_TERM_PARSER@
102