I have now a single unified expression language in tpm2sh, which is used in all PCR and policy commands.
You can e.g., express crazy things like or(pcr("sha256:0"), secret(tpm://0x40000001))
with it for instance.
I’ve replaced three separate pest parsers with a single unified nom parser. So much manual control was required anyhow so that diff was pretty much +- 0.