[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
10.1.3 C++ Location Values
When the directive %locations
is used, the C++ parser supports
location tracking, see Locations Overview. Two
auxiliary classes define a position
, a single point in a file,
and a location
, a range composed of a pair of
position
s (possibly spanning several files).
- Method on position: std::string* file
The name of the file. It will always be handled as a pointer, the parser will never duplicate nor deallocate it. As an experimental feature you may change it to ‘type*’ using ‘%define filename_type "type"’.
- Method on position: unsigned int lines (int height = 1)
Advance by height lines, resetting the column number.
- Method on position: unsigned int columns (int width = 1)
Advance by width columns, without changing the line number.
- Method on position: position& operator+= (position& pos, int width)
- Method on position: position operator+ (const position& pos, int width)
- Method on position: position& operator-= (const position& pos, int width)
- Method on position: position operator- (position& pos, int width)
Various forms of syntactic sugar for
columns
.
- Method on position: position operator<< (std::ostream o, const position& p)
Report p on o like this: ‘file:line.column’, or ‘line.column’ if file is null.
- Method on location: position begin
- Method on location: position end
The first, inclusive, position of the range, and the first beyond.
- Method on location: unsigned int columns (int width = 1)
- Method on location: unsigned int lines (int height = 1)
Advance the
end
position.
- Method on location: location operator+ (const location& begin, const location& end)
- Method on location: location operator+ (const location& begin, int width)
- Method on location: location operator+= (const location& loc, int width)
Various forms of syntactic sugar.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |