早上好,
我正在编写一个语言解析器,我正在寻找用于回滚缓存的最佳结构,目前正在执行以下操作:
简而言之,我很想知道您认为哪种数据结构最适合:
我希望尽快收到你的来信!
答案 0 :(得分:1)
如果我是你,对于这种专门的使用以及可能的性能和资源限制,我将从原语实现我自己的缓冲区。我认为适应现有结构更加困难。当然,如果它没有受到伤害,我会尝试遵循众所周知的相关界面,例如CharSequence
,Appendable
,List
等。
答案 1 :(得分:0)
我怀疑StringBuilder和PushbackReader
的组合可以满足您的需求。使用StringBuilder来累积字符并创建令牌字符串,使用PushbackReader的mark
和reset
方法来实现回滚。
或者,将整个输入文件预读为String,然后通过索引String并获取子字符串来实现tokenizer。