Add option to turn on integer variable detection
This commit is contained in:
parent
19e1e16e45
commit
b60c65a810
@ -18,6 +18,7 @@ int main(int argc, char **argv)
|
||||
("i,input", "Input files", cxxopts::value<std::vector<std::string>>())
|
||||
("s,simplify", "Simplify the output")
|
||||
("c,complete", "Perform completion")
|
||||
("d,detect-integers", "Detect integer variables")
|
||||
("color", "Colorize output (always, never, auto)", cxxopts::value<std::string>()->default_value("auto"))
|
||||
("parentheses", "Parenthesis style (normal, full)", cxxopts::value<std::string>()->default_value("normal"))
|
||||
("p,log-priority", "Log messages starting from this priority (debug, info, warning, error)", cxxopts::value<std::string>()->default_value("info"));
|
||||
@ -50,6 +51,7 @@ int main(int argc, char **argv)
|
||||
|
||||
context.performSimplification = (parseResult.count("simplify") > 0);
|
||||
context.performCompletion = (parseResult.count("complete") > 0);
|
||||
context.performIntegerDetection = (parseResult.count("detect-integers") > 0);
|
||||
colorPolicyString = parseResult["color"].as<std::string>();
|
||||
parenthesisStyleString = parseResult["parentheses"].as<std::string>();
|
||||
logPriorityString = parseResult["log-priority"].as<std::string>();
|
||||
|
@ -77,6 +77,7 @@ struct Context
|
||||
|
||||
bool performSimplification{false};
|
||||
bool performCompletion{false};
|
||||
bool performIntegerDetection{false};
|
||||
|
||||
std::vector<std::unique_ptr<ast::PredicateDeclaration>> predicateDeclarations;
|
||||
ast::PredicateDeclaration::Visibility defaultPredicateVisibility{ast::PredicateDeclaration::Visibility::Visible};
|
||||
|
@ -8,6 +8,7 @@
|
||||
|
||||
#include <anthem/Completion.h>
|
||||
#include <anthem/Context.h>
|
||||
#include <anthem/IntegerVariableDetection.h>
|
||||
#include <anthem/Simplification.h>
|
||||
#include <anthem/StatementVisitor.h>
|
||||
#include <anthem/output/AST.h>
|
||||
@ -109,6 +110,10 @@ void translate(const char *fileName, std::istream &stream, Context &context)
|
||||
<< "” does not match any declared predicate";
|
||||
}
|
||||
|
||||
// Detect integer variables
|
||||
if (context.performIntegerDetection)
|
||||
detectIntegerVariables(completedFormulas);
|
||||
|
||||
// Simplify output if specified
|
||||
if (context.performSimplification)
|
||||
for (auto &completedFormula : completedFormulas)
|
||||
|
Loading…
Reference in New Issue
Block a user