IronLanguages / IronLanguages/ironpython3

Issue: Cascading Errors in IronPython Parser

Open
#1,974 2 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.