🔤

Unicode Identifier のメモ

2024/04/05に公開

最近のプログラミング言語は UTF8 で識別子記述できる.
絵文字を使えるのもありますね.

でも UTF8 文字ならなんでも識別子になるかといえばそうでもなくて, Identifier となりえる条件がありました.

UAX31: Unicode Identifier の話
https://ufcpp.net/blog/2021/2/uax31/

ありがとうございます.
しかし, め, めんどくさ~...

とりあえず, 2024 年以降では, UAX 31 Default Identifier(絵文字は使えない)が主流のようですね(C++ は C++23 から).

https://unicode.org/reports/tr31/

Python も UAX 31 Default Identifier(あと, 正規化は NFKC)になっています.

https://peps.python.org/pep-3131/
https://www.asmeurer.com/python-unicode-variable-names/

絵文字が Identifier に使えるのは少数派になりそうですかね.

C++ で Unicode Identifier の判定処理したい

C++ でぺろっと判定(文字が XID_Start, XID_Continue など)するのはなさそうです.
Python のコードみるか,

https://github.com/ggerganov/llama.cpp/blob/master/unicode-data.cpp

https://github.com/unicode-rs/unicode-xid

https://github.com/dtolnay/unicode-ident

あたりを参考にして実装でしょうか...

Discussion