From 15bed56cf0b9a6f6ef75849a9699cf96c16aa0bb Mon Sep 17 00:00:00 2001 From: Mike Boyle Date: Sun, 30 Nov 2025 23:56:25 -0500 Subject: [PATCH 1/3] Include missing sub- and superscripts in operator suffix list --- src/flisp/julia_opsuffs.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/flisp/julia_opsuffs.h b/src/flisp/julia_opsuffs.h index d3f0584d084e7..d9baa5ee8aea1 100644 --- a/src/flisp/julia_opsuffs.h +++ b/src/flisp/julia_opsuffs.h @@ -3,7 +3,7 @@ produced by: - for c in sort(unique(collect("₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎²³¹ʰʲʳʷʸˡˢˣᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᵈᵉᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿₐₑₒₓₕₖₗₘₙₚₛₜⱼⱽ" * "′″‴‵‶‷⁗"))) + for c in sort(unique(collect("₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎²³¹ʰʲʳʷʸˡˢˣ˱˲ᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵅᵇᵈᵉᵋᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᶲᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿₐₑₒₓₔₕₖₗₘₙₚₛₜⱼⱽꜛꜜꜝ" * "′″‴‵‶‷⁗"))) println(" ", repr(UInt32(c)), ", // ", c) end */ @@ -20,6 +20,8 @@ static const uint32_t opsuffs[] = { 0x000002e1, // ˡ 0x000002e2, // ˢ 0x000002e3, // ˣ + 0x000002f1, // ˱ + 0x000002f2, // ˲ 0x00001d2c, // ᴬ 0x00001d2e, // ᴮ 0x00001d30, // ᴰ @@ -39,9 +41,11 @@ static const uint32_t opsuffs[] = { 0x00001d41, // ᵁ 0x00001d42, // ᵂ 0x00001d43, // ᵃ + 0x00001d45, // ᵅ 0x00001d47, // ᵇ 0x00001d48, // ᵈ 0x00001d49, // ᵉ + 0x00001d4b, // ᵋ 0x00001d4d, // ᵍ 0x00001d4f, // ᵏ 0x00001d50, // ᵐ @@ -70,6 +74,7 @@ static const uint32_t opsuffs[] = { 0x00001da6, // ᶦ 0x00001dab, // ᶫ 0x00001db0, // ᶰ + 0x00001db2, // ᶲ 0x00001db8, // ᶸ 0x00001dbb, // ᶻ 0x00001dbf, // ᶿ @@ -113,6 +118,7 @@ static const uint32_t opsuffs[] = { 0x00002091, // ₑ 0x00002092, // ₒ 0x00002093, // ₓ + 0x00002094, // ₔ 0x00002095, // ₕ 0x00002096, // ₖ 0x00002097, // ₗ From a82dbae1366d2047be2b7bb799186628975f482c Mon Sep 17 00:00:00 2001 From: Mike Boyle Date: Tue, 2 Dec 2025 15:41:42 -0500 Subject: [PATCH 2/3] Include NEWS entry about new operator suffixes --- NEWS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS.md b/NEWS.md index 1bb83f409beee..d98780a571da2 100644 --- a/NEWS.md +++ b/NEWS.md @@ -15,6 +15,9 @@ New language features `compat.julia` or `syntax.julia_version` key in Project.toml. This feature is similar to the notion of "editions" in other language ecosystems and will allow non-breaking evolution of Julia syntax in future versions. See the "Syntax Versioning" section in the code loading documentation ([#60018]). + - `ᵅ` (U+U+1D45), `ᵋ` (U+1D4B), `ᶲ` (U+1DB2), `˱` (U+02F1), `˲` (U+02F2), and `ₔ` (U+2094) can now also be used as + operator suffixes, accessible as `\^alpha`, `\^epsilon`, `\^ltphi`, `\_<`, `\_>`, and `\_schwa` at the REPL + ([JuliaLang/JuliaSyntax.jl#607], [#60285]). Language changes ---------------- From aa465d5c401587e6bb4ede92f95f8361c187ef09 Mon Sep 17 00:00:00 2001 From: Mike Boyle Date: Tue, 2 Dec 2025 23:49:48 -0500 Subject: [PATCH 3/3] Include missing sub- and superscripts in JuliaSyntax operator suffix list --- JuliaSyntax/src/julia/tokenize.jl | 2 +- NEWS.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/JuliaSyntax/src/julia/tokenize.jl b/JuliaSyntax/src/julia/tokenize.jl index 1f279af7c4921..7d60cbd8f18fd 100644 --- a/JuliaSyntax/src/julia/tokenize.jl +++ b/JuliaSyntax/src/julia/tokenize.jl @@ -147,7 +147,7 @@ end end # Additional allowed cases return $(_char_in_set_expr(:u, - collect("²³¹ʰʲʳʷʸˡˢˣᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᵈᵉᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ′″‴‵‶‷⁗⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₕₖₗₘₙₚₛₜⱼⱽꜛꜜꜝ"))) + collect("²³¹ʰʲʳʷʸˡˢˣ˱˲ᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵅᵇᵈᵉᵋᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶲᶸᶻᶿ′″‴‵‶‷⁗⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₔₕₖₗₘₙₚₛₜⱼⱽꜛꜜꜝ"))) end function optakessuffix(k) diff --git a/NEWS.md b/NEWS.md index d98780a571da2..b1b64ea3c6e84 100644 --- a/NEWS.md +++ b/NEWS.md @@ -17,7 +17,7 @@ New language features See the "Syntax Versioning" section in the code loading documentation ([#60018]). - `ᵅ` (U+U+1D45), `ᵋ` (U+1D4B), `ᶲ` (U+1DB2), `˱` (U+02F1), `˲` (U+02F2), and `ₔ` (U+2094) can now also be used as operator suffixes, accessible as `\^alpha`, `\^epsilon`, `\^ltphi`, `\_<`, `\_>`, and `\_schwa` at the REPL - ([JuliaLang/JuliaSyntax.jl#607], [#60285]). + ([#60285]). Language changes ----------------