Well, that's true, but I meant to convey that no grammatical entity is the base class of another entity, so it's a flat inheritance tree in that respect. ASTNode would not be something that the parser would know anything about.
I guess that's sort of moot if your expression trees are just a contrived example; in that case, I'd say that how deep you want your inheritance hierarchy to be depends entirely on how your program wants to use it. -- http://mail.python.org/mailman/listinfo/python-list