Read all s-expressions with error recovery.
On parse errors, skips to the next top-level form and continues.
Returns (successfully parsed forms, span map, collected errors).
Tokenizer errors are returned as a single error with no parsed forms.
Read all s-expressions and return spans for both compound expressions and individual symbols.
Symbol spans enable precise go-to-definition (jumping to the name, not the whole form).