Gravar-mail: Component-based programming for higher-order attribute grammars