ocamlspot-xuux / locident.ml

(***********************************************************************)
(*                                                                     *)
(*                            OCamlSpotter                             *)
(*                                                                     *)
(*                             Jun FURUSE                              *)
(*                                                                     *)
(*   Copyright 2008-2012 Jun Furuse. All rights reserved.              *)
(*   This file is distributed under the terms of the GNU Library       *)
(*   General Public License, with the special exception on linking     *)
(*   described in file LICENSE.                                        *)
(*                                                                     *)
(***********************************************************************)

(* Long identifiers with locations *)

type desc =
    LLident of string
  | LLdot of t * string
  | LLapply of t * t

and t = {
  lident_desc : desc;
  lident_loc : Location.t
}

let rec format ppf t = match t.lident_desc with
  | LLident s -> Format.pp_print_string ppf s
  | LLdot (t, s) -> Format.fprintf ppf "%a.%s" format t s
  | LLapply (t1, t2) -> Format.fprintf ppf "%a(%a)" format t1 format t2
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.