feat: complete INSPECT/SEARCH support, fix PERFORM/EVAL coverage marking

- Add INSPECT (TALLYING/REPLACING/CONVERTING) with BEFORE/AFTER INITIAL
- Add SEARCH/SEARCH ALL with element-assignment path enumeration
- Fix _mark_perform compound condition marking via evaluate_tree
- Fix EVALUATE TRUE prior_false to collect all MC/DC false sets
- Add impossible path filtering (Pass A.5) with trace-to-root conflict detection
- Fix multi-line PERFORM VARYING parsing (VARYING/FROM/BY/UNTIL on separate lines)
- Remove dead code: agents.py LLM parser (replaced by rule-based _BrParser)
- 59 unit tests passing, 5 integration programs verified
This commit is contained in:
hangshuo652
2026-06-10 22:56:22 +08:00
parent 0730045e27
commit 7ac887c776
9 changed files with 509 additions and 1005 deletions
+12
View File
@@ -115,6 +115,18 @@ class CondOr:
self.right = right
class BrSearch:
"""SEARCH / SEARCH ALL 表查找"""
def __init__(self, table_name, is_all=False, varying=None):
self.table_name = table_name
self.is_all = is_all
self.varying = varying.upper() if varying else None
self.at_end_seq = BrSeq()
self.when_list = [] # [(condition_text, BrSeq)]
self.cond_trees = [] # [cond_tree, ...]
self.has_at_end = False
class GoTo:
"""GO TO 节点:无条件跳转到指定段落"""
def __init__(self, target: str, body_seq: 'BrSeq' = None):