Using attributed grammars to test designs and implementations | Synapse