# File lib/expression_parser/parser.rb, line 55
    def factor
      factor1 = number

      multiplicative_operators = [Token::Multiply, Token::Divide, Token::MOD]

      token = @lexer.get_next_token
      while multiplicative_operators.include?(token.kind)
        factor2 = number

        if token.kind == Token::Multiply
          factor1 *= factor2
        elsif token.kind == Token::MOD
          factor1 %= factor2
        else
          factor1 /= factor2
        end

        token = @lexer.get_next_token
      end
      @lexer.revert

      factor1
    end