aboutsummaryrefslogtreecommitdiff
path: root/lib/loc.ml
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2018-11-24 21:41:22 +0100
committerEmilio Jesus Gallego Arias2018-11-30 22:35:05 +0100
commit0422f7e67c6c87ab364212a267288afcc7313e90 (patch)
tree05ec0a2e801eeee6adce6655af8475395bb9a575 /lib/loc.ml
parentacd0c18829a03159c489d908ce8f5f510de2f347 (diff)
[gramlib] Remove `Ploc.t` in favor of `Loc.t`
The types are identical and we have no more reason for the split. Note the following TODOS: - discrepancy of `Ploc.after` with `CLexer.after` - discrepancy of `Ploc.comments` with `CLexer.comments` - `Ploc.dummy` vs `Loc.t option`
Diffstat (limited to 'lib/loc.ml')
-rw-r--r--lib/loc.ml15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/loc.ml b/lib/loc.ml
index 1a09091bff..c08648911b 100644
--- a/lib/loc.ml
+++ b/lib/loc.ml
@@ -22,15 +22,19 @@ type t = {
bol_pos_last : int; (** position of the beginning of end line *)
bp : int; (** start position *)
ep : int; (** end position *)
+ comm : string; (** start comment *)
+ ecomm : string (** end comment *)
}
let create fname line_nb bol_pos bp ep = {
fname = fname; line_nb = line_nb; bol_pos = bol_pos;
- line_nb_last = line_nb; bol_pos_last = bol_pos; bp = bp; ep = ep; }
+ line_nb_last = line_nb; bol_pos_last = bol_pos; bp = bp; ep = ep;
+ comm = ""; ecomm = "" }
let make_loc (bp, ep) = {
fname = ToplevelInput; line_nb = -1; bol_pos = 0; line_nb_last = -1; bol_pos_last = 0;
- bp = bp; ep = ep; }
+ bp = bp; ep = ep;
+ comm = ""; ecomm = "" }
let mergeable loc1 loc2 =
loc1.fname = loc2.fname
@@ -45,7 +49,8 @@ let merge loc1 loc2 =
bol_pos = loc1.bol_pos;
line_nb_last = loc2.line_nb_last;
bol_pos_last = loc2.bol_pos_last;
- bp = loc1.bp; ep = loc2.ep; }
+ bp = loc1.bp; ep = loc2.ep;
+ comm = loc1.comm; ecomm = loc2.comm }
else loc1
else if loc2.ep < loc1.ep then {
fname = loc2.fname;
@@ -53,7 +58,9 @@ let merge loc1 loc2 =
bol_pos = loc2.bol_pos;
line_nb_last = loc1.line_nb_last;
bol_pos_last = loc1.bol_pos_last;
- bp = loc2.bp; ep = loc1.ep; }
+ bp = loc2.bp; ep = loc1.ep;
+ comm = loc2.comm; ecomm = loc1.comm
+ }
else loc2
let merge_opt l1 l2 = match l1, l2 with