Many games involve rolling dice. In particular, RPGs tend to use many different kinds of dice, and they have elaborate rules for rolling them. There are various popular syntaxes for dice, including:
From a programming language standpoint, these expressions are fascinatingly complex. This repository contains some personal experiments for parsing these expressions.
This repository is also a demonstration of how to implement a toy programming language in Rust, including parsing and pretty error messages.
I do not expect this utility to be useful for anyone but me at this point.