Could you explain, specifically, how infix operators react to the presence/absence of parentheses? Ignoring the treatment of tokenization (what with whitespace vs nonwhitespace operators), is the context-sensitive grammar roughly like so?
( infix a b ... ) --> ( infix a b ... )
( a infix b ... ) --> ( infix a b ... )
a infix b ... --> ( infix a b ) ...
where the last rule would create the behavior
( ... a b infix c ... ) --> ( ... a ( infix b c ) ... )
That's as much as I can gather from the examples, but I'd like having a clear mental model.