Use symbol manager for printing responses get-model (#5516)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 25 Nov 2020 16:46:41 +0000 (10:46 -0600)
committerGitHub <noreply@github.com>
Wed, 25 Nov 2020 16:46:41 +0000 (10:46 -0600)
commitde14432ebd850dab001bb860db102e86ec734f97
treec3d425c58d27e5e28b00e2870d2f30c48d0f68f0
parent03979b02fb0296aefdfeb0c00e6eb4ea5ac01cc8
Use symbol manager for printing responses get-model (#5516)

This makes symbol manager be in charge of determining which sorts and terms to print in response to get-model. This eliminates the need for the parser to call ExprManager::mkVar (and similar methods) with custom flags.

This requires significant simplifications to the printers for models, where instead of a NodeCommand, we take a Sort or Term to print in the model.

This is one of the last remaining steps for migrating the parser to the new API.

The next step will be to remove a lot of the internal infrastructure for managing expression names, commands to print in models, node commands, node listeners, etc.
15 files changed:
src/parser/parser.cpp
src/printer/ast/ast_printer.cpp
src/printer/ast/ast_printer.h
src/printer/cvc/cvc_printer.cpp
src/printer/cvc/cvc_printer.h
src/printer/printer.cpp
src/printer/printer.h
src/printer/smt2/smt2_printer.cpp
src/printer/smt2/smt2_printer.h
src/printer/tptp/tptp_printer.cpp
src/printer/tptp/tptp_printer.h
src/smt/command.cpp
src/smt/node_command.cpp
test/regress/regress0/datatypes/dt-param-2.6-print.smt2
test/unit/parser/parser_black.h