A fix to #3709: ensuring extra parentheses when a tactic entry has a subentry at a higher tactic level than the entry itself.
A fix to #3709: ensuring extra parentheses when a tactic entry has a
subentry at a higher tactic level than the entry itself.

This is applicable to the parsing of expressions with infix or postfix
operators such as ; or ||.

Could be improved, e.g. so that no parenthesis are put when the
expression is the rightmost one, as in:

  now (tac1;tac2)

where parentheses are not needed but still printed with this patch,
while the patch adds needed parentheses in

  (now tac1);tac2

This would hardly scale to more complex grammars. E.g., if a suffix
expression can extend a leading expression as part of different
grammar entries, as in

  let x := simpl in y ...

I don't see in general how to anticipate the need for parentheses
without restarting the parser to check the reversibility of the
printing.

Zimmi48/coq,letouzey/coq-wip,Lionel-Rieg/coq,Zimmi48/coq,gares/coq,mattam82/coq,JasonGross/coq,ejgallego/coq,Zimmi48/coq,coq/coq,mattam82/coq,Ptival/coq,Ptival/coq,ppedrot/coq,maximedenes/coq,ppedrot/coq,gares/coq,coq/coq,Zimmi48/coq,william-lawvere/coq,silene/coq,william-lawvere/coq,william-lawvere/coq,SkySkimmer/coq,letouzey/coq-wip,ejgallego/coq,maximedenes/coq,amintimany/coq,coq/coq,JasonGross/coq,gares/coq,amintimany/coq,letouzey/coq-wip,ppedrot/coq,ejgallego/coq,silene/coq,Ptival/coq,Matafou/coq,gares/coq,SkySkimmer/coq,JasonGross/coq,Matafou/coq,maximedenes/coq,coq/coq,Lionel-Rieg/coq,JasonGross/coq,gares/coq,letouzey/coq-wip,mattam82/coq,Matafou/coq,amintimany/coq,ppedrot/coq,SkySkimmer/coq,Lionel-Rieg/coq,maximedenes/coq,silene/coq,ppedrot/coq,SkySkimmer/coq,ejgallego/coq,maximedenes/coq,letouzey/coq-wip