Represents a formatting template where there can be some variables (starting with $, e.g., $style, $text, etc.) that will be replaced with specific elements, e.g., the actual style for the formatting, the text to format, etc. More...

Typedef Documentation

We need to use shared pointers because if we need to substitute some variables in a rule, we need to create a brand new copy of it, while we keep on using the same rules that do not need substitutions. Using shared pointers will automatically keep track of those that need to be removed.