https://github.com/mu-semtech/sparql-parser contains an EBNF parser for SPARQL, an LL(1) language. You might be able to borrow code, not sure how well it translates to scheme. GitHub asked me to log in to see the gist so I’d have to have a peek later.
sparql-ast folder contains the relevant bits regarding the parsing.
Mercedes’s stars have been on springs for decades indeed. You can easily push them over (but make sure you put it back nicely). I think Rolls Royce’s Spirit of Ecstasy pops back into the hood but I don’t know how that works on impact.