In Mathematica, space can often be used to indicate multiply. For example "a b" = "a * b". On the other hand, in a *.m file, we also have multiple statements separated by newlines. How does the Mathematica parser decide what is "space to mean multiply" vs "space to separate statements" ?
Is there a formal spec of the mathematica grammar somewhere?