diff options
-rw-r--r-- | lex/lexer.mll | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/lex/lexer.mll b/lex/lexer.mll index c420bcc96..4b0e90ab1 100644 --- a/lex/lexer.mll +++ b/lex/lexer.mll @@ -33,18 +33,16 @@ let reset_string_buffer () = string_index := 0 let store_string_char c = - (if !string_index >= String.length (!string_buff) then - let new_buff = String.create (String.length (!string_buff) * 2) in - String.blit new_buff 0 (!string_buff) 0 (String.length (!string_buff)); - string_buff := new_buff; - ()); + if !string_index >= String.length !string_buff then begin + let new_buff = String.create (String.length !string_buff * 2) in + String.blit !string_buff 0 new_buff 0 (String.length !string_buff); + string_buff := new_buff + end; !string_buff.[!string_index] <- c; incr string_index let get_stored_string () = - let s = String.sub (!string_buff) 0 (!string_index) in - string_buff := initial_string_buffer; - s + String.sub !string_buff 0 !string_index let char_for_backslash = function 'n' -> '\n' |