From 374b36b904e5c6b1de0d6e24c8d423ca9a4d4fdd Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan@dynare.org>
Date: Thu, 10 Oct 2013 11:04:56 +0200
Subject: [PATCH] Revert "preprocessor: replace dates with dynDates"

This reverts commit 030fe52affb763f11766801f6deeb797e90365e2.

Conflicts:
	preprocessor/Statement.cc
---
 preprocessor/ParsingDriver.cc |  3 +-
 preprocessor/Statement.cc     | 68 +----------------------------------
 preprocessor/Statement.hh     |  6 ++--
 3 files changed, 4 insertions(+), 73 deletions(-)

diff --git a/preprocessor/ParsingDriver.cc b/preprocessor/ParsingDriver.cc
index 37029fdcf2..38bf5a782e 100644
--- a/preprocessor/ParsingDriver.cc
+++ b/preprocessor/ParsingDriver.cc
@@ -2449,8 +2449,7 @@ ParsingDriver::add_model_var_or_external_function(string *function_name, bool in
 void
 ParsingDriver::add_native(const string &s)
 {
-  string ss = string(s);
-  mod_file->addStatement(new NativeStatement(ss));
+  mod_file->addStatement(new NativeStatement(s));
 }
 
 void
diff --git a/preprocessor/Statement.cc b/preprocessor/Statement.cc
index 38da6e366d..59021287bd 100644
--- a/preprocessor/Statement.cc
+++ b/preprocessor/Statement.cc
@@ -18,7 +18,6 @@
  */
 
 #include "Statement.hh"
-#include <boost/xpressive/xpressive.hpp>
 
 ModFileStructure::ModFileStructure() :
   check_present(false),
@@ -66,76 +65,11 @@ Statement::computingPass()
 {
 }
 
-NativeStatement::NativeStatement(string &native_statement_arg) :
+NativeStatement::NativeStatement(const string &native_statement_arg) :
   native_statement(native_statement_arg)
 {
 }
 
-void
-NativeStatement::computingPass()
-{
-  using namespace boost::xpressive;
-  // Return if this is a comment
-  sregex comment_expr = sregex::compile( "\\s*\%.*" );
-  match_results<string::const_iterator> results;
-  if (regex_match(native_statement, results, comment_expr))
-      return;
-
-  // Otherwise, look at the line and consider substituting date
-  size_t idx = -1;
-  vector<size_t> apostrophes;
-  while((idx = native_statement.find("'", idx + 1)) != string::npos)
-    if (apostrophes.size() < 2)
-      apostrophes.push_back(idx);
-    else
-      if (idx == apostrophes.back() + 1)
-        apostrophes.pop_back();
-      else
-        apostrophes.push_back(idx);
-
-  bool skip = false;
-  string newstr = "";
-  sregex date_expr = sregex::compile( "-?[0-9]+[Mm](1[0-2]|[1-9])|-?[0-9]+[Qq][1-4]|-?[0-9]+[Ww]([1-4][0-9]|5[0-2]|[1-9])" );
-  string format( "dynDate('$&')" );
-  size_t lastidx = 0;
-  for (size_t i = 0; i < apostrophes.size(); i++)
-    if (apostrophes[i] == 0)
-      skip = true;
-    else
-      if (skip)
-        {
-          newstr.append(native_statement.substr(lastidx, apostrophes[i] - lastidx));
-          lastidx = apostrophes[i];
-          skip = false;
-        }
-      else
-        {
-          newstr.append(regex_replace(native_statement.substr(lastidx, apostrophes[i] - lastidx),
-                                      date_expr, format));
-          lastidx = apostrophes[i];
-          skip = true;
-        }
-  size_t length = native_statement.length() - lastidx;
-  size_t commentidx = native_statement.substr(lastidx, length).find("%", 0);
-  if (commentidx != string::npos)
-    length = commentidx;
-
-  newstr.append(regex_replace(native_statement.substr(lastidx, length), date_expr, format));
-
-  if (commentidx != string::npos)
-    {
-      lastidx += commentidx;
-      newstr.append(native_statement.substr(lastidx, native_statement.length() - lastidx));
-    }
-
-  native_statement = newstr;
-}
-
-void
-regexReplace()
-{
-}
-
 void
 NativeStatement::writeOutput(ostream &output, const string &basename) const
 {
diff --git a/preprocessor/Statement.hh b/preprocessor/Statement.hh
index 82f64fa799..cd3fd5cf3e 100644
--- a/preprocessor/Statement.hh
+++ b/preprocessor/Statement.hh
@@ -121,12 +121,10 @@ public:
 class NativeStatement : public Statement
 {
 private:
-  string native_statement;
+  const string native_statement;
 public:
-  NativeStatement(string &native_statement_arg);
-  virtual void computingPass();
+  NativeStatement(const string &native_statement_arg);
   virtual void writeOutput(ostream &output, const string &basename) const;
-  void regexReplace();
 };
 
 class OptionsList
-- 
GitLab