From ce6bae891c6d1e22e61a1fb54ce3ecd08ca31891 Mon Sep 17 00:00:00 2001 From: Simon Van Casteren Date: Fri, 10 Jan 2020 02:25:45 +0100 Subject: Refactor to do all matching on strings, more precise and faster --- src/getinfo.sig | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) (limited to 'src/getinfo.sig') diff --git a/src/getinfo.sig b/src/getinfo.sig index 50eee70a..663a9a81 100644 --- a/src/getinfo.sig +++ b/src/getinfo.sig @@ -27,28 +27,24 @@ signature GET_INFO = sig - datatype item = - Kind of Elab.kind - | Con of Elab.con - | Exp of Elab.exp - | Sgn_item of Elab.sgn_item - | Sgn of Elab.sgn - | Str of Elab.str - | Decl of Elab.decl + datatype foundInEnv = FoundStr of (string * Elab.sgn) + | FoundCon of (string * Elab.kind) + | FoundExp of (string * Elab.con) - val getInfo: + val findStringInEnv: ElabEnv.env -> Elab.str' -> string (* fileName *) -> - { line: int , character: int} -> - { smallest : { span : ErrorMsg.span - , item : item - , env : ElabEnv.env } - , smallestgoodpart : { span : ErrorMsg.span - , desc : Print.PD.pp_desc - , env : ElabEnv.env - , item : item - } option -} + {line: int, char: int} -> + string (* query *) -> + (ElabEnv.env * string (* prefix *) * foundInEnv option) + + val matchStringInEnv: + ElabEnv.env -> + Elab.str' -> + string (* fileName *) -> + {line: int, char: int} -> + string (* query *) -> + (ElabEnv.env * string (* prefix *) * foundInEnv list) end -- cgit v1.2.3