diff --git a/example/interpreter_example.cpp b/example/interpreter_example.cpp
new file mode 100644
index 0000000..9e6118b
--- /dev/null
+++ b/example/interpreter_example.cpp
@@ -0,0 +1,56 @@
+
+// (C) Copyright Tobias Schwinger
+//
+// Use modification and distribution are subject to the boost Software License,
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
+
+//------------------------------------------------------------------------------
+
+#include <string>
+#include <iostream>
+#include <stdexcept>
+
+#include "interpreter.hpp"
+
+void echo(std::string const & s)
+{
+  std::cout << s << std::endl;
+}
+
+void add(int a, int b)
+{
+  std::cout << a + b << std::endl;
+}
+
+void repeat(std::string const & s, int n)
+{
+  while (--n >= 0) std::cout << s;
+  std::cout << std::endl; 
+}
+
+int main()
+{
+  example::interpreter interpreter;
+
+  interpreter.register_function("echo", & echo);
+  interpreter.register_function("add", & add);
+  interpreter.register_function("repeat", & repeat);
+
+  std::string line = "nonempty";
+  while (! line.empty())
+  {
+    std::cout << std::endl << "] ", std::getline(std::cin,line);
+
+    try                          
+    {
+      interpreter.parse_input(line);
+    }
+    catch (std::runtime_error &error) 
+    { 
+      std::cerr << error.what() << std::endl; 
+    }
+  }
+
+  return 0;
+}
+
