---
generated_at: 2026-03-01 10:00:00
metrics:
  claims_total: 160
  claims_with_evidence: 158
  claims_without_evidence: 2
confidence_derived: 0.99
---

# 根拠レポート：babel-parser単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.99**
  - 根拠あり：158 / 160、根拠なし：2
- 優先レビュー（高）
  1. **UT-PAR-153/154 functionFlags**: ヘルパー関数の詳細実装確認要
  2. **expression/statement パース関連**: 大規模ファイルのため一部詳細未確認

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

- E-01: `packages/babel-parser/src/index.ts` - メインエントリポイント（parse, parseExpression, getParser, generateExportedTokenTypes）
- E-02: `packages/babel-parser/src/options.ts` - オプション処理（getOptions, createDefaultOptions, OptionFlags）
- E-03: `packages/babel-parser/src/plugin-utils.ts` - プラグイン検証（validatePlugins, mixinPlugins）
- E-04: `packages/babel-parser/src/parse-error.ts` - エラー定義（ParseErrorEnum, toParseErrorConstructor, Errors）
- E-05: `packages/babel-parser/src/parser/index.ts` - Parserクラス（constructor, parse, getScopeHandler）
- E-06: `packages/babel-parser/src/parser/base.ts` - BaseParserクラス（sourceToOffsetPos, hasPlugin, getPluginOption）
- E-07: `packages/babel-parser/src/parser/util.ts` - UtilParserクラス（addExtra, isContextual, canInsertSemicolon, expect, tryParse等）
- E-08: `packages/babel-parser/src/parser/node.ts` - NodeUtils, Nodeクラス（startNode, finishNode, cloneIdentifier等）
- E-09: `packages/babel-parser/src/tokenizer/index.ts` - Tokenizerクラス（next, eat, match, lookahead, readNumber, readString等）
- E-10: `packages/babel-parser/src/tokenizer/state.ts` - Stateクラス（init, clone, curPosition）
- E-11: `packages/babel-parser/src/tokenizer/types.ts` - トークンタイプ定義（ExportedTokenType, tokenIsIdentifier等）
- E-12: `packages/babel-parser/src/util/location.ts` - 位置情報（Position, SourceLocation, createPositionWithColumnOffset）
- E-13: `packages/babel-parser/src/util/scope.ts` - スコープ管理（Scope, ScopeHandler）
- E-14: `packages/babel-parser/src/util/class-scope.ts` - クラススコープ（ClassScope, ClassScopeHandler）
- E-15: `packages/babel-parser/src/util/whitespace.ts` - 空白処理（isNewLine, hasNewLine, isWhitespace）
- E-16: `packages/babel-parser/src/util/identifier.ts` - 識別子処理（isIteratorStart, canBeReservedWord）
- E-17: `packages/babel-parser/src/util/expression-scope.ts` - 式スコープ（ExpressionScope, ExpressionScopeHandler）
- E-18: `packages/babel-parser/src/util/production-parameter.ts` - プロダクションパラメータ（ProductionParameterHandler, functionFlags）
- E-19: `packages/babel-parser/src/parser/comments.ts` - コメント処理（CommentsParser）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | parse関数が有効なJavaScriptコードをパースできる | E-01 (index.ts:41-86) | ○ |
| C-02 | sourceType: 'module'でESモジュールをパースできる | E-01 (index.ts:41-86) | ○ |
| C-03 | sourceType: 'unambiguous'でモジュール判定が正しく行われる | E-01 (index.ts:45-82) | ○ |
| C-04 | sourceType: 'unambiguous'でスクリプト判定が正しく行われる | E-01 (index.ts:68-74) | ○ |
| C-05 | 構文エラーのあるコードでSyntaxErrorがスローされる | E-01, E-04 | ○ |
| C-06 | errorRecoveryオプションでエラー情報が配列に格納される | E-01 (index.ts:81-85) | ○ |
| C-07 | parseExpressionが有効な式をパースできる | E-01 (index.ts:88-97) | ○ |
| C-08 | strictModeオプションが適用される | E-01 (index.ts:93-95) | ○ |
| C-09 | プラグイン指定でパーサークラスが正しく構成される | E-01 (index.ts:113-136) | ○ |
| C-10 | 内部トークンタイプがエクスポート用に変換される | E-01 (index.ts:99-111) | ○ |
| C-11 | nullオプションでデフォルト値が返却される | E-02 (options.ts:240-248) | ○ |
| C-12 | カスタムオプションがマージされる | E-02 (options.ts:253-256) | ○ |
| C-13 | annexB: trueでエラーがスローされる | E-02 (options.ts:249-251) | ○ |
| C-14 | startLine > 1でstartIndex/startColumnが未指定の場合エラー | E-02 (options.ts:263-267) | ○ |
| C-15 | commonjsでallowAwaitOutsideFunctionが指定された場合エラー | E-02 (options.ts:269-285) | ○ |
| C-16 | startLine=1でstartIndex/startColumnが相互補完される | E-02 (options.ts:257-262) | ○ |
| C-17 | 有効なプラグイン構成で検証が通る | E-03 (plugin-utils.ts:13-139) | ○ |
| C-18 | decoratorsとdecorators-legacyの同時使用でエラー | E-03 (plugin-utils.ts:14-20) | ○ |
| C-19 | flowとtypescriptの同時使用でエラー | E-03 (plugin-utils.ts:22-24) | ○ |
| C-20 | placeholdersとv8intrinsicの同時使用でエラー | E-03 (plugin-utils.ts:26-28) | ○ |
| C-21 | pipelineOperatorで無効なproposalが指定された場合エラー | E-03 (plugin-utils.ts:30-38) | ○ |
| C-22 | hack pipelineで無効なtopicTokenが指定された場合エラー | E-03 (plugin-utils.ts:53-61) | ○ |
| C-23 | asyncDoExpressionsがdoExpressionsなしで使用された場合エラー | E-03 (plugin-utils.ts:96-106) | ○ |
| C-24 | 削除済みプラグイン(moduleAttributes)でエラー | E-03 (plugin-utils.ts:65-69) | ○ |
| C-25 | 静的メッセージでエラーコンストラクタが生成される | E-04 (parse-error.ts:190-227) | ○ |
| C-26 | 動的メッセージ関数でエラーコンストラクタが生成される | E-04 (parse-error.ts:190-227) | ○ |
| C-27 | エラーオブジェクトが正しい属性を持つ | E-04 (parse-error.ts:75-125) | ○ |
| C-28 | cloneメソッドでエラーが複製できる | E-04 (parse-error.ts:101-107) | ○ |
| C-29 | パーサーが正しく初期化される | E-05 (parser/index.ts:9-69) | ○ |
| C-30 | トップレベルプログラムがパースされる | E-05 (parser/index.ts:76-86) | ○ |
| C-31 | デフォルトのScopeHandlerクラスが返却される | E-05 (parser/index.ts:72-74) | ○ |
| C-32 | ソース位置がオフセット位置に変換される | E-06 (parser/base.ts:42-44) | ○ |
| C-33 | オフセット位置がソース位置に変換される | E-06 (parser/base.ts:46-48) | ○ |
| C-34 | 文字列プラグイン名で存在確認できる | E-06 (parser/base.ts:54-72) | ○ |
| C-35 | 配列形式でプラグインオプションも確認できる | E-06 (parser/base.ts:54-72) | ○ |
| C-36 | 存在しないプラグインでfalseが返却される | E-06 (parser/base.ts:54-72) | ○ |
| C-37 | プラグインオプションが取得できる | E-06 (parser/base.ts:74-81) | ○ |
| C-38 | ノードにextra情報が追加される | E-07 (parser/util.ts:48-67) | ○ |
| C-39 | nodeがnullの場合何も行わない | E-07 (parser/util.ts:54) | ○ |
| C-40 | コンテキストキーワードが正しく判定される | E-07 (parser/util.ts:71-73) | ○ |
| C-41 | エスケープを含む場合falseが返却される | E-07 (parser/util.ts:72) | ○ |
| C-42 | 未パース文字列がコンテキストキーワードか判定できる | E-07 (parser/util.ts:75-87) | ○ |
| C-43 | EOFでtrueが返却される | E-07 (parser/util.ts:120-126) | ○ |
| C-44 | 閉じ波括弧でtrueが返却される | E-07 (parser/util.ts:120-126) | ○ |
| C-45 | 改行後でtrueが返却される | E-07 (parser/util.ts:120-126) | ○ |
| C-46 | セミコロンが消費される | E-07 (parser/util.ts:147-150) | ○ |
| C-47 | ASI不可でセミコロンがない場合エラー | E-07 (parser/util.ts:149) | ○ |
| C-48 | 期待するトークンが消費される | E-07 (parser/util.ts:155-159) | ○ |
| C-49 | 期待しないトークンでunexpectedエラー | E-07 (parser/util.ts:157) | ○ |
| C-50 | パース成功時にノードが返却される | E-07 (parser/util.ts:163-221) | ○ |
| C-51 | パース失敗時にエラー情報が返却される | E-07 (parser/util.ts:202-208) | ○ |
| C-52 | abortでパースが中断される | E-07 (parser/util.ts:209-216) | ○ |
| C-53 | リテラルプロパティ名が判定される | E-07 (parser/util.ts:277-279) | ○ |
| C-54 | PrivateNameノードが正しく判定される | E-07 (parser/util.ts:285-287) | ○ |
| C-55 | スコープが正しく初期化される | E-07 (parser/util.ts:321-361) | ○ |
| C-56 | 初期スコープが正しく設定される | E-07 (parser/util.ts:363-394) | ○ |
| C-57 | 全プロパティがnullで初期化される | E-07 (parser/util.ts:417-423) | ○ |
| C-58 | ノードが正しく初期化される | E-08 (parser/node.ts:16-26) | ○ |
| C-59 | rangesオプションでrange配列が設定される | E-08 (parser/node.ts:22) | ○ |
| C-60 | 現在位置でノードが開始される | E-08 (parser/node.ts:42-45) | ○ |
| C-61 | 指定位置でノードが開始される | E-08 (parser/node.ts:47-49) | ○ |
| C-62 | ノードにtypeとendが設定される | E-08 (parser/node.ts:60-62) | ○ |
| C-63 | 指定位置でノードが終了される | E-08 (parser/node.ts:66-85) | ○ |
| C-64 | ノードの開始位置がリセットされる | E-08 (parser/node.ts:87-91) | ○ |
| C-65 | Identifierノードが複製される | E-08 (parser/node.ts:117-131) | ○ |
| C-66 | トークンが正しく初期化される | E-09 (tokenizer/index.ts:66-81) | ○ |
| C-67 | トークナイザーが正しく初期化される | E-09 (tokenizer/index.ts:91-99) | ○ |
| C-68 | 次のトークンに進む | E-09 (tokenizer/index.ts:111-120) | ○ |
| C-69 | マッチするトークンが消費される | E-09 (tokenizer/index.ts:122-129) | ○ |
| C-70 | マッチしないトークンでfalseが返却される | E-09 (tokenizer/index.ts:122-129) | ○ |
| C-71 | トークンタイプがマッチする | E-09 (tokenizer/index.ts:134-136) | ○ |
| C-72 | 先読みで次のトークン情報が取得できる | E-09 (tokenizer/index.ts:171-183) | ○ |
| C-73 | 次のトークン開始位置が取得できる | E-09 (tokenizer/index.ts:185-192) | ○ |
| C-74 | strictモードが設定される | E-09 (tokenizer/index.ts:248-259) | ○ |
| C-75 | strictモード設定時に保留エラーがスローされる | E-09 (tokenizer/index.ts:250-258) | ○ |
| C-76 | ブロックコメントがスキップされる | E-09 (tokenizer/index.ts:282-316) | ○ |
| C-77 | 閉じられていないコメントでエラー | E-09 (tokenizer/index.ts:287-291) | ○ |
| C-78 | 行コメントがスキップされる | E-09 (tokenizer/index.ts:318-346) | ○ |
| C-79 | 空白がスキップされる | E-09 (tokenizer/index.ts:351-465) | ○ |
| C-80 | トークンが正しく終了される | E-09 (tokenizer/index.ts:472-482) | ○ |
| C-81 | プライベート名が読み取れる | E-09 (tokenizer/index.ts:501-524) | ○ |
| C-82 | シェバングが読み取れる | E-09 (tokenizer/index.ts:554-572) | ○ |
| C-83 | ドットトークンが読み取れる | E-09 (tokenizer/index.ts:526-543) | ○ |
| C-84 | 数値が続く場合は数値として読み取れる | E-09 (tokenizer/index.ts:527-531) | ○ |
| C-85 | ellipsisが読み取れる | E-09 (tokenizer/index.ts:533-538) | ○ |
| C-86 | 整数が読み取れる | E-09 (tokenizer/index.ts:1129-1207) | ○ |
| C-87 | 浮動小数点数が読み取れる | E-09 (tokenizer/index.ts:1161-1166) | ○ |
| C-88 | 指数表記が読み取れる | E-09 (tokenizer/index.ts:1168-1181) | ○ |
| C-89 | BigIntが読み取れる | E-09 (tokenizer/index.ts:1186-1194) | ○ |
| C-90 | 数値セパレータが処理される | E-09 (tokenizer/index.ts:1184) | ○ |
| C-91 | 16進数が読み取れる | E-09 (tokenizer/index.ts:1090-1125) | ○ |
| C-92 | 8進数が読み取れる | E-09 (tokenizer/index.ts:1090-1125) | ○ |
| C-93 | 2進数が読み取れる | E-09 (tokenizer/index.ts:1090-1125) | ○ |
| C-94 | ダブルクォート文字列が読み取れる | E-09 (tokenizer/index.ts:1224-1237) | ○ |
| C-95 | シングルクォート文字列が読み取れる | E-09 (tokenizer/index.ts:1224-1237) | ○ |
| C-96 | エスケープシーケンスが処理される | E-09 (tokenizer/index.ts:1224-1237) | ○ |
| C-97 | 正規表現が読み取れる | E-09 (tokenizer/index.ts:981-1057) | ○ |
| C-98 | 閉じられていない正規表現でエラー | E-09 (tokenizer/index.ts:987-1000) | ○ |
| C-99 | 重複フラグでエラー | E-09 (tokenizer/index.ts:1039-1041) | ○ |
| C-100 | テンプレートリテラルが読み取れる | E-09 (tokenizer/index.ts:1250-1285) | ○ |
| C-101 | テンプレート式が読み取れる | E-09 (tokenizer/index.ts:1278-1283) | ○ |
| C-102 | 識別子が読み取れる | E-09 (tokenizer/index.ts:1306-1348) | ○ |
| C-103 | Unicodeエスケープが処理される | E-09 (tokenizer/index.ts:1319-1342) | ○ |
| C-104 | キーワードが正しく判定される | E-09 (tokenizer/index.ts:1353-1363) | ○ |
| C-105 | エラーがスローされる | E-09 (tokenizer/index.ts:1386-1398) | ○ |
| C-106 | errorRecoveryモードでエラーが配列に格納される | E-09 (tokenizer/index.ts:1394-1395) | ○ |
| C-107 | 予期しないトークンエラーがスローされる | E-09 (tokenizer/index.ts:1431-1439) | ○ |
| C-108 | プラグインが存在する場合trueが返却される | E-09 (tokenizer/index.ts:1441-1453) | ○ |
| C-109 | プラグインがない場合エラーがスローされる | E-09 (tokenizer/index.ts:1446-1452) | ○ |
| C-110 | 状態が正しく初期化される | E-10 (tokenizer/state.ts:34-56) | ○ |
| C-111 | sourceType: 'module'でstrict=trueになる | E-10 (tokenizer/state.ts:41-46) | ○ |
| C-112 | 状態が正しく複製される | E-10 (tokenizer/state.ts:165-193) | ○ |
| C-113 | 現在位置のPositionが生成される | E-10 (tokenizer/state.ts:157-163) | ○ |
| C-114 | トークンタイプが正しく初期化される | E-11 (tokenizer/types.ts:48-72) | ○ |
| C-115 | 識別子トークンが判定される | E-11 (tokenizer/types.ts:338-340) | ○ |
| C-116 | キーワードトークンが判定される | E-11 (tokenizer/types.ts:376-378) | ○ |
| C-117 | 代入トークンが判定される | E-11 (tokenizer/types.ts:364-366) | ○ |
| C-118 | 演算子優先度が取得できる | E-11 (tokenizer/types.ts:404-406) | ○ |
| C-119 | Positionが正しく初期化される | E-12 (util/location.ts:8-18) | ○ |
| C-120 | SourceLocationが正しく初期化される | E-12 (util/location.ts:20-31) | ○ |
| C-121 | オフセット付きPositionが生成される | E-12 (util/location.ts:39-45) | ○ |
| C-122 | スコープが正しく初期化される | E-13 (util/scope.ts:17-25) | ○ |
| C-123 | スコープスタックにプッシュされる | E-13 (util/scope.ts:91-95) | ○ |
| C-124 | スコープスタックからポップされる | E-13 (util/scope.ts:97-100) | ○ |
| C-125 | 変数名がスコープに登録される | E-13 (util/scope.ts:112-149) | ○ |
| C-126 | 重複宣言でエラーが発生する | E-13 (util/scope.ts:157-168) | ○ |
| C-127 | 未定義エクスポートが記録される | E-13 (util/scope.ts:203-209) | ○ |
| C-128 | トップレベルスコープが判定される | E-13 (util/scope.ts:40-42) | ○ |
| C-129 | 関数スコープが判定される | E-13 (util/scope.ts:43-45) | ○ |
| C-130 | クラススコープが正しく初期化される | E-14 (util/class-scope.ts:6-16) | ○ |
| C-131 | クラススコープがスタックにプッシュされる | E-14 (util/class-scope.ts:31-33) | ○ |
| C-132 | プライベート名が登録される | E-14 (util/class-scope.ts:57-94) | ○ |
| C-133 | 重複プライベート名でエラー | E-14 (util/class-scope.ts:86-90) | ○ |
| C-134 | プライベート名の使用が検証される | E-14 (util/class-scope.ts:96-110) | ○ |
| C-135 | 未定義プライベート名でエラー | E-14 (util/class-scope.ts:105-108) | ○ |
| C-136 | 改行文字が判定される | E-15 (util/whitespace.ts:9-20) | ○ |
| C-137 | CR+LFが判定される | E-15 (util/whitespace.ts:9-20) | ○ |
| C-138 | 範囲内に改行があればtrueが返却される | E-15 (util/whitespace.ts:22-29) | ○ |
| C-139 | 範囲内に改行がなければfalseが返却される | E-15 (util/whitespace.ts:22-29) | ○ |
| C-140 | 空白文字が判定される | E-15 (util/whitespace.ts:37-65) | ○ |
| C-141 | タブ文字が判定される | E-15 (util/whitespace.ts:37-65) | ○ |
| C-142 | イテレータ開始が判定される | E-16 (util/identifier.ts:18-28) | ○ |
| C-143 | 予約語候補が判定される | E-16 (util/identifier.ts:89-91) | ○ |
| C-144 | 非予約語がfalseになる | E-16 (util/identifier.ts:89-91) | ○ |
| C-145 | アロー関数パラメータ候補スコープが判定される | E-17 (util/expression-scope.ts:65-70) | ○ |
| C-146 | 式スコープがスタックにプッシュされる | E-17 (util/expression-scope.ts:122-124) | ○ |
| C-147 | パラメータ初期化エラーが記録される | E-17 (util/expression-scope.ts:137-156) | ○ |
| C-148 | パターン検証でエラーがスローされる | E-17 (util/expression-scope.ts:213-227) | ○ |
| C-149 | パラメータ宣言スコープが生成される | E-17 (util/expression-scope.ts:230-232) | ○ |
| C-150 | プロダクションパラメータがスタックにプッシュされる | E-18 (util/production-parameter.ts:39-41) | ○ |
| C-151 | awaitフラグが判定される | E-18 (util/production-parameter.ts:51-53) | ○ |
| C-152 | yieldフラグが判定される | E-18 (util/production-parameter.ts:55-57) | ○ |
| C-153 | async関数でPARAM_AWAITが設定される | E-18 (util/production-parameter.ts:76-84) | △ |
| C-154 | ジェネレータ関数でPARAM_YIELDが設定される | E-18 (util/production-parameter.ts:76-84) | △ |
| C-155 | コメントが追加される | E-19 (parser/comments.ts:100-108) | ○ |
| C-156 | コメントがノードに関連付けられる | E-19 (parser/comments.ts:114-149) | ○ |
| C-157 | リーディングコメントが設定される | E-19 (parser/comments.ts:155-221) | ○ |
| C-158 | トレイリングコメントが設定される | E-19 (parser/comments.ts:155-221) | ○ |
| C-159 | 残りのコメントが処理される | E-19 (parser/comments.ts:230-236) | ○ |
| C-160 | 周囲のコメントがノードに関連付けられる | E-19 (parser/comments.ts:274-293) | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-153/C-154 (functionFlags)**: ヘルパー関数の詳細な動作確認が必要
  - 候補：実際のテスト実行 / async function / generator functionのパース検証

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 大部分のテストケースはソースコードから直接導出可能
- **1: 中リスク** - expression/statementパーサー関連は大規模なため、一部のエッジケースが漏れている可能性
- **0: 低リスク** - プラグイン（flow, typescript, jsx）のテストケースは本一覧の対象外（各プラグインのテストケースとして別途管理推奨）

## 6) レビュアーチェックリスト（最小）
- [ ] 高優先度テストケース（UT-PAR-001〜010）がコア機能を網羅しているか確認
- [ ] プラグイン検証テストケース（UT-PAR-017〜024）が全ての競合パターンをカバーしているか確認
- [ ] トークナイザーテストケース（UT-PAR-066〜109）が全トークンタイプをカバーしているか確認
- [ ] スコープ管理テストケース（UT-PAR-122〜135）が重複宣言検出を適切にテストしているか確認
- [ ] エラーリカバリモードのテストケースが十分にカバーされているか確認
