PL/pgSQL statement grammar master
parse_plpgsql_body: a statement-level wrapper grammar over the existing lexer and SQL statement grammar. Covers blocks (labels, DECLARE with %TYPE/%ROWTYPE/ALIAS FOR/CONSTANT, EXCEPTION handlers), IF/ELSIF/ELSE, CASE statements (both forms), all loop forms (LOOP/WHILE/FOR int-range incl. the lexer's dot-dot token shapes/FOR query/FOR EXECUTE/FOREACH), EXIT/CONTINUE [label] [WHEN], RETURN [NEXT|QUERY [EXECUTE]], RAISE with levels/format args/USING options, PERFORM as SELECT-under-another-name (trailing clauses included: FOR UPDATE, LIMIT), EXECUTE with INTO [STRICT]/USING, GET [STACKED] DIAGNOSTICS, NULL;, and := / = assignments with qualified subscripted targets. Embedded SQL statements dispatch to the existing grammar with a parser flag enabling INTO [STRICT] targets after select lists and RETURNING. Body statements get the same rollback-to-ErrorStatement recovery as top-level SQL; 'loop' joins the bare-alias stop lists so FOR ... IN SELECT ... LOOP parses. All 71 corpus plpgsql bodies parse with zero error statements (corpus-report now shows 'pl bodies 71/71'); lossless round-trip asserted through every body. TREE-102 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>