class Prism::Translation::Parser::Lexer

def trim_heredoc_whitespace(string, heredoc)

https://github.com/ruby/prism/blob/v1.3.0/src/prism.c#L16528-L16545
Wonky heredoc tab/spaces rules.
def trim_heredoc_whitespace(string, heredoc)
  trimmed_whitespace = 0
  trimmed_characters = 0
  while (string[trimmed_characters] == "\t" || string[trimmed_characters] == " ") && trimmed_whitespace < heredoc.common_whitespace
    if string[trimmed_characters] == "\t"
      trimmed_whitespace = (trimmed_whitespace / 8 + 1) * 8;
      break if trimmed_whitespace > heredoc.common_whitespace
    else
      trimmed_whitespace += 1
    end
    trimmed_characters += 1
  end
  string[trimmed_characters..]
end