When the directive
%locations is used, the C++ parser supports
location tracking, see Tracking Locations.
By default, two auxiliary classes define a
position, a single point
in a file, and a
location, a range composed of a pair of
positions (possibly spanning several files). If the
api.location.type is defined, then these classes will not be
generated, and the user defined type will be used.