-
Notifications
You must be signed in to change notification settings - Fork 38
refactor: 識別子の処理に関するリファクタリング #970
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: 識別子の処理に関するリファクタリング #970
Conversation
Codecov Report❌ Patch coverage is
... and 27 files with indirect coverage changes 🚀 New features to boost your workflow:
|
実際にJSONのキーとして使われることってまずない気がするから省いちゃって良さそうな気はしました |
その中では、Decimal number (Nd)に関しては 識別子としてどのような文字列が書けたほうがいいんですかね? だから
を残して他を省くといいですかね。 |
AiScript的には識別子にはアルファベットと数字と一部の記号しか使えなくて良さそうと思ってます(=日本語などは使えない) |
あれ?じゃあもうこのPRいらなかったですか? |
あー
とか |
ご意見募集 |
まあ議論の余地がありそうだから実際に使用可能な文字種を増やす部分の変更は一旦削除かコメントアウトしてもらって、それ以外の変更は一足先に入れるで良いかもしれないわね |
普段プログラムを書いてる人が対象となっているならば不要、そうでなければ使えても良いんじゃないでしょうか |
使用可能な文字種の追加に関するコードを削除しました。 |
👍 |
What
識別子の処理に関するリファクタリングになります。
src/utils/character.ts
を追加しました。Unicodeなど文字に関するユーティリティ関数群です。test/characters.ts
でテストを行います。src/parser/streams/char-stream.ts
のCharStream
において、サロゲートペアを1文字として扱うようにし、.char
がUnicode文字を返すようにしました。.pos()
は従来通りUTF-16コード単位ベースの値を返します。test/keywords.ts
にあった予約語のテストに、識別子に使用できる文字のテストを加え、新しいテストファイルをtest/identifiers.ts
としました。test/parser.ts
内のテスト'Scanner'
>'invalid token'
のコードを$
から~
に変更しました。Why
Additional info (optional)