The `YYLLOC_DEFAULT' macro takes three parameters. The first one is
the location of the grouping (the result of the computation). When a
rule is matched, the second parameter is an array holding locations of
all right hand side elements of the rule being matched, and the third
parameter is the size of the rule's right hand side. When processing a
syntax error, the second parameter is an array holding locations of the
symbols that were discarded during error processing, and the third
parameter is the number of discarded symbols.
By default, `YYLLOC_DEFAULT' is defined this way for simple LALR(1)
parsers:
#define YYLLOC_DEFAULT(Current, Rhs, N) \
Current.first_line = Rhs[1].first_line; \
Current.first_column = Rhs[1].first_column; \
Current.last_line = Rhs[N].last_line; \
Current.last_column = Rhs[N].last_column;
When defining `YYLLOC_DEFAULT', you should consider that:
* All arguments are free of side-effects. However, only the first
one (the result) should be modified by `YYLLOC_DEFAULT'.
* For consistency with semantic actions, valid indexes for the
location array range from 1 to N.