diff options
| author | _ov4 <ov4@ov4.org> | 2026-10-18 08:00:31 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-10-18 08:00:31 +0000 |
| commit | e7320359c12b97ccb85ebfb06b2540124630df7b (patch) | |
| tree | fe8740cf489cea87cccea26adb62997d10b7fe9d /tests | |
| parent | 2141916363d7f33a7a22adf6846f77276d7c4da3 (diff) | |
feat(lexer): support C++ escape sequences in literals
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/i/escape-sequences/case.json | 1 | ||||
| -rw-r--r-- | tests/i/escape-sequences/expected.txt | 4 | ||||
| -rw-r--r-- | tests/i/escape-sequences/program.cps | 4 | ||||
| -rw-r--r-- | tests/iii/escape-hex/case.json | 8 | ||||
| -rw-r--r-- | tests/iii/escape-hex/program.cps | 1 | ||||
| -rw-r--r-- | tests/iii/escape-octal/case.json | 8 | ||||
| -rw-r--r-- | tests/iii/escape-octal/program.cps | 1 | ||||
| -rw-r--r-- | tests/iii/escape-surrogate/case.json | 8 | ||||
| -rw-r--r-- | tests/iii/escape-surrogate/program.cps | 1 | ||||
| -rw-r--r-- | tests/iii/escape-unicode-char/case.json | 8 | ||||
| -rw-r--r-- | tests/iii/escape-unicode-char/program.cps | 1 | ||||
| -rw-r--r-- | tests/iii/escape-unknown/case.json | 8 | ||||
| -rw-r--r-- | tests/iii/escape-unknown/program.cps | 1 |
13 files changed, 54 insertions, 0 deletions
diff --git a/tests/i/escape-sequences/case.json b/tests/i/escape-sequences/case.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/tests/i/escape-sequences/case.json @@ -0,0 +1 @@ +{} diff --git a/tests/i/escape-sequences/expected.txt b/tests/i/escape-sequences/expected.txt new file mode 100644 index 0000000..da16637 --- /dev/null +++ b/tests/i/escape-sequences/expected.txt @@ -0,0 +1,4 @@ +quote:" slash:\ question:? +AABé😀 +10:9:255 +a diff --git a/tests/i/escape-sequences/program.cps b/tests/i/escape-sequences/program.cps new file mode 100644 index 0000000..a616449 --- /dev/null +++ b/tests/i/escape-sequences/program.cps @@ -0,0 +1,4 @@ +OUTPUT "quote:\" slash:\\ question:\?" +OUTPUT "A\101\x42\u00e9\U0001f600" +OUTPUT ASC('\n'), ":", ASC('\t'), ":", ASC('\377') +OUTPUT "a\0b" diff --git a/tests/iii/escape-hex/case.json b/tests/iii/escape-hex/case.json new file mode 100644 index 0000000..a40e503 --- /dev/null +++ b/tests/iii/escape-hex/case.json @@ -0,0 +1,8 @@ +{ + "errors": [ + { + "reason": "exceeds one byte", + "line": 1 + } + ] +} diff --git a/tests/iii/escape-hex/program.cps b/tests/iii/escape-hex/program.cps new file mode 100644 index 0000000..3769c04 --- /dev/null +++ b/tests/iii/escape-hex/program.cps @@ -0,0 +1 @@ +OUTPUT "\x100" diff --git a/tests/iii/escape-octal/case.json b/tests/iii/escape-octal/case.json new file mode 100644 index 0000000..a40e503 --- /dev/null +++ b/tests/iii/escape-octal/case.json @@ -0,0 +1,8 @@ +{ + "errors": [ + { + "reason": "exceeds one byte", + "line": 1 + } + ] +} diff --git a/tests/iii/escape-octal/program.cps b/tests/iii/escape-octal/program.cps new file mode 100644 index 0000000..7e56ef1 --- /dev/null +++ b/tests/iii/escape-octal/program.cps @@ -0,0 +1 @@ +OUTPUT "\400" diff --git a/tests/iii/escape-surrogate/case.json b/tests/iii/escape-surrogate/case.json new file mode 100644 index 0000000..eb1882d --- /dev/null +++ b/tests/iii/escape-surrogate/case.json @@ -0,0 +1,8 @@ +{ + "errors": [ + { + "reason": "Invalid Unicode", + "line": 1 + } + ] +} diff --git a/tests/iii/escape-surrogate/program.cps b/tests/iii/escape-surrogate/program.cps new file mode 100644 index 0000000..bee5004 --- /dev/null +++ b/tests/iii/escape-surrogate/program.cps @@ -0,0 +1 @@ +OUTPUT "\ud800" diff --git a/tests/iii/escape-unicode-char/case.json b/tests/iii/escape-unicode-char/case.json new file mode 100644 index 0000000..7bc1560 --- /dev/null +++ b/tests/iii/escape-unicode-char/case.json @@ -0,0 +1,8 @@ +{ + "errors": [ + { + "reason": "must be ASCII", + "line": 1 + } + ] +} diff --git a/tests/iii/escape-unicode-char/program.cps b/tests/iii/escape-unicode-char/program.cps new file mode 100644 index 0000000..258852a --- /dev/null +++ b/tests/iii/escape-unicode-char/program.cps @@ -0,0 +1 @@ +OUTPUT '\u00e9' diff --git a/tests/iii/escape-unknown/case.json b/tests/iii/escape-unknown/case.json new file mode 100644 index 0000000..2ba3033 --- /dev/null +++ b/tests/iii/escape-unknown/case.json @@ -0,0 +1,8 @@ +{ + "errors": [ + { + "reason": "Unknown escape", + "line": 1 + } + ] +} diff --git a/tests/iii/escape-unknown/program.cps b/tests/iii/escape-unknown/program.cps new file mode 100644 index 0000000..25a4b1d --- /dev/null +++ b/tests/iii/escape-unknown/program.cps @@ -0,0 +1 @@ +OUTPUT "\q" |
