def p_alphabet(p): """alphabet : BO ALPHABET alphabet_components BC""" g = Model.Alphabet() # build the grammar from the properties defined # down the tree for k, v in p[3].items(): if k == 'name': g.setName(v) elif k == 'tokens': g.setTokens(v) elif k == 'complements': g.setComplements(v) elif k == 'extend': for kk, vv in v.items(): g.addExtension(kk, vv) elif k == 'wildcard': g.setWildcard(v) p[0] = g