Uh oh!
There was an error while loading. Please reload this page.
gh-127833: Use productionlist nodes to implement the grammar-snippet directive - #130376
Conversation
encukou
left a comment
There was a problem hiding this comment.
Thank you! This looks like the way to go. I left a few notes inline.
conf.py still has needs_sphinx = '8.1.3', and I got a very worrying result with that version: the entire reference directory was missing, without any error message I could see. Is that something you want to look into?
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
encukou
commented
Feb 26, 2025
The extension defines two directives, one with the new syntax but also a I added code to merge the lines of each multi-line production into a single production node. |
Uh oh!
There was an error while loading. Please reload this page.
encukou
commented
Mar 5, 2025
OK, now each production should should have complete rawsource. |
AA-Turner
commented
Mar 12, 2025
Sorry for the delay on my part. I've refactored to split the parsing of content lines into individual productions into its own method, as I think it is sufficiently complex to warrant a dedicated function (and this massively simplifies the creation of the actual production node). One open question is if A |
encukou
commented
Mar 17, 2025
Don't worry about delays; I've had more important things to deal with too :) Do you think a I think Enum would be overengineering; we'd need to duplicate the names from the regex (unless we build the regex from the enum -- more overengineering). |
encukou
commented
Mar 19, 2025
I've pushed this change to the PR, and updated the branch to fix a conflict. |
AA-Turner
commented
Mar 19, 2025
@encukou I don't see any new commits... |
encukou
commented
Mar 20, 2025
I think that was a GitHub glitch. |
Split into individual commits for readability. I contend that
productionlistnodes are semantically the right thing to use here, the only reason we didn't before was due to a limitation in Sphinx.A
📚 Documentation preview 📚: https://cpython-previews--130376.org.readthedocs.build/