A list may be specified with left recursion
list: item | list ',' item ;
or right recursion.
list: item | item ',' list
If right recursion is used then all items on the list are pushed on the stack. After the last item is pushed we start reducing. With left recursion we never have more than three terms on the stack since we reduce as we go along. For this reason it is advantageous to use left recursion.