summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorAndres Noetzli <andres.noetzli@gmail.com>2021-05-14 15:56:11 -0700
committerAndres Noetzli <andres.noetzli@gmail.com>2021-05-17 19:58:21 -0700
commit98512d53bad33ee25835a04b1e83acab815d454f (patch)
tree86aaca79768c53eba571108dc0633ca0b3720456 /src/main
parent6e6d2b59538a010b61434387498afa594434cfa9 (diff)
Split parser state from parser classparser-state
This commit splits the parser state from the parser class.
Diffstat (limited to 'src/main')
-rw-r--r--src/main/driver_unified.cpp13
-rw-r--r--src/main/interactive_shell.cpp10
-rw-r--r--src/main/interactive_shell.h4
-rw-r--r--src/main/main.cpp3
4 files changed, 7 insertions, 23 deletions
diff --git a/src/main/driver_unified.cpp b/src/main/driver_unified.cpp
index b94b49db3..12a86be82 100644
--- a/src/main/driver_unified.cpp
+++ b/src/main/driver_unified.cpp
@@ -37,7 +37,6 @@
#include "options/set_language.h"
#include "parser/input_parser.h"
#include "parser/parser.h"
-#include "parser/parser_builder.h"
#include "smt/command.h"
#include "smt/smt_engine.h"
#include "util/result.h"
@@ -258,10 +257,8 @@ int runCvc5(int argc, char* argv[], Options& opts)
// pExecutor->doCommand(cmd);
}
- ParserBuilder parserBuilder(pExecutor->getSolver(),
- pExecutor->getSymbolManager(),
- opts);
- std::unique_ptr<Parser> parser(parserBuilder.build());
+ std::unique_ptr<Parser> parser(new Parser(
+ pExecutor->getSolver(), pExecutor->getSymbolManager(), opts));
std::unique_ptr<InputParser> inputParser;
if( inputFromStdin ) {
inputParser = parser->parseStream(filename, cin);
@@ -413,10 +410,8 @@ int runCvc5(int argc, char* argv[], Options& opts)
pExecutor->doCommand(cmd);
}
- ParserBuilder parserBuilder(pExecutor->getSolver(),
- pExecutor->getSymbolManager(),
- opts);
- std::unique_ptr<Parser> parser(parserBuilder.build());
+ std::unique_ptr<Parser> parser(new Parser(
+ pExecutor->getSolver(), pExecutor->getSymbolManager(), opts));
std::unique_ptr<InputParser> inputParser;
if( inputFromStdin ) {
inputParser = parser->parseStream(filename, cin);
diff --git a/src/main/interactive_shell.cpp b/src/main/interactive_shell.cpp
index 1b3ad643b..0abcb72f0 100644
--- a/src/main/interactive_shell.cpp
+++ b/src/main/interactive_shell.cpp
@@ -47,7 +47,6 @@
#include "parser/input.h"
#include "parser/input_parser.h"
#include "parser/parser.h"
-#include "parser/parser_builder.h"
#include "smt/command.h"
#include "theory/logic_info.h"
@@ -94,13 +93,7 @@ InteractiveShell::InteractiveShell(api::Solver* solver, SymbolManager* sm)
d_out(*d_options.getOutConst()),
d_quit(false)
{
- ParserBuilder parserBuilder(solver, sm, d_options);
- /* Create parser with bogus input. */
- d_parser = parserBuilder.build();
- if(d_options.wasSetByUserForceLogicString()) {
- LogicInfo tmp(d_options.getForceLogicString());
- d_parser->forceLogic(tmp.getLogicString());
- }
+ d_parser.reset(new Parser(solver, sm, d_options));
#if HAVE_LIBEDITLINE
if(&d_in == &cin) {
@@ -172,7 +165,6 @@ InteractiveShell::~InteractiveShell() {
<< ": " << strerror(err) << std::endl;
}
#endif /* HAVE_LIBEDITLINE */
- delete d_parser;
}
Command* InteractiveShell::readCommand()
diff --git a/src/main/interactive_shell.h b/src/main/interactive_shell.h
index cf5f22b51..856106187 100644
--- a/src/main/interactive_shell.h
+++ b/src/main/interactive_shell.h
@@ -43,7 +43,7 @@ class InteractiveShell
const Options& d_options;
std::istream& d_in;
std::ostream& d_out;
- parser::Parser* d_parser;
+ std::unique_ptr<parser::Parser> d_parser;
bool d_quit;
bool d_usingEditline;
@@ -69,7 +69,7 @@ public:
/**
* Return the internal parser being used.
*/
- parser::Parser* getParser() { return d_parser; }
+ parser::Parser* getParser() { return d_parser.get(); }
};/* class InteractiveShell */
diff --git a/src/main/main.cpp b/src/main/main.cpp
index b96598b0b..20d542de2 100644
--- a/src/main/main.cpp
+++ b/src/main/main.cpp
@@ -24,13 +24,10 @@
#include "base/configuration.h"
#include "base/output.h"
#include "main/command_executor.h"
-#include "main/interactive_shell.h"
#include "options/language.h"
#include "options/option_exception.h"
#include "options/options.h"
#include "parser/parser.h"
-#include "parser/parser_builder.h"
-#include "parser/parser_exception.h"
#include "util/result.h"
using namespace std;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback