FParsecのidentifier
パーサーを使用して、変数と関数の名前を解析しています。通常は、UnicodeとASCII文字が混在しています。しかし、時々私は最初に(\u03C0
のような)Unicode文字をエスケープしています(swipe_board\u003A_b
のように)。私はまだisAsciiIdStart
とisAsciiIdContinue
オプションを使って解析できるようにすることができますが、正規化の前に前処理のために独自のカスタム関数を定義することはできません。ここでは何が解決策ですか?FParsecに識別子パーサを持つ前処理関数を使用していますか?
5
A
答えて
4
identifier
パーサは内部的に最初に文字列を解析し、それをIdentifierValidator
インスタンスに渡して検証します。 C#IdentifierValidator
クラスは一般に公開されています(文書化されていません)。identifier
パーサーを必要に応じて簡単に適合させることができます。
識別子の解析は、UTF-16サロゲートペア、正規化、およびUnicode XID文字カテゴリをサポートしているため、少し複雑です。これは.NETでネイティブにサポートされていません。 CharUnicodeInfo.GetUnicodeCategory
でサポートされている文字カテゴリの用語で指定されたASCIIまたはUCS-2識別子をサポートする必要がある場合があります。その場合は、many1Satisfy2
またはmany1Chars2
を使用して解析と検証を1ステップで実装できます。
関連する問題
- 1. OperatorPrecedenceParserを使用してFParsecでアプリケーション関数を解析する?
- 2. JavaScript識別子を使用しない
- 3. 複数の識別子を使用してルートをルーティングしますか?
- 4. 私はこのフォームで文字列をFParsecパーサを書いてFParsec
- 5. C++関数呼び出し識別子
- 6. 変数から名前を持つ関数を定義していますか?
- 7. SAT前処理用のハッシュ関数
- 8. Roslynを使用して一意の識別子の名前を決定する
- 9. 複数の識別子を持つSpringと@JsonView
- 10. asp.netの一意の識別子パラメータを処理する方法
- 11. FParsecでOperationPrecedenceParserの演算子で識別子パーサーを停止する方法はありますか?
- 12. フラグメント識別子を持つリンクをTwitterに共有する
- 13. 1つまたは2つのコールバックを使用した関数コールバック処理?
- 14. RandomRange関数 '宣言されていない識別子'エラー?
- 15. ロールアップ関数を使用した条件付きグループ識別子の追加
- 16. `識別子MyCellを持つセルをデキューできません。 '
- 17. いくつかの一意の識別子を使用してMicrosoft Bandを特定します。
- 18. 2つの識別子を持つクラスで要素を選択
- 19. バンドル識別子は以前のバンドル識別子と異なります
- 20. Javaを使用してファイル拡張子を識別する
- 21. 前処理されていないコードにANTLRを使用できますか?
- 22. ポインタ引数を持つ関数を別の関数の引数として使用する
- 23. Stataの3つの識別子を持つパネルのローリング平均
- 24. 値オブジェクトをエンティティ内の識別子として使用する
- 25. ajax関数の処理中にajax関数を処理する
- 26. KRL RSSパーサ:エンコードの問題を処理しますか?
- 27. C++演算子関数内の宣言されていない識別子
- 28. C++の関数と '識別子が見つかりません'エラー
- 29. 使用前/使用後のデータフレームの各行に識別子を追加ldpyを使用してデータフレームのリストを1つにまとめる
- 30. Python関数でtry/exceptを使用しないエラー処理