class SyntaxTree::Parser

def find_colon2_before(const)

::X::Y::Z.
you could end up getting the wrong information if you have for instance
using find_token here because we don't pop off all of the :: operators so
A helper function to find a :: operator. We do special handling instead of
def find_colon2_before(const)
  index =
    tokens.rindex do |token|
      token.is_a?(Op) && token.value == "::" &&
        token.location.start_char < const.location.start_char
    end
  tokens[index]
end