Parse .gctf content from string (for LSP/editor use).
Documents are determined implicitly: REQUEST after RESPONSE/ERROR/ASSERTS,
or ENDPOINT/ADDRESS starts a new document.
Parse .gctf and return AST + diagnostics useful for inspect/debug.
Supports multiple documents with implicit boundaries (ENDPOINT after terminal section).