@@ -527,6 +527,17 @@ let _ = FStarC_Parser_AST_Util.register_extension_lang_parser "fstar" parse_fsta
527527
528528type lang_opts = string option
529529
530+ let rec insert_use_lang lang decls =
531+ match decls with
532+ | [] -> []
533+ | { FStarC_Parser_AST. d = FStarC_Parser_AST. TopLevelModule _ } as d ::ds ->
534+ let use_lang =
535+ { d with FStarC_Parser_AST. d = FStarC_Parser_AST. UseLangDecls lang; }
536+ in
537+ d :: use_lang :: ds
538+ | d ::ds ->
539+ d :: insert_use_lang lang ds
540+
530541let parse_lang lang fn =
531542 let s =
532543 match fn with
@@ -547,9 +558,11 @@ let parse_lang lang fn =
547558 let frag_pos = FStarC_Range. mk_pos s.frag_line s.frag_col in
548559 let rng = FStarC_Range. mk_range s.frag_fname frag_pos frag_pos in
549560 let decls = FStarC_Parser_AST_Util. parse_extension_lang lang s.frag_text rng in
561+ let decls = insert_use_lang lang decls in
550562 let comments = FStarC_Parser_Util. flush_comments () in
551563 let frag = match fn with
552- | Filename _ | Toplevel _ -> FStarC_Parser_AST. as_frag decls
564+ | Filename _ | Toplevel _ ->
565+ FStarC_Parser_AST. as_frag decls
553566 | _ -> FStar_Pervasives. Inr decls
554567 in
555568 ASTFragment (frag, comments)
@@ -630,7 +643,9 @@ let parse (lang_opt:lang_opts) fn =
630643 | Some lang , _ -> parse_lang lang fn
631644 | None , Filename fn' -> begin
632645 match take_lang_extension fn' with
633- | Some lang -> parse_lang lang fn
646+ | Some lang ->
647+ print_endline (" {\" kind\" :\" message\" ,\" level\" :\" info\" ,\" contents\" :\" got lang " ^ lang ^ " \" }" );
648+ parse_lang lang fn
634649 | None -> parse_no_lang fn
635650 end
636651 | None , Toplevel fn' -> begin
@@ -639,6 +654,11 @@ let parse (lang_opt:lang_opts) fn =
639654 | None -> parse_no_lang fn
640655 end
641656 | _ , _ -> parse_no_lang fn
657+ (*
658+ ../.vscode/settings.json
659+
660+ {"kind":"message","query-id":"2","level":"info","contents":"Parsed 7 declarations\n"}
661+ *)
642662
643663
644664(* * Parsing of command-line error/warning/silent flags. *)
0 commit comments