T1: Fix escape sequences — \n, \t, \r produce actual characters; add \xNN, \uNNNN #38

Open
opened 2026-03-24 22:25:34 +03:00 by NiXTheDev · 0 comments
NiXTheDev commented 2026-03-24 22:25:34 +03:00 (Migrated from github.com)

Task 1: Fix Escape Sequences

Wave: 1 (Critical Bug Fixes)
Category: deep
Parent: Epic #37

Problem

Escape sequences like \n, \t, \r are parsed but treated as literal characters ('n', 't', 'r'), not actual newline/tab/CR.

What to do

  • RED: Write failing tests that assert \n matches newline, \t matches tab, etc.
  • GREEN: Update lexer/parser to convert escape sequences to actual characters
  • REFACTOR: Ensure all escape sequences are consistent
  • Add: \xNN (hex escape), \uNNNN (unicode escape)
  • Scope: \n, \t, \r only. No \a, \e, \f, \v, \0 (defer to v0.2.0)

Acceptance Criteria

  • Test file: ogex/tests/escape_sequence_tests.rs
  • \n matches 0x0A (newline)
  • \t matches 0x09 (tab)
  • \r matches 0x0D (carriage return)
  • \xNN matches hex byte
  • \uNNNN matches unicode codepoint

Files

  • ogex/src/lexer.rs:28-80 — Token enum
  • ogex/src/parser.rs:260-270 — escape handling

Commit

fix: escape sequences produce actual characters

## Task 1: Fix Escape Sequences **Wave**: 1 (Critical Bug Fixes) **Category**: deep **Parent**: Epic #37 ### Problem Escape sequences like \n, \t, \r are parsed but treated as literal characters ('n', 't', 'r'), not actual newline/tab/CR. ### What to do - RED: Write failing tests that assert `\n` matches newline, `\t` matches tab, etc. - GREEN: Update lexer/parser to convert escape sequences to actual characters - REFACTOR: Ensure all escape sequences are consistent - Add: \xNN (hex escape), \uNNNN (unicode escape) - Scope: \n, \t, \r only. No \a, \e, \f, \v, \0 (defer to v0.2.0) ### Acceptance Criteria - [ ] Test file: ogex/tests/escape_sequence_tests.rs - [ ] \n matches 0x0A (newline) - [ ] \t matches 0x09 (tab) - [ ] \r matches 0x0D (carriage return) - [ ] \xNN matches hex byte - [ ] \uNNNN matches unicode codepoint ### Files - `ogex/src/lexer.rs:28-80` — Token enum - `ogex/src/parser.rs:260-270` — escape handling ### Commit `fix: escape sequences produce actual characters`
Sign in to join this conversation.
No description provided.