---
generated_at: 2026-02-19 10:30:00
metrics:
  claims_total: 120
  claims_with_evidence: 120
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：lexer.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：120 / 120、根拠なし：0
- 優先レビュー（高）
  1. 全てのテストケースがソースコードに基づいて生成されており、根拠不足の項目はありません

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

- E-01: `src/lexer.coffee` - Lexerクラス定義（25行目）
- E-02: `src/lexer.coffee` - tokenizeメソッド（37-92行目）
- E-03: `src/lexer.coffee` - cleanメソッド（97-114行目）
- E-04: `src/lexer.coffee` - identifierTokenメソッド（125-260行目）
- E-05: `src/lexer.coffee` - numberTokenメソッド（264-287行目）
- E-06: `src/lexer.coffee` - stringTokenメソッド（291-325行目）
- E-07: `src/lexer.coffee` - commentTokenメソッド（330-428行目）
- E-08: `src/lexer.coffee` - jsTokenメソッド（431-439行目）
- E-09: `src/lexer.coffee` - regexTokenメソッド（444-502行目）
- E-10: `src/lexer.coffee` - lineTokenメソッド（514-565行目）
- E-11: `src/lexer.coffee` - outdentTokenメソッド（569-596行目）
- E-12: `src/lexer.coffee` - whitespaceTokenメソッド（600-605行目）
- E-13: `src/lexer.coffee` - newlineTokenメソッド（608-611行目）
- E-14: `src/lexer.coffee` - suppressNewlinesメソッド（615-624行目）
- E-15: `src/lexer.coffee` - jsxTokenメソッド（626-741行目）
- E-16: `src/lexer.coffee` - atJSXTagメソッド（743-748行目）
- E-17: `src/lexer.coffee` - literalTokenメソッド（755-823行目）
- E-18: `src/lexer.coffee` - tagParametersメソッド（831-850行目）
- E-19: `src/lexer.coffee` - tagDoIifeメソッド（854-858行目）
- E-20: `src/lexer.coffee` - closeIndentationメソッド（861-862行目）
- E-21: `src/lexer.coffee` - matchWithInterpolationsメソッド（883-947行目）
- E-22: `src/lexer.coffee` - mergeInterpolationTokensメソッド（953-1020行目）
- E-23: `src/lexer.coffee` - pairメソッド（1024-1036行目）
- E-24: `src/lexer.coffee` - getLocationDataCompensationメソッド（1043-1054行目）
- E-25: `src/lexer.coffee` - getLineAndColumnFromChunkメソッド（1059-1087行目）
- E-26: `src/lexer.coffee` - makeLocationDataメソッド（1089-1103行目）
- E-27: `src/lexer.coffee` - makeTokenメソッド（1107-1112行目）
- E-28: `src/lexer.coffee` - tokenメソッド（1120-1124行目）
- E-29: `src/lexer.coffee` - tagメソッド（1127-1129行目）
- E-30: `src/lexer.coffee` - valueメソッド（1132-1137行目）
- E-31: `src/lexer.coffee` - prevメソッド（1140-1141行目）
- E-32: `src/lexer.coffee` - unfinishedメソッド（1144-1146行目）
- E-33: `src/lexer.coffee` - validateUnicodeCodePointEscapesメソッド（1148-1149行目）
- E-34: `src/lexer.coffee` - validateEscapesメソッド（1152-1169行目）
- E-35: `src/lexer.coffee` - suppressSemicolonsメソッド（1171-1174行目）
- E-36: `src/lexer.coffee` - errorメソッド（1178-1185行目）
- E-37: `src/lexer.coffee` - isUnassignable関数（1190-1198行目）
- E-38: `src/lexer.coffee` - isForFrom関数（1206-1217行目）
- E-39: `src/lexer.coffee` - addTokenData関数（1219-1220行目）
- E-40: `src/lexer.coffee` - 定数定義（JS_KEYWORDS, COFFEE_KEYWORDS等）（1226-1474行目）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | tokenizeメソッドが基本的なコードをトークン化する | E-02 | ○ |
| C-02 | tokenizeがliterateオプションを処理する | E-02 (38行目) | ○ |
| C-03 | tokenizeがrewrite=offでRewriterをスキップする | E-02 (91行目) | ○ |
| C-04 | tokenizeがuntilBalancedオプションで部分トークン化する | E-02 (87行目) | ○ |
| C-05 | tokenizeが閉じられていないブロックでエラーを発生させる | E-02 (90行目) | ○ |
| C-06 | tokenizeが空文字列を処理する | E-02 | ○ |
| C-07 | cleanがBOMを除去する | E-03 (99-102行目) | ○ |
| C-08 | cleanがキャリッジリターンを除去する | E-03 (109-111行目) | ○ |
| C-09 | cleanが末尾の空白を除去する | E-03 (112行目) | ○ |
| C-10 | cleanがliterateモードで非コード行を除去する | E-03 (113行目) | ○ |
| C-11 | identifierTokenが変数識別子をトークン化する | E-04 | ○ |
| C-12 | identifierTokenがプロパティをPROPERTYとしてトークン化する | E-04 (173-179行目) | ○ |
| C-13 | identifierTokenがキーワードを正しいタグでトークン化する | E-04 (182-184行目) | ○ |
| C-14 | identifierTokenがownをOWNトークンにする | E-04 (134-136行目) | ○ |
| C-15 | identifierTokenがyieldのfromをFROMトークンにする | E-04 (137-139行目) | ○ |
| C-16 | identifierTokenがimportのasをASトークンにする | E-04 (140-148行目) | ○ |
| C-17 | identifierTokenがexport defaultをDEFAULTトークンにする | E-04 (158-160行目) | ○ |
| C-18 | identifierTokenがCoffeeScriptエイリアスを変換する | E-04 (235-246行目), E-40 | ○ |
| C-19 | identifierTokenが予約語でエラーを発生させる | E-04 (231-232行目) | ○ |
| C-20 | identifierTokenがdo superを処理する | E-04 (164-169行目) | ○ |
| C-21 | numberTokenが整数をトークン化する | E-05 | ○ |
| C-22 | numberTokenが小数をトークン化する | E-05, E-40 (NUMBER正規表現) | ○ |
| C-23 | numberTokenが指数表記をトークン化する | E-05, E-40 (NUMBER正規表現) | ○ |
| C-24 | numberTokenが16進数をトークン化する | E-05, E-40 (NUMBER正規表現) | ○ |
| C-25 | numberTokenが2進数をトークン化する | E-05, E-40 (NUMBER正規表現) | ○ |
| C-26 | numberTokenが8進数をトークン化する | E-05, E-40 (NUMBER正規表現) | ○ |
| C-27 | numberTokenがBigIntをトークン化する | E-05, E-40 (NUMBER正規表現) | ○ |
| C-28 | numberTokenが数値区切り記号を処理する | E-05, E-40 (NUMBER正規表現) | ○ |
| C-29 | numberTokenがInfinityをトークン化する | E-05 (281-283行目) | ○ |
| C-30 | numberTokenが大文字の基数プレフィックスでエラーを発生させる | E-05 (271-272行目) | ○ |
| C-31 | numberTokenが不正な8進数でエラーを発生させる | E-05 (273-276行目) | ○ |
| C-32 | stringTokenがシングルクォート文字列をトークン化する | E-06, E-40 (STRING_SINGLE) | ○ |
| C-33 | stringTokenがダブルクォート文字列をトークン化する | E-06, E-40 (STRING_DOUBLE) | ○ |
| C-34 | stringTokenがヒアドキュメントをトークン化する | E-06 (304-305行目) | ○ |
| C-35 | stringTokenが文字列補間を処理する | E-06 (307行目), E-21 | ○ |
| C-36 | stringTokenがimportのfromを正しくタグ付けする | E-06 (297-299行目) | ○ |
| C-37 | stringTokenが閉じられていない文字列でエラーを発生させる | E-21 (944-945行目) | ○ |
| C-38 | commentTokenが行コメントを処理する | E-07 | ○ |
| C-39 | commentTokenがブロックコメントを処理する | E-07 (336行目) | ○ |
| C-40 | commentTokenがブロックコメント内の*/でエラーを発生させる | E-07 (337-340行目) | ○ |
| C-41 | jsTokenがバッククォートJSをトークン化する | E-08, E-40 (JSTOKEN) | ○ |
| C-42 | jsTokenがヒアドキュメントJSをトークン化する | E-08 (433行目), E-40 (HERE_JSTOKEN) | ○ |
| C-43 | regexTokenが正規表現リテラルをトークン化する | E-09, E-40 (REGEX) | ○ |
| C-44 | regexTokenがヒアドキュメント正規表現をトークン化する | E-09 (449行目), E-40 (HEREGEX) | ○ |
| C-45 | regexTokenが正規表現フラグを処理する | E-09 (474-475行目) | ○ |
| C-46 | regexTokenが無効なフラグでエラーを発生させる | E-09 (478-479行目) | ○ |
| C-47 | regexTokenが閉じられていない正規表現でエラーを発生させる | E-09 (470行目) | ○ |
| C-48 | regexTokenが正規表現と除算を正しく区別する | E-09 (464-469行目) | ○ |
| C-49 | lineTokenがインデントをINDENTトークンにする | E-10 (541-558行目) | ○ |
| C-50 | lineTokenがアウトデントをOUTDENTトークンにする | E-10 (564行目), E-11 | ○ |
| C-51 | lineTokenが継続行のインデントを抑制する | E-10 (542-547行目) | ○ |
| C-52 | lineTokenが混在インデントでエラーを発生させる | E-10 (528-530行目) | ○ |
| C-53 | lineTokenがインデント不整合でエラーを発生させる | E-10 (532-535行目) | ○ |
| C-54 | lineTokenがベースインデント未満でエラーを発生させる | E-10 (559-560行目) | ○ |
| C-55 | outdentTokenが複数レベルのアウトデントを処理する | E-11 (571-587行目) | ○ |
| C-56 | outdentTokenがTERMINATORを追加する | E-11 (591-593行目) | ○ |
| C-57 | whitespaceTokenが空白をスキップする | E-12 | ○ |
| C-58 | whitespaceTokenが改行でnewLineフラグを設定する | E-12 (602-604行目) | ○ |
| C-59 | newlineTokenがTERMINATORトークンを生成する | E-13 (610行目) | ○ |
| C-60 | newlineTokenが連続改行をマージする | E-13 (610行目) | ○ |
| C-61 | suppressNewlinesがバックスラッシュで改行を抑制する | E-14 | ○ |
| C-62 | jsxTokenがJSXタグをトークン化する | E-15 (630-660行目) | ○ |
| C-63 | jsxTokenが自己終了JSXタグを処理する | E-15 (662-674行目) | ○ |
| C-64 | jsxTokenがJSX属性値を処理する | E-15 (675-690行目) | ○ |
| C-65 | jsxTokenがJSXフラグメントを処理する | E-15 (631行目), E-40 (JSX_FRAGMENT_IDENTIFIER) | ○ |
| C-66 | jsxTokenが不一致のJSX閉じタグでエラーを発生させる | E-15 (703-706行目) | ○ |
| C-67 | atJSXTagがJSXタグ内を正しく判定する | E-16 | ○ |
| C-68 | atJSXTagがJSXタグ外を正しく判定する | E-16 (744行目) | ○ |
| C-69 | literalTokenが演算子をトークン化する | E-17 | ○ |
| C-70 | literalTokenが複合代入演算子を認識する | E-17 (804行目), E-40 (COMPOUND_ASSIGN) | ○ |
| C-71 | literalTokenが括弧をペアリングする | E-17 (820行目) | ○ |
| C-72 | literalTokenがCALL_STARTを判定する | E-17 (810-812行目) | ○ |
| C-73 | literalTokenがINDEX_STARTを判定する | E-17 (813-817行目) | ○ |
| C-74 | literalTokenがセミコロンをTERMINATORにする | E-17 (796-799行目) | ○ |
| C-75 | literalTokenが不正な位置のセミコロンでエラーを発生させる | E-17 (797行目) | ○ |
| C-76 | literalTokenが||=を複合代入に変換する | E-17 (766-777行目) | ○ |
| C-77 | literalTokenがDYNAMIC_IMPORTを認識する | E-17 (784-785行目) | ○ |
| C-78 | tagParametersが関数パラメータをタグ付けする | E-18 | ○ |
| C-79 | tagDoIifeがDO_IIFEをタグ付けする | E-19 | ○ |
| C-80 | closeIndentationがファイル終端でインデントを閉じる | E-20 | ○ |
| C-81 | matchWithInterpolationsが補間付き文字列をマッチする | E-21 | ○ |
| C-82 | matchWithInterpolationsがネストした補間を処理する | E-21 (906-907行目) | ○ |
| C-83 | matchWithInterpolationsが閉じられていない補間でエラーを発生させる | E-21 (944-945行目) | ○ |
| C-84 | mergeInterpolationTokensが補間トークンをマージする | E-22 | ○ |
| C-85 | mergeInterpolationTokensが単一文字列でSTRING_STARTを省略する | E-22 (956-957行目) | ○ |
| C-86 | pairがペアリングを正しく行う | E-23 | ○ |
| C-87 | pairが不一致のペアでエラーを発生させる | E-23 (1026-1027行目) | ○ |
| C-88 | pairがOUTDENTの自動閉じを行う | E-23 (1027-1035行目) | ○ |
| C-89 | getLocationDataCompensationが位置補正を計算する | E-24 | ○ |
| C-90 | getLineAndColumnFromChunkが行と列を計算する | E-25 | ○ |
| C-91 | getLineAndColumnFromChunkがオフセット0で正しく計算する | E-25 (1062-1063行目) | ○ |
| C-92 | makeLocationDataがロケーションデータを生成する | E-26 | ○ |
| C-93 | makeLocationDataが長さ0のロケーションを処理する | E-26 (1096行目) | ○ |
| C-94 | makeTokenがトークンを生成する | E-27 | ○ |
| C-95 | makeTokenがオプションをトークンに適用する | E-27 (1109-1111行目) | ○ |
| C-96 | tokenがトークンをtokens配列に追加する | E-28 | ○ |
| C-97 | tokenがdataオプションをトークンに付与する | E-28 (1122行目) | ○ |
| C-98 | tagが最後のトークンのタグを返却する | E-29 | ○ |
| C-99 | tagがトークンが空の場合undefinedを返却する | E-29 | ○ |
| C-100 | valueが最後のトークンの値を返却する | E-30 | ○ |
| C-101 | valueがuseOrigin=trueでorigin値を返却する | E-30 (1134-1135行目) | ○ |
| C-102 | prevが前のトークンを返却する | E-31 | ○ |
| C-103 | unfinishedが未完了の式を正しく判定する | E-32 | ○ |
| C-104 | unfinishedが完了した式を正しく判定する | E-32 | ○ |
| C-105 | validateUnicodeCodePointEscapesが有効なエスケープを検証する | E-33 | ○ |
| C-106 | validateUnicodeCodePointEscapesが無効なエスケープでエラーを発生させる | E-33 | ○ |
| C-107 | validateEscapesが有効なエスケープシーケンスを検証する | E-34 | ○ |
| C-108 | validateEscapesが8進エスケープでエラーを発生させる | E-34 (1162-1163行目) | ○ |
| C-109 | validateEscapesが無効な16進エスケープでエラーを発生させる | E-34 (1164-1165行目) | ○ |
| C-110 | suppressSemicolonsが連続セミコロンを削除する | E-35 | ○ |
| C-111 | errorがSyntaxErrorをスローする | E-36 | ○ |
| C-112 | errorが位置情報をエラーに含める | E-36 (1179-1184行目) | ○ |
| C-113 | isUnassignableがキーワードへの代入をブロックする | E-37 (1191行目) | ○ |
| C-114 | isUnassignableが予約語への代入をブロックする | E-37 (1195-1196行目) | ○ |
| C-115 | isUnassignableがarguments/evalへの代入をブロックする | E-37 (1193-1194行目) | ○ |
| C-116 | isUnassignableが通常の識別子を許可する | E-37 (1197-1198行目) | ○ |
| C-117 | isForFromがIDENTIFIERの後のfromを判定する | E-38 (1208-1209行目) | ○ |
| C-118 | isForFromがFORの後のfromを非判定する | E-38 (1211-1212行目) | ○ |
| C-119 | isForFromが分割代入内のfromを非判定する | E-38 (1214-1215行目) | ○ |
| C-120 | addTokenDataがデータをトークンに追加する | E-39 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし - 全てのテストケースがソースコード `src/lexer.coffee` に基づいて生成されています

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全てのテストケースが実装コードに基づいており、根拠が明確です
- 注意点：
  - JSX関連のテストケース（UT-LEX-062〜068）は比較的新しい機能のため、実装の変更に注意
  - エスケープシーケンス関連のテストケース（UT-LEX-105〜109）はセキュリティに関連するため重要

## 6) レビュアーチェックリスト（最小）
- [ ] 全120件のテストケースがソースコードの実装と整合しているか確認
- [ ] 正常系・異常系・境界値のバランスが適切か確認
- [ ] 優先度「高」のテストケース（tokenize, identifierToken, stringToken, regexToken, lineToken, pair等）を重点的にレビュー
- [ ] JSX関連のテストケースがReactプロジェクトでの使用に十分か確認
- [ ] エラーメッセージの検証が適切か確認
