IronLanguages / IronLanguages/ironpython3
Issue: Cascading Errors in IronPython Parser
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 2.8k
- Forks
- 316
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 1
Description
When parsing Python scripts using IronPython’s parser, we observe that a single syntax error (such as a missing quote in a print() statement) sometimes causes multiple errorrx. Instead of reporting only the actual error line, the parser marks all subsequent statements as erroneous. This cascading error behavior is inconsistent and seems to occur mostly with statements involving parentheses or quotation marks (e.g., print(),write(),sys.stdout.write("Hello ") etc).
using (IronPython.Compiler.Parser parser = IronPython.Compiler.Parser.CreateParser(context, new PythonOptions()))
Observed Behavior
A single syntax error (e.g., missing quote in print("Hello)) causes error highlights on all subsequent lines.
This does not happen for all types of syntax errors.
The issue is most frequent with print() .stdout.write("Hello " ,etc statements and string literals.
Expected Behavior
Only the actual error line should be highlighted.
The parser should recover gracefully and not cascade errors to subsequent lines.
Contributor guide
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 with the shown IronPython.Compiler.Parser.CreateParser entry point and reproduce the missing-quote case using PythonOptions. Compare the reported error locations for the sample print() and stdout.write() statements. Done means the original syntax error is reported without marking subsequent statements as erroneous.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, python
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100