Skip to content

Commit 181e1e8

Browse files
committed
Updated Diagram logic
- Enhanced error handling for module imports with fallback stubs. - Updated diagram generation logic to utilize detailed diagram generation for better results. - Improved handling of various regex components in diagram generation, including escape sequences and group types.
1 parent 0cf7e80 commit 181e1e8

File tree

2 files changed

+89
-291
lines changed

2 files changed

+89
-291
lines changed

src/rexplain/cli/main.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,22 @@
1010
from rexplain.core.diagram import generate_railroad_diagram, generate_detailed_railroad_diagram
1111
from rexplain import __version__
1212
except ImportError as e:
13-
print("IMPORT ERROR:", e, file=sys.stderr)
14-
# Stubs for development if core modules are missing
15-
class RegexExplainer:
16-
def explain(self, pattern):
17-
return f"[Stub] Explanation for: {pattern}"
18-
class ExampleGenerator:
19-
def generate(self, pattern, count=3):
20-
return [f"example_{i+1}" for i in range(count)]
21-
class RegexTester:
22-
def test(self, pattern, string):
23-
return type('Result', (), {"matches": True, "reason": "[Stub] Always matches", "to_dict": lambda self: {"matches": True, "reason": "[Stub] Always matches"}})()
24-
def generate_railroad_diagram(pattern, output_path=None):
25-
return f"[Stub] Diagram for: {pattern}"
26-
def generate_detailed_railroad_diagram(pattern, output_path=None):
27-
return f"[Stub] Detailed diagram for: {pattern}"
28-
__version__ = "unknown"
13+
14+
# Stubs for development if core modules are missing
15+
class RegexExplainer:
16+
def explain(self, pattern):
17+
return f"[Stub] Explanation for: {pattern}"
18+
class ExampleGenerator:
19+
def generate(self, pattern, count=3):
20+
return [f"example_{i+1}" for i in range(count)]
21+
class RegexTester:
22+
def test(self, pattern, string):
23+
return type('Result', (), {"matches": True, "reason": "[Stub] Always matches", "to_dict": lambda self: {"matches": True, "reason": "[Stub] Always matches"}})()
24+
def generate_railroad_diagram(pattern, output_path=None):
25+
return f"[Stub] Diagram for: {pattern}"
26+
def generate_detailed_railroad_diagram(pattern, output_path=None):
27+
return f"[Stub] Detailed diagram for: {pattern}"
28+
__version__ = "unknown"
2929

3030
PROJECT_ABOUT = (
3131
"rexplain: Explain, test, and generate examples for regular expressions. "

0 commit comments

Comments
 (0)