 		{
 			runtime = new StutterRunTime();
 			reader = new StutterReader();
+		}
+
+		private function eval(expression:String):*
+		{
+			reader.load(expression);
+
+			var sexp:*;
+			var result:*;
+
+			while (reader.hasTokens() && (sexp = reader.parse()))
+			{
+				result = runtime.eval(sexp);
+			}
+
+			return result;
+		}
+
+		private function assert(expression:String, result:*):void 
+		{
+			assertThat(expression, eval(expression), result is Matcher ? result : equalTo(result));
 		}
 
 		[Test]

			assertThat('false?', eval('(and (eq 2 2) (eq 3 4))'), equalTo(FALSE));
		}

		private function eval(expression:String):*
		{
			return runtime.eval(reader.read(expression));
		}
	}
}
package stutter 
{
	import org.flexunit.assertThat;
	import org.hamcrest.Matcher;
	import org.hamcrest.collection.array;
	import org.hamcrest.collection.emptyArray;
	import org.hamcrest.object.equalTo;
