Explicit-ify APL expressions involving trains
APL (Dyalog Classic), 63 59 58 54 52 51 bytes



∊⍎'.[A-Z].'⎕r'{0::&amp;⍵⋄''() '',⍪⍺&amp;⍵}'⊢'\w'⎕r'''&amp;'''⊢⍞


Try it online!

put all letters in quotes, replace uppercase letters with dfns that return either "(left) self right" or "self right" depending on the presence of a left arg, and execute.