@@ -41,10 +41,9 @@ type input = {
41
41
offset_to_location : int -> Loc .point ;
42
42
warnings : Warning .t list ref ;
43
43
lexbuf : Lexing .lexbuf ;
44
+ string_buffer : Buffer .t ;
44
45
}
45
46
46
- let string_buffer = Buffer. create 256
47
-
48
47
let with_location_adjustments
49
48
k input ?start_offset ?adjust_start_by ?end_offset ?adjust_end_by value =
50
49
@@ -728,13 +727,13 @@ and bad_markup_recovery start_offset input = parse
728
727
if necessary. Using the missing cases will cause a warning *)
729
728
and string input = parse
730
729
| '\"'
731
- { let result = Buffer. contents string_buffer in
732
- Buffer. clear string_buffer;
730
+ { let result = Buffer. contents input. string_buffer in
731
+ Buffer. clear input. string_buffer;
733
732
result }
734
733
| '\\' newline [' ' '\t' ]*
735
734
{ string input lexbuf }
736
735
| '\\' (['\\' '\'' ' \" ' 'n' 't' 'b' 'r' ' '] as c)
737
- { Buffer.add_char string_buffer
736
+ { Buffer.add_char input. string_buffer
738
737
(match c with
739
738
| '\\ ' -> '\\ '
740
739
| '\' ' -> '\' '
@@ -747,24 +746,24 @@ and string input = parse
747
746
| _ -> assert false);
748
747
string input lexbuf }
749
748
| '\\ ' ['0'-'9'] ['0'-'9'] ['0'-'9']
750
- { Buffer.add_char string_buffer (char_for_decimal_code input lexbuf 1);
749
+ { Buffer.add_char input. string_buffer (char_for_decimal_code input lexbuf 1);
751
750
string input lexbuf }
752
751
| '\\ ' (_ as c)
753
752
{ warning input (Parse_error.should_not_be_escaped c);
754
- Buffer.add_char string_buffer c;
753
+ Buffer.add_char input. string_buffer c;
755
754
string input lexbuf }
756
755
| eof
757
756
{ warning input Parse_error.truncated_string;
758
- Buffer.contents string_buffer }
757
+ Buffer.contents input. string_buffer }
759
758
| (_ as c)
760
- { Buffer.add_char string_buffer c;
759
+ { Buffer.add_char input. string_buffer c;
761
760
string input lexbuf }
762
761
763
762
and code_block_metadata_atom input = parse
764
763
| '" '
765
764
{
766
765
let start_offset = Lexing. lexeme_start input.lexbuf in
767
- Buffer. clear string_buffer;
766
+ Buffer. clear input. string_buffer;
768
767
let s = string input lexbuf in
769
768
with_location_adjustments ~start_offset (fun _ -> Loc. at) input s }
770
769
| (tag_unquoted_atom as value)
0 commit comments