GNU Info

Info Node: (bison.info)Locations Overview

(bison.info)Locations Overview


Next: Bison Parser Prev: Semantic Actions Up: Concepts
Enter node , (file) or (file)node

Locations
=========

   Many applications, like interpreters or compilers, have to produce
verbose and useful error messages. To achieve this, one must be able to
keep track of the "textual position", or "location", of each syntactic
construct.  Bison provides a mechanism for handling these locations.

   Each token has a semantic value. In a similar fashion, each token
has an associated location, but the type of locations is the same for
all tokens and groupings. Moreover, the output parser is equipped with
a default data structure for storing locations (Note: Locations, for
more details).

   Like semantic values, locations can be reached in actions using a
dedicated set of constructs. In the example above, the location of the
whole grouping is `@$', while the locations of the subexpressions are
`@1' and `@3'.

   When a rule is matched, a default action is used to compute the
semantic value of its left hand side (Note: Actions). In the same
way, another default action is used for locations. However, the action
for locations is general enough for most cases, meaning there is
usually no need to describe for each rule how `@$' should be formed.
When building a new location for a given grouping, the default behavior
of the output parser is to take the beginning of the first symbol, and
the end of the last symbol.


automatically generated by info2www version 1.2.2.9