diff options
author | Chimrod <> | 2023-09-22 18:19:02 +0200 |
---|---|---|
committer | Chimrod <> | 2023-09-22 18:19:02 +0200 |
commit | 1aaf8ae4d48bb9404b8faef2ba55024a6d6bac23 (patch) | |
tree | 129954eb88cec2ac8264d01f07a61c28b092f131 | |
parent | 91d8d283760e5da4c777fad5ffbd29b9bf3ca71d (diff) |
Made the syntax analyzer generic
-rw-r--r-- | lib/analyzer.ml | 2 | ||||
-rw-r--r-- | lib/analyzer.mli | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/lib/analyzer.ml b/lib/analyzer.ml index 1a9b17b..f0f8ca5 100644 --- a/lib/analyzer.ml +++ b/lib/analyzer.ml @@ -26,7 +26,7 @@ let parse : Lexing.lexbuf -> ('a, error) Result.t = fun (type a) (module S : Qsp_syntax.S.Analyzer with type Location.repr = a) -> - let module Parser = Parser.Make (Qsp_syntax.Tree) in + let module Parser = Parser.Make (S) in let module IncrementalParser = Interpreter.Interpreter (Parser.MenhirInterpreter) in fun lexbuf -> diff --git a/lib/analyzer.mli b/lib/analyzer.mli new file mode 100644 index 0000000..3032375 --- /dev/null +++ b/lib/analyzer.mli @@ -0,0 +1,12 @@ +type error = { + message : string; + start_pos : Lexing.position; + end_pos : Lexing.position; +} + +val format_error : Format.formatter -> error -> unit + +val parse : + (module Qsp_syntax.S.Analyzer with type Location.repr = 'a) -> + Lexing.lexbuf -> + ('a, error) Result.t |