Remember that tree levels are generated by context free languages, not regular languages, and so they can only be recognized by push-down automatons, not finite state machines. What happened was that I failed to account for transparent rules. Without transparent rules the children of a tree node do not have any recursion in them (by definition!) and so therefore *are* a regular language. But transparent rules change that: there *can be* recursion hidden on the same tree level, and it should have been clear from a moment's reflection that the recursion there meant that tree levels were once again a context free language. Fortunately we have a recognizer for context free languages lying around, so we can just use that I guess. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| emacs.py | ||
| generated_source.py | ||
| parser.py | ||
| runtime.py | ||
| tree_sitter.py | ||
| wadler.py | ||