Or see a more complete implementation of English blazonry here https://drawshield.net (disclaimer I am the creator of this site, and to follow up a point below, yes, I did approach Blazonry as a programming language)