lark-parser / lark-parser/lark
question: is incremental parsing possible?
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 6k
- Forks
- 523
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 2
Description
I have the use case where I need to parse a text line by line. At the first line, the parser can start at its start position. At the end of the line, the parser should store its state (e.g. in which context is is) in a hashable object. When parsing any line that is not the first line, the state of the end of the previous line is restored and the current line is parsed.
(This is how QSyntaxHighlighter (from Qt) is organized. When the user types in a certain line, that line is re-highlighted. And when its state at the end is different than it was beforehand, the next line is also re-highlighted, and so on.)
Would this be possible using the lark parser? From my own experimentation and docs reading I can only parse a full text (or file) in one go.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing how the Lark parser currently handles the start position and full-text or full-file parsing. Compare that behavior with the requested line-by-line state restoration used by QSyntaxHighlighter. Done means establishing whether incremental parsing is feasible and documenting the required scope or limitations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 18/100