Note that the creator of this quiz left out one important case from
their tests:

  def test_02a
    assert_equal [2**1**2], Interpreter.new(Compiler.compile('2**1**2')).run
  end

This tests that your compiler is properly making **
right-associative.  Some solutions already posted fail this test.

2**2**2 was an unfortunate test case to choose, since 2**4 == 4**2.

-- 
s=%q(  Daniel Martin -- martin / snowplow.org
       puts "s=%q(#{s})",s.map{|i|i}[1]       )
       puts "s=%q(#{s})",s.map{|i|i}[1]