#include "Cycript.tab.hh"
#include "Driver.hpp"
-CYDriver::CYDriver(std::istream &data, const std::string &filename) :
+CYDriver::CYDriver(CYPool &pool, std::istream &data, const std::string &filename) :
+ pool_(pool),
state_(CYClear),
data_(data),
+ debug_(0),
strict_(false),
commented_(false),
filename_(filename),
ScannerDestroy();
}
+bool CYDriver::Parse() {
+ CYLocal<CYPool> local(&pool_);
+ cy::parser parser(*this);
+#ifdef YYDEBUG
+ parser.set_debug_level(debug_);
+#endif
+ return parser.parse() != 0;
+}
+
+void CYDriver::Replace(CYOptions &options) {
+ CYLocal<CYPool> local(&pool_);
+ CYContext context(options);
+ program_->Replace(context);
+}
+
void CYDriver::Warning(const cy::parser::location_type &location, const char *message) {
if (!strict_)
return;