Here is an overview of special syntactic constructions that may be used
inside action blocks:
    itemization(
    itt($$): This acts like a variable that contains the semantic value for
the grouping made by the current rule. See section ref(ACTIONS).
    itt($n): This acts like a variable that contains the semantic value for
the n-th component of the current rule. See section ref(ACTIONS).
    itt($<typealt>$): This is like tt($$), but it specifies alternative
tt(typealt) in the union specified by the tt(%union) directive.  See sections
ref(SEMANTICTYPES) and ref(MORETYPES).
    itt($<typealt>n): This is like tt($n) but it specifies an alternative
tt(typealt) in the union specified by the tt(%union) directive.  See sections
ref(SEMANTICTYPES) and ref(MORETYPES).
    itt(@n): This acts like a structure variable containing information on the
line numbers and column numbers of the nth component of the current rule. The
default structure is defined like this (see section ref(LSPNEEDED)):
           verb(
    struct LTYPE__
    {
        int timestamp;
        int first_line;
        int first_column;
        int last_line;
        int last_column;
        char *text;
    };
           )
    Thus, to get the starting line number of the third component, you would
use tt(@3.first_line).

    In order for the members of this structure to contain valid information,
you must make sure the lexical scanner supplies this information about each
token. If you need only certain fields, then the lexical scanner 
only has to provide those fields. 

    Be advised that using this or corresponding (custom-defined, see sections
ref(LTYPE) and ref(LOCSTRUCT)) may slow down the parsing process noticeably.
    )