Next: GNU Free Documentation License, Previous: Optional Lambda Expression, Up: top [Contents]

## 4 Examples

The rule:

    any-symbol: symbol
              ;

is equivalent to

    any-symbol: symbol
                ( $1 )
              ;

which, if it matched the string ‘`"A"`’, would return

    ( "A" )

If this rule were used like this:

    %token <punctuation> EQUAL "="
    …
    assign: any-symbol EQUAL any-symbol
            ( $1 $3 )
          ;

it would match ‘`"A=B"`’, and return

    ( ("A") ("B") )

The letters ‘`A`’ and ‘`B`’ come back in lists because ‘`any-symbol`’ is a nonterminal, not an actual lexical element.

To get a better result with nonterminals, use , to splice lists in like this:

    %token <punctuation> EQUAL "="
    …
    assign: any-symbol EQUAL any-symbol
            ( ,$1 ,$3 )
          ;

which would return

    ( "A" "B" )