use lexer::token::Token;
#[derive(Debug, Copy, Clone, PartialEq, PartialOrd)]
pub enum Precedence {
LOWEST,
EQUALS, LessGreater, SUM, PRODUCT, PREFIX, CALL, INDEX, }
pub fn get_token_precedence(token: &Token) -> Precedence {
match token {
Token::EQ => Precedence::EQUALS,
Token::NotEq => Precedence::EQUALS,
Token::LT => Precedence::LessGreater,
Token::GT => Precedence::LessGreater,
Token::PLUS => Precedence::SUM,
Token::MINUS => Precedence::SUM,
Token::ASTERISK => Precedence::PRODUCT,
Token::SLASH => Precedence::PRODUCT,
Token::LPAREN => Precedence::CALL,
Token::LBRACE => Precedence::INDEX,
_ => Precedence::LOWEST,
}
}