]> git.saurik.com Git - bison.git/blobdiff - examples/calc++/calc++-driver.cc
Start a set of simple examples.
[bison.git] / examples / calc++ / calc++-driver.cc
diff --git a/examples/calc++/calc++-driver.cc b/examples/calc++/calc++-driver.cc
new file mode 100644 (file)
index 0000000..13df529
--- /dev/null
@@ -0,0 +1,37 @@
+#include "calc++-driver.hh"
+#include "calc++-parser.hh"
+
+calcxx_driver::calcxx_driver ()
+  : trace_scanning (false),
+    trace_parsing (false)
+{
+  variables["one"] = 1;
+  variables["two"] = 2;
+}
+
+calcxx_driver::~calcxx_driver ()
+{
+}
+
+void
+calcxx_driver::parse (const std::string &f)
+{
+  file = f;
+  scan_begin ();
+  yy::calcxx_parser parser (*this);
+  parser.set_debug_level (trace_parsing);
+  parser.parse ();
+  scan_end ();
+}
+
+void
+calcxx_driver::error (const yy::location& l, const std::string& m)
+{
+  std::cerr << l << ": " << m << std::endl;
+}
+
+void
+calcxx_driver::error (const std::string& m)
+{
+  std::cerr << m << std::endl;
+}