From 0756bf12d10cf1b7f78c571de0a9ad69cbaeb7ca Mon Sep 17 00:00:00 2001
From: curtis <curtis@i-mps.com>
Date: 星期一, 30 三月 2026 14:24:17 +0800
Subject: [PATCH] fix: 更新內部引用方法參照

---
 scripts/scanimpl_annalysis_extract_methods.js |   40 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/scripts/scanimpl_annalysis_extract_methods.js b/scripts/scanimpl_annalysis_extract_methods.js
new file mode 100644
index 0000000..83aea3e
--- /dev/null
+++ b/scripts/scanimpl_annalysis_extract_methods.js
@@ -0,0 +1,40 @@
+const fs = require('fs');
+const path = require('path');
+
+const sourceFile = 'CB_IMGPSScanImp.pas.bk';
+const base_path = 'doc/curtis/prompt/scanimpl_analysis';
+const outputFile = path.join(base_path, 'step1_raw_methods.json');
+
+function extract() {
+  const lines = fs.readFileSync(sourceFile, 'utf8').split('\n');
+  const totalLines = lines.length;
+  const methods = [];
+  const regex = /^(procedure|function)\s+TCB_IMGPSScanX\./i;
+
+  for (let i = 0; i < totalLines; i++) {
+    const line = lines[i];
+    if (regex.test(line)) {
+      methods.push({
+        matcher: line.trim(),
+        lIndex: i + 1,
+        rIndex: -1 // To be filled
+      });
+    }
+  }
+
+  for (let i = 0; i < methods.length; i++) {
+    if (i < methods.length - 1) {
+      methods[i].rIndex = methods[i + 1].lIndex - 1;
+    } else {
+      methods[i].rIndex = totalLines;
+    }
+  }
+
+  if (!fs.existsSync(base_path)) {
+    fs.mkdirSync(base_path, {recursive: true});
+  }
+  fs.writeFileSync(outputFile, JSON.stringify(methods, null, 2), 'utf8');
+  console.log(`Extracted ${methods.length} methods to ${outputFile}`);
+}
+
+extract();

--
Gitblit v1.8.0