private void compoundStatement(boolean recursive) {
        Lexem l;
        while ((l = scanner.next()) != Lexem.EOF) {
            appendMatch();
            if (Lexem.IDENTIFIER.equals(l)) {
                if ("begin".equalsIgnoreCase(scanner.getCurrentMatch())) {
                    compoundStatement(true);
                } else if ("end".equalsIgnoreCase(scanner.getCurrentMatch())) {
                    if (endOfBlock(recursive)) {
                        return;
                    }
                }
            }
        }
        flushStringBuilder();
    }
Compound statement ('create procedure') mode:
1. Do not remove comments
2. Do not shrink whitespace
3. Do not split on separators
3. This mode can be recursive
modules/database-commons/src/main/java/org/testcontainers/ext/ScriptSplitter.java