# File lib/expression_parser/parser.rb, line 33
    def expression
      component1 = factor

      additive_operators = [Token::Plus, Token::Minus]

      token = @lexer.get_next_token
      while additive_operators.include?(token.kind)
        component2 = factor

        if token.kind == Token::Plus
          component1 += component2
        else
          component1 -= component2
        end

        token = @lexer.get_next_token
      end
      @lexer.revert

      component1
    end