I\'m implementing a parser in Rust. I have to update the index for the lookahead, but when I call self.get()
after self.current()
I get an error:
@Adrian already gave the correct reason for why the compiler is giving the error message. If you bound the mutating expressions within a scope and then call self.get
after the scope completion, you can compile the program.
The code can be modified as
loop{
{
let t = if let Some(token) = self.current(){
token
}else{
break
};
println!("{:?}", t);
}
let b = self.get();
println!("{:?}", b);
}