おはようございます、
私は言語パーサーを作成しており、現在次のことを行うロールバック キャッシュに使用する最適な構造を探しています。
- ストリームから新しい文字を要求すると、ロールバックが要求された場合に備えて、文字がキャッシュに追加されます。
- ロールバックが要求されたら、キャッシュ内の特定のポイントに戻り、別の文字が要求されたときに代わりにそこから取得できるようにします。
- トークンが見つかったら、ロールバック キャッシュ内の現在の位置までのすべてを削除します。
要するに、どのデータ構造が最適であると思われるかを知りたいです。
- 優先度 1: 文字の追加 (codePoints は歓迎される追加)
- 優先度 2: データ構造で部分文字列 (StringBuilder.delete(...) など) を実行する (または完全にクリアする)
- 優先度 3: キャッシュの文字列を作成できること (例: StringBuilder.toString())
私はすぐにあなたから話を聞くことを望む!