From 07f03ea2e5e0c567d9cc6321481e05c0ea8d3693 Mon Sep 17 00:00:00 2001 From: David L Parkhurst Date: Wed, 10 Jan 2007 23:19:56 +0000 Subject: [PATCH] Fixed echo in parser for ReadClass.cxx. Works with testcase "raw". git-svn-id: svn://136.177.114.72/svn_GW/phreeqcpp/trunk@1607 1feff8c3-07ed-0310-ac33-dd36852eb9cd --- Parser.cxx | 17 +++++++++++++++++ Parser.h | 3 ++- ReadClass.cxx | 50 ++++++++++++++++++++++++++++++-------------------- 3 files changed, 49 insertions(+), 21 deletions(-) diff --git a/Parser.cxx b/Parser.cxx index 4d37eab7..57db6cb8 100644 --- a/Parser.cxx +++ b/Parser.cxx @@ -86,6 +86,14 @@ CParser::LINE_TYPE CParser::check_line(const std::string& str, bool allow_empty, get_output() << msg; } break; + case EO_NOKEYWORDS: + if (i != LT_KEYWORD && i != LT_EOF) + { + std::ostringstream msg; + msg << "\t" << m_line_save << "\n"; + get_output() << msg; + } + break; } // output for file switch (this->echo_file) @@ -108,6 +116,15 @@ CParser::LINE_TYPE CParser::check_line(const std::string& str, bool allow_empty, output_msg(OUTPUT_MESSAGE, "%s", msg.str().c_str()); } break; + + case EO_NOKEYWORDS: + if (i != LT_KEYWORD && i != LT_EOF) + { + std::ostringstream msg; + msg << "\t" << m_line_save << "\n"; + output_msg(OUTPUT_MESSAGE, "%s", msg.str().c_str()); + } + break; } } while (i == LT_EMPTY && allow_empty == false); diff --git a/Parser.h b/Parser.h index e8cf3658..026948e7 100644 --- a/Parser.h +++ b/Parser.h @@ -69,7 +69,8 @@ public: enum ECHO_OPTION { EO_NONE = 0, EO_ALL = 1, - EO_KEYWORDS = 2 + EO_KEYWORDS = 2, + EO_NOKEYWORDS = 3, }; enum STATUS_TYPE { diff --git a/ReadClass.cxx b/ReadClass.cxx index 9b96967d..82a81274 100644 --- a/ReadClass.cxx +++ b/ReadClass.cxx @@ -68,12 +68,13 @@ int read_solution_raw (void) std::ostringstream oss_err; CParser parser(iss_in, oss_out, oss_err); + assert (!reading_database ()); if (pr.echo_input == FALSE) { parser.set_echo_file(CParser::EO_NONE); - } else if (reading_database ()) + } else { - parser.set_echo_file(CParser::EO_KEYWORDS); + parser.set_echo_file(CParser::EO_NOKEYWORDS); } //For testing, need to read line to get started std::vector vopts; @@ -150,12 +151,13 @@ int read_exchange_raw (void) std::ostringstream oss_err; CParser parser(iss_in, oss_out, oss_err); + assert (!reading_database ()); if (pr.echo_input == FALSE) { parser.set_echo_file(CParser::EO_NONE); - } else if (reading_database ()) + } else { - parser.set_echo_file(CParser::EO_KEYWORDS); + parser.set_echo_file(CParser::EO_NOKEYWORDS); } //For testing, need to read line to get started std::vector vopts; @@ -233,12 +235,13 @@ int read_surface_raw (void) std::ostringstream oss_err; CParser parser(iss_in, oss_out, oss_err); + assert (!reading_database ()); if (pr.echo_input == FALSE) { parser.set_echo_file(CParser::EO_NONE); - } else if (reading_database ()) + } else { - parser.set_echo_file(CParser::EO_KEYWORDS); + parser.set_echo_file(CParser::EO_NOKEYWORDS); } //For testing, need to read line to get started std::vector vopts; @@ -316,12 +319,13 @@ int read_equilibrium_phases_raw (void) std::ostringstream oss_err; CParser parser(iss_in, oss_out, oss_err); + assert (!reading_database ()); if (pr.echo_input == FALSE) { parser.set_echo_file(CParser::EO_NONE); - } else if (reading_database ()) + } else { - parser.set_echo_file(CParser::EO_KEYWORDS); + parser.set_echo_file(CParser::EO_NOKEYWORDS); } //For testing, need to read line to get started std::vector vopts; @@ -399,12 +403,13 @@ int read_kinetics_raw (void) std::ostringstream oss_err; CParser parser(iss_in, oss_out, oss_err); + assert (!reading_database ()); if (pr.echo_input == FALSE) { parser.set_echo_file(CParser::EO_NONE); - } else if (reading_database ()) + } else { - parser.set_echo_file(CParser::EO_KEYWORDS); + parser.set_echo_file(CParser::EO_NOKEYWORDS); } //For testing, need to read line to get started std::vector vopts; @@ -482,12 +487,13 @@ int read_solid_solutions_raw (void) std::ostringstream oss_err; CParser parser(iss_in, oss_out, oss_err); + assert (!reading_database ()); if (pr.echo_input == FALSE) { parser.set_echo_file(CParser::EO_NONE); - } else if (reading_database ()) + } else { - parser.set_echo_file(CParser::EO_KEYWORDS); + parser.set_echo_file(CParser::EO_NOKEYWORDS); } //For testing, need to read line to get started std::vector vopts; @@ -565,12 +571,13 @@ int read_gas_phase_raw (void) std::ostringstream oss_err; CParser parser(iss_in, oss_out, oss_err); + assert (!reading_database ()); if (pr.echo_input == FALSE) { parser.set_echo_file(CParser::EO_NONE); - } else if (reading_database ()) + } else { - parser.set_echo_file(CParser::EO_KEYWORDS); + parser.set_echo_file(CParser::EO_NOKEYWORDS); } //For testing, need to read line to get started std::vector vopts; @@ -648,12 +655,13 @@ int read_reaction_raw (void) std::ostringstream oss_err; CParser parser(iss_in, oss_out, oss_err); + assert (!reading_database ()); if (pr.echo_input == FALSE) { parser.set_echo_file(CParser::EO_NONE); - } else if (reading_database ()) + } else { - parser.set_echo_file(CParser::EO_KEYWORDS); + parser.set_echo_file(CParser::EO_NOKEYWORDS); } //For testing, need to read line to get started std::vector vopts; @@ -730,12 +738,13 @@ int read_mix_raw (void) std::ostringstream oss_err; CParser parser(iss_in, oss_out, oss_err); + assert (!reading_database ()); if (pr.echo_input == FALSE) { parser.set_echo_file(CParser::EO_NONE); - } else if (reading_database ()) + } else { - parser.set_echo_file(CParser::EO_KEYWORDS); + parser.set_echo_file(CParser::EO_NOKEYWORDS); } //For testing, need to read line to get started std::vector vopts; @@ -812,12 +821,13 @@ int read_temperature_raw (void) std::ostringstream oss_err; CParser parser(iss_in, oss_out, oss_err); + assert (!reading_database ()); if (pr.echo_input == FALSE) { parser.set_echo_file(CParser::EO_NONE); - } else if (reading_database ()) + } else { - parser.set_echo_file(CParser::EO_KEYWORDS); + parser.set_echo_file(CParser::EO_NOKEYWORDS); } //For testing, need to read line to get started std::vector vopts;