use crate::parser::predule::Parser;

use crate::lexer::predule::Token;

impl Parser {
    // 다음 토큰 획득
    pub(crate) fn get_next_token(&mut self) -> Token {
        self.tokens.pop_front().unwrap()
    }

    // 다음 토큰 미리보기
    pub(crate) fn pick_next_token(&mut self) -> Token {
        self.tokens.front().unwrap().to_owned()
    }

    // 토큰 획득 롤백
    pub(crate) fn unget_next_token(&mut self, token: Token) {
        self.tokens.push_front(token)
    }

    // 다음 토큰 유무 확인
    pub(crate) fn has_next_token(&self) -> bool {
        !self.tokens.is_empty() && !self.tokens.front().unwrap().is_eof()
    }
}