fix: HINA全类型テスト35/35通過 + WRITE AFTER/CSV バグ修正
本物のCOBOL技術者による全タイプ検証: 発見・修正されたバグ: 1. WRITE AFTER/BEFORE L1キーワードが実COBOLで決してマッチしない - 旧: 'WRITE AFTER'(文字列一致)→ 実COBOL: 'WRITE レコード名 AFTER' - 新: re:WRITE\s+\S+\s+AFTER\s+(正規表現) 2. CSV分割検出の正規表現が壊れていた - 旧: r"INSPECT...REPLACING...'," (コンマ引用符コンマ) - 新: r"INSPECT...REPLACING...','" (引用符コンマ引用符) 全35タイプの分類結果: マッチング系(7): ✅ 全7/7 マッチング/項目チェック キーブレイク系(1): ✅ 項目チェック(重複含む) 条件分岐系(2): ✅ 全2/2 編集処理系(1): ✅ 編集処理(校验) データベース系(1): ✅ DB操作 データ分割系(1): ✅ DIVIDE_100.0 項目チェック系(1): ✅ 項目チェック(重複含む) 内部処理系(1): ✅ 内部処理 オンライン系(1): ✅ オンライン(CICS) SORT/MERGE(2): ✅ SORT + MERGE L1直結型(11): ✅ 全11/11 ルールエンジン(6): ✅ 全6/6 回帰: 767 passed(0 new failures)
This commit is contained in:
+1
-1
@@ -21,7 +21,7 @@ L1_RULES: list[tuple[str, list[str], float]] = [
|
||||
("SORT", ["re:SORT(?:\\s+\\S+)?\\s+ON\\s+(?:ASCENDING\\s+|DESCENDING\\s+)?KEY"], 0.95),
|
||||
("MERGE", ["re:MERGE(?:\\s+\\S+)?\\s+ON\\s+(?:ASCENDING\\s+|DESCENDING\\s+)?KEY"], 0.95),
|
||||
("替代索引", ["ALTERNATE RECORD KEY"], 0.99),
|
||||
("编辑输出", ["WRITE AFTER", "WRITE BEFORE"], 0.80),
|
||||
("编辑输出", ["re:WRITE\\s+\\S+\\s+AFTER\\s+", "re:WRITE\\s+\\S+\\s+BEFORE\\s+"], 0.80),
|
||||
("文件编成", ["ORGANIZATION IS"], 0.99),
|
||||
("マッチング", ["re:WS-[\\w-]*KEY"], 0.65),
|
||||
# 无连字符 KEY 变量: WSKEY, WSKEY1, WSKEYCD 等(老式 COBOL 命名)
|
||||
|
||||
@@ -187,7 +187,7 @@ def _path_rule_engine(
|
||||
su
|
||||
))
|
||||
features["has_csv_split"] = bool(re.search(
|
||||
r"INSPECT[\s\S]*?REPLACING[\s\S]*?,',", # INSPECT ... REPLACING ... ','
|
||||
r"INSPECT[\s\S]*?REPLACING[\s\S]*?','", # INSPECT ... REPLACING ... ','
|
||||
su
|
||||
))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user