Skip to content

Commit bdac10c

Browse files
committed
Pprintast now depends on Printast
1 parent ff05909 commit bdac10c

17 files changed

+104
-84
lines changed

ocaml/.depend

+18-15
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,7 @@ parsing/docstrings.cmi : \
431431
parsing/parsetree.cmi \
432432
parsing/location.cmi
433433
parsing/jane_syntax.cmo : \
434+
parsing/printast.cmi \
434435
parsing/parsetree.cmi \
435436
parsing/longident.cmi \
436437
parsing/location.cmi \
@@ -440,6 +441,7 @@ parsing/jane_syntax.cmo : \
440441
parsing/ast_helper.cmi \
441442
parsing/jane_syntax.cmi
442443
parsing/jane_syntax.cmx : \
444+
parsing/printast.cmx \
443445
parsing/parsetree.cmi \
444446
parsing/longident.cmx \
445447
parsing/location.cmx \
@@ -456,14 +458,12 @@ parsing/jane_syntax.cmi : \
456458
parsing/asttypes.cmi
457459
parsing/jane_syntax_parsing.cmo : \
458460
parsing/parsetree.cmi \
459-
utils/misc.cmi \
460461
parsing/location.cmi \
461462
utils/language_extension.cmi \
462463
parsing/ast_helper.cmi \
463464
parsing/jane_syntax_parsing.cmi
464465
parsing/jane_syntax_parsing.cmx : \
465466
parsing/parsetree.cmi \
466-
utils/misc.cmx \
467467
parsing/location.cmx \
468468
utils/language_extension.cmx \
469469
parsing/ast_helper.cmx \
@@ -514,15 +514,13 @@ parsing/longident.cmx : \
514514
parsing/longident.cmi :
515515
parsing/parse.cmo : \
516516
parsing/syntaxerr.cmi \
517-
parsing/pprintast.cmi \
518517
parsing/parser.cmi \
519518
parsing/location.cmi \
520519
parsing/lexer.cmi \
521520
parsing/docstrings.cmi \
522521
parsing/parse.cmi
523522
parsing/parse.cmx : \
524523
parsing/syntaxerr.cmx \
525-
parsing/pprintast.cmx \
526524
parsing/parser.cmx \
527525
parsing/location.cmx \
528526
parsing/lexer.cmx \
@@ -570,6 +568,7 @@ parsing/parsetree.cmi : \
570568
parsing/location.cmi \
571569
parsing/asttypes.cmi
572570
parsing/pprintast.cmo : \
571+
parsing/printast.cmi \
573572
parsing/parsetree.cmi \
574573
parsing/longident.cmi \
575574
parsing/location.cmi \
@@ -578,6 +577,7 @@ parsing/pprintast.cmo : \
578577
parsing/ast_helper.cmi \
579578
parsing/pprintast.cmi
580579
parsing/pprintast.cmx : \
580+
parsing/printast.cmx \
581581
parsing/parsetree.cmi \
582582
parsing/longident.cmx \
583583
parsing/location.cmx \
@@ -589,27 +589,28 @@ parsing/pprintast.cmi : \
589589
parsing/parsetree.cmi \
590590
parsing/longident.cmi
591591
parsing/printast.cmo : \
592-
parsing/pprintast.cmi \
593592
parsing/parsetree.cmi \
594593
parsing/longident.cmi \
595594
parsing/location.cmi \
596595
utils/clflags.cmi \
597596
parsing/asttypes.cmi \
598597
parsing/printast.cmi
599598
parsing/printast.cmx : \
600-
parsing/pprintast.cmx \
601599
parsing/parsetree.cmi \
602600
parsing/longident.cmx \
603601
parsing/location.cmx \
604602
utils/clflags.cmx \
605603
parsing/asttypes.cmi \
606604
parsing/printast.cmi
607605
parsing/printast.cmi : \
608-
parsing/parsetree.cmi
606+
parsing/parsetree.cmi \
607+
parsing/asttypes.cmi
609608
parsing/syntaxerr.cmo : \
609+
parsing/printast.cmi \
610610
parsing/location.cmi \
611611
parsing/syntaxerr.cmi
612612
parsing/syntaxerr.cmx : \
613+
parsing/printast.cmx \
613614
parsing/location.cmx \
614615
parsing/syntaxerr.cmi
615616
parsing/syntaxerr.cmi : \
@@ -1011,6 +1012,7 @@ typing/layouts.cmo : \
10111012
typing/path.cmi \
10121013
utils/misc.cmi \
10131014
parsing/location.cmi \
1015+
utils/language_extension.cmi \
10141016
typing/ident.cmi \
10151017
parsing/builtin_attributes.cmi \
10161018
parsing/asttypes.cmi \
@@ -1019,6 +1021,7 @@ typing/layouts.cmx : \
10191021
typing/path.cmx \
10201022
utils/misc.cmx \
10211023
parsing/location.cmx \
1024+
utils/language_extension.cmx \
10221025
typing/ident.cmx \
10231026
parsing/builtin_attributes.cmx \
10241027
parsing/asttypes.cmi \
@@ -1060,14 +1063,14 @@ typing/mtype.cmi : \
10601063
typing/ident.cmi \
10611064
typing/env.cmi
10621065
typing/oprint.cmo : \
1063-
parsing/pprintast.cmi \
1066+
parsing/printast.cmi \
10641067
typing/outcometree.cmi \
10651068
typing/layouts.cmi \
10661069
utils/language_extension.cmi \
10671070
parsing/asttypes.cmi \
10681071
typing/oprint.cmi
10691072
typing/oprint.cmx : \
1070-
parsing/pprintast.cmx \
1073+
parsing/printast.cmx \
10711074
typing/outcometree.cmi \
10721075
typing/layouts.cmx \
10731076
utils/language_extension.cmx \
@@ -1326,7 +1329,6 @@ typing/printtyped.cmo : \
13261329
typing/types.cmi \
13271330
typing/typedtree.cmi \
13281331
parsing/printast.cmi \
1329-
parsing/pprintast.cmi \
13301332
typing/path.cmi \
13311333
parsing/parsetree.cmi \
13321334
parsing/longident.cmi \
@@ -1340,7 +1342,6 @@ typing/printtyped.cmx : \
13401342
typing/types.cmx \
13411343
typing/typedtree.cmx \
13421344
parsing/printast.cmx \
1343-
parsing/pprintast.cmx \
13441345
typing/path.cmx \
13451346
parsing/parsetree.cmi \
13461347
parsing/longident.cmx \
@@ -1652,16 +1653,17 @@ typing/typedecl.cmo : \
16521653
typing/typedecl_separability.cmi \
16531654
typing/subst.cmi \
16541655
typing/printtyp.cmi \
1656+
parsing/printast.cmi \
16551657
typing/primitive.cmi \
16561658
typing/predef.cmi \
1657-
parsing/pprintast.cmi \
16581659
typing/path.cmi \
16591660
parsing/parsetree.cmi \
16601661
typing/oprint.cmi \
16611662
utils/misc.cmi \
16621663
parsing/longident.cmi \
16631664
parsing/location.cmi \
16641665
typing/layouts.cmi \
1666+
parsing/jane_syntax.cmi \
16651667
typing/includecore.cmi \
16661668
typing/ident.cmi \
16671669
typing/errortrace.cmi \
@@ -1685,16 +1687,17 @@ typing/typedecl.cmx : \
16851687
typing/typedecl_separability.cmx \
16861688
typing/subst.cmx \
16871689
typing/printtyp.cmx \
1690+
parsing/printast.cmx \
16881691
typing/primitive.cmx \
16891692
typing/predef.cmx \
1690-
parsing/pprintast.cmx \
16911693
typing/path.cmx \
16921694
parsing/parsetree.cmi \
16931695
typing/oprint.cmx \
16941696
utils/misc.cmx \
16951697
parsing/longident.cmx \
16961698
parsing/location.cmx \
16971699
typing/layouts.cmx \
1700+
parsing/jane_syntax.cmx \
16981701
typing/includecore.cmx \
16991702
typing/ident.cmx \
17001703
typing/errortrace.cmx \
@@ -2024,8 +2027,8 @@ typing/typetexp.cmo : \
20242027
typing/types.cmi \
20252028
typing/typedtree.cmi \
20262029
typing/printtyp.cmi \
2030+
parsing/printast.cmi \
20272031
typing/predef.cmi \
2028-
parsing/pprintast.cmi \
20292032
typing/path.cmi \
20302033
parsing/parsetree.cmi \
20312034
typing/oprint.cmi \
@@ -2048,8 +2051,8 @@ typing/typetexp.cmx : \
20482051
typing/types.cmx \
20492052
typing/typedtree.cmx \
20502053
typing/printtyp.cmx \
2054+
parsing/printast.cmx \
20512055
typing/predef.cmx \
2052-
parsing/pprintast.cmx \
20532056
typing/path.cmx \
20542057
parsing/parsetree.cmi \
20552058
typing/oprint.cmx \

ocaml/compilerlibs/Makefile.compilerlibs

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ PARSING = \
5959
parsing/location.cmo \
6060
parsing/longident.cmo \
6161
parsing/docstrings.cmo \
62+
parsing/printast.cmo \
6263
parsing/syntaxerr.cmo \
6364
parsing/ast_helper.cmo \
6465
parsing/jane_syntax_parsing.cmo parsing/jane_syntax.cmo \
@@ -69,7 +70,6 @@ PARSING = \
6970
parsing/parser.cmo \
7071
parsing/lexer.cmo \
7172
parsing/parse.cmo \
72-
parsing/printast.cmo \
7373
parsing/ast_mapper.cmo \
7474
parsing/attr_helper.cmo \
7575
parsing/ast_invariants.cmo \

ocaml/dune

+5-6
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,10 @@
6161
lazy_backtrack diffing diffing_with_keys language_extension
6262

6363
;; PARSING
64-
location longident docstrings syntaxerr ast_helper camlinternalMenhirLib
65-
ast_iterator parser lexer parse printast pprintast ast_mapper attr_helper
66-
builtin_attributes ast_invariants depend jane_syntax_parsing jane_syntax
67-
; manual update: mli only files
68-
asttypes parsetree
64+
location longident docstrings printast syntaxerr ast_helper
65+
camlinternalMenhirLib ast_iterator parser lexer parse pprintast ast_mapper
66+
attr_helper builtin_attributes ast_invariants depend jane_syntax_parsing
67+
jane_syntax ; manual update: mli only files asttypes parsetree
6968

7069
;; TYPING
7170
ident path primitive shape layouts types btype oprint subst predef datarepr
@@ -245,13 +244,13 @@
245244
(location.mli as compiler-libs/location.mli)
246245
(longident.mli as compiler-libs/longident.mli)
247246
(docstrings.mli as compiler-libs/docstrings.mli)
247+
(printast.mli as compiler-libs/printast.mli)
248248
(syntaxerr.mli as compiler-libs/syntaxerr.mli)
249249
(ast_helper.mli as compiler-libs/ast_helper.mli)
250250
(camlinternalMenhirLib.mli as compiler-libs/camlinternalMenhirLib.mli)
251251
(parser.mli as compiler-libs/parser.mli)
252252
(lexer.mli as compiler-libs/lexer.mli)
253253
(parse.mli as compiler-libs/parse.mli)
254-
(printast.mli as compiler-libs/printast.mli)
255254
(pprintast.mli as compiler-libs/pprintast.mli)
256255
(ast_mapper.mli as compiler-libs/ast_mapper.mli)
257256
(ast_iterator.mli as compiler-libs/ast_iterator.mli)

ocaml/otherlibs/dynlink/Makefile

+1
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ COMPILERLIBS_SOURCES=\
9797
parsing/location.ml \
9898
parsing/longident.ml \
9999
parsing/docstrings.ml \
100+
parsing/printast.ml \
100101
parsing/syntaxerr.ml \
101102
parsing/ast_helper.ml \
102103
parsing/jane_syntax_parsing.ml \

ocaml/otherlibs/dynlink/dune

+5
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
location
4343
longident
4444
docstrings
45+
printast
4546
syntaxerr
4647
jane_syntax_parsing
4748
jane_syntax
@@ -126,6 +127,7 @@
126127
(copy_files ../../parsing/location.ml)
127128
(copy_files ../../parsing/longident.ml)
128129
(copy_files ../../parsing/docstrings.ml)
130+
(copy_files ../../parsing/printast.ml)
129131
(copy_files ../../parsing/syntaxerr.ml)
130132
(copy_files ../../parsing/jane_syntax_parsing.ml)
131133
(copy_files ../../parsing/jane_syntax.ml)
@@ -183,6 +185,7 @@
183185
(copy_files ../../parsing/location.mli)
184186
(copy_files ../../parsing/longident.mli)
185187
(copy_files ../../parsing/docstrings.mli)
188+
(copy_files ../../parsing/printast.mli)
186189
(copy_files ../../parsing/syntaxerr.mli)
187190
(copy_files ../../parsing/jane_syntax_parsing.mli)
188191
(copy_files ../../parsing/jane_syntax.mli)
@@ -278,6 +281,7 @@
278281
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Symbol.cmo
279282
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Path.cmo
280283
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Docstrings.cmo
284+
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Printast.cmo
281285
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Syntaxerr.cmo
282286
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Lazy_backtrack.cmo
283287
.dynlink_compilerlibs.objs/byte/dynlink_compilerlibs__Ast_helper.cmo
@@ -351,6 +355,7 @@
351355
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Path.cmx
352356
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Lazy_backtrack.cmx
353357
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Docstrings.cmx
358+
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Printast.cmx
354359
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Syntaxerr.cmx
355360
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Ast_helper.cmx
356361
.dynlink_compilerlibs.objs/native/dynlink_compilerlibs__Jane_syntax_parsing.cmx

ocaml/parsing/parse.ml

-43
Original file line numberDiff line numberDiff line change
@@ -104,46 +104,3 @@ let constr_ident= wrap Parser.parse_constr_longident
104104
let extended_module_path = wrap Parser.parse_mod_ext_longident
105105
let simple_module_path = wrap Parser.parse_mod_longident
106106
let type_ident = wrap Parser.parse_mty_longident
107-
108-
(* Error reporting for Syntaxerr *)
109-
(* The code has been moved here so that one can reuse Pprintast.tyvar *)
110-
111-
let prepare_error err =
112-
let open Syntaxerr in
113-
match err with
114-
| Unclosed(opening_loc, opening, closing_loc, closing) ->
115-
Location.errorf
116-
~loc:closing_loc
117-
~sub:[
118-
Location.msg ~loc:opening_loc
119-
"This '%s' might be unmatched" opening
120-
]
121-
"Syntax error: '%s' expected" closing
122-
123-
| Expecting (loc, nonterm) ->
124-
Location.errorf ~loc "Syntax error: %s expected." nonterm
125-
| Not_expecting (loc, nonterm) ->
126-
Location.errorf ~loc "Syntax error: %s not expected." nonterm
127-
| Applicative_path loc ->
128-
Location.errorf ~loc
129-
"Syntax error: applicative paths of the form F(X).t \
130-
are not supported when the option -no-app-func is set."
131-
| Variable_in_scope (loc, var) ->
132-
Location.errorf ~loc
133-
"In this scoped type, variable %a \
134-
is reserved for the local type %s."
135-
Pprintast.tyvar var var
136-
| Other loc ->
137-
Location.errorf ~loc "Syntax error"
138-
| Ill_formed_ast (loc, s) ->
139-
Location.errorf ~loc
140-
"broken invariant in parsetree: %s" s
141-
| Invalid_package_type (loc, s) ->
142-
Location.errorf ~loc "invalid package type: %s" s
143-
144-
let () =
145-
Location.register_error_of_exn
146-
(function
147-
| Syntaxerr.Error err -> Some (prepare_error err)
148-
| _ -> None
149-
)

ocaml/parsing/pprintast.ml

+2-7
Original file line numberDiff line numberDiff line change
@@ -287,13 +287,7 @@ let iter_loc f ctxt {txt; loc = _} = f ctxt txt
287287

288288
let constant_string f s = pp f "%S" s
289289

290-
let tyvar ppf s =
291-
if String.length s >= 2 && s.[1] = '\'' then
292-
(* without the space, this would be parsed as
293-
a character literal *)
294-
Format.fprintf ppf "' %s" s
295-
else
296-
Format.fprintf ppf "'%s" s
290+
let tyvar = Printast.tyvar
297291

298292
let tyvar_loc f str = tyvar f str.txt
299293
let string_quot f x = pp f "`%s" x
@@ -1954,3 +1948,4 @@ let structure_item = structure_item reset_ctxt
19541948
let signature_item = signature_item reset_ctxt
19551949
let binding = binding reset_ctxt
19561950
let payload = payload reset_ctxt
1951+

ocaml/parsing/pprintast.mli

+1-3
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,4 @@ val signature_item: Format.formatter -> Parsetree.signature_item -> unit
5050
val binding: Format.formatter -> Parsetree.value_binding -> unit
5151
val payload: Format.formatter -> Parsetree.payload -> unit
5252

53-
val tyvar: Format.formatter -> string -> unit
54-
(** Print a type variable name, taking care of the special treatment
55-
required for the single quote character in second position. *)
53+

0 commit comments

Comments
 (0)