---
generated_at: 2026-02-17 11:00:00
metrics:
  claims_total: 42
  claims_with_evidence: 42
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：3-パーサー（構文解析）

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：42 / 42、根拠なし：0
- 優先レビュー（高）
  1. なし（全て根拠あり）

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `compiler/parser.nim` - パーサー本体ソースコード
- E-02: `機能一覧.csv` - 機能定義
- E-03: `compiler/parser.nim` 10-15行目 - 設計コメント
- E-04: `compiler/parser.nim` 68-84行目 - Parser定義
- E-05: `compiler/parser.nim` 149-168行目 - open/closeParser
- E-06: `compiler/parser.nim` 133-147行目 - getTok
- E-07: `compiler/parser.nim` 1317-1347行目 - parseExpr
- E-08: `compiler/parser.nim` 970-988行目 - simpleExpr
- E-09: `compiler/parser.nim` 945-968行目 - parseOperators
- E-10: `compiler/parser.nim` 1353-1407行目 - primary
- E-11: `compiler/parser.nim` 731-847行目 - identOrLiteral
- E-12: `compiler/lexer.nim` 970-1010行目 - getPrecedence

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | パーサーはトークン列からASTを構築する | E-02 | ○ |
| C-02 | 文法はdoc/grammar.txtに反映される | E-03（10-15行目） | ○ |
| C-03 | 効率的な演算子優先順位アルゴリズム | E-03（13行目） | ○ |
| C-04 | Parser構造体にcurrInd、lex、tok等 | E-04 | ○ |
| C-05 | inPragmaでプラグマ内解析を追跡 | E-04（79行目） | ○ |
| C-06 | nimpretty用のemフィールド | E-04（83-84行目） | ○ |
| C-07 | openParserでパーサー初期化 | E-05（149-164行目） | ○ |
| C-08 | closeParserでレキサークローズ | E-05（166-168行目） | ○ |
| C-09 | getTokでレキサーからトークン取得 | E-06 | ○ |
| C-10 | rawGetTokを呼び出す | E-06（139行目） | ○ |
| C-11 | parseExprで式解析開始 | E-07 | ○ |
| C-12 | block/if/for/when/case/tryで分岐 | E-07（1325-1346行目） | ○ |
| C-13 | simpleExprで演算子式を解析 | E-08 | ○ |
| C-14 | simpleExprAuxでprimaryとparseOperators | E-08（972行目、981行目） | ○ |
| C-15 | parseOperatorsで演算子優先順位に基づく解析 | E-09 | ○ |
| C-16 | opPrec >= limitでループ継続 | E-09（953行目） | ○ |
| C-17 | primaryで一次式を解析 | E-10 | ○ |
| C-18 | 前置演算子の処理 | E-10（1366-1383行目） | ○ |
| C-19 | proc/func/iterator/tupleなどに分岐 | E-10（1385-1407行目） | ○ |
| C-20 | identOrLiteralで識別子・リテラル解析 | E-11 | ○ |
| C-21 | 各種リテラルトークンの処理 | E-11（751-827行目） | ○ |
| C-22 | parsePar for括弧式 | E-11（830-835行目） | ○ |
| C-23 | getPrecedenceで優先順位計算 | E-12 | ○ |
| C-24 | $,^が優先順位10 | E-12（987行目） | ○ |
| C-25 | *,%,/,\が優先順位9 | E-12（988行目） | ○ |
| C-26 | div,mod,shl,shrが優先順位9 | E-12（1005行目） | ○ |
| C-27 | +,-,|が優先順位8 | E-12（990行目） | ○ |
| C-28 | &が優先順位7 | E-12（991行目） | ○ |
| C-29 | .が優先順位6 | E-12（993行目、1006行目） | ○ |
| C-30 | =,<,>,!が優先順位5 | E-12（992行目） | ○ |
| C-31 | in,notin,is,isnot,of,asが優先順位5 | E-12（1007行目） | ○ |
| C-32 | andが優先順位4 | E-12（1008行目） | ○ |
| C-33 | or,xorが優先順位3 | E-12（1009行目） | ○ |
| C-34 | isRightAssociativeで右結合判定 | E-01（299-302行目） | ○ |
| C-35 | ^で始まる演算子は右結合 | E-01（301行目） | ○ |
| C-36 | primarySuffixで後置演算 | E-01（883-943行目） | ○ |
| C-37 | namedParamsで関数呼び出し | E-01（849-855行目） | ○ |
| C-38 | dotExprでドット演算 | E-01（515-533行目） | ○ |
| C-39 | parsePragmaでプラグマ解析 | E-01（990-1018行目） | ○ |
| C-40 | parseTypeDescで型記述解析 | E-01（1422-1458行目） | ○ |
| C-41 | parseTupleでタプル型解析 | E-01（1089-1132行目） | ○ |
| C-42 | parseParamListでパラメータリスト解析 | E-01（1134-1184行目） | ○ |

## 4) 不足情報（Unknown / Missing）
- なし（全ての主張に根拠あり）

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全ての主張がソースコードで確認可能

## 6) レビュアーチェックリスト（最小）
- [ ] Parser構造体のフィールドが正しく説明されているか確認
- [ ] 演算子優先順位表がgetPrecedence実装と一致するか確認
- [ ] 式解析の階層（parseExpr → simpleExpr → primary → identOrLiteral）が正確か確認
- [ ] コードリーディングガイドの行番号が現在のソースコードと一致するか確認
- [ ] 文法コメント（#|）の説明が正確か確認
