早上好,
我正在编写一个语言解析器,并且正在寻找用于当前执行以下操作的回滚缓存的最佳结构:
- 当从流中请求一个新字符时,该字符被添加到缓存中,以防请求回滚。
- 当请求回滚时,返回到缓存中的某个点,这样当请求另一个字符时,它会从那里获取它。
- 找到令牌后,将回滚缓存中的所有内容删除到当前位置。
简而言之,我很想知道您认为哪种数据结构最适合:
- 优先级 1:附加字符(codePoints 将是一个受欢迎的补充)
- 优先级2:对数据结构做一个子字符串(如StringBuilder.delete(...))(或完全清除)
- 优先级 3:能够创建缓存的字符串(例如 StringBuilder.toString())
我希望尽快获得你的消息!