* (define-fun...) now has proper type checking in non-debug builds
authorMorgan Deters <mdeters@gmail.com>
Fri, 8 Oct 2010 23:12:28 +0000 (23:12 +0000)
committerMorgan Deters <mdeters@gmail.com>
Fri, 8 Oct 2010 23:12:28 +0000 (23:12 +0000)
commite63abd23b45a078a42cafb277a4817abb4d044a1
tree43b8aaccc9b49887280e0c77471c5346eb1cf9c4
parentfccdb4cbe2cde7c34e82f33e9de850a046fef888
* (define-fun...) now has proper type checking in non-debug builds
  (resolves bug #212)

* also closed some other type checking loopholes in SmtEngine

* small fixes to define-sort (resolves bug #214)

* infrastructural support for printing expressions in languages
  other than the internal representation language using an IO
  manipulator, e.g.:

    cout << Expr::setlanguage(language::output::LANG_SMTLIB_V2) << expr;

  main() sets the output language for all streams to correspond to
  the input language

* support delaying type checking in debug builds, so that one can debug
  the type checker itself (before it was difficult, because debug builds did
  all the type checking on Node creation!): new command-line flag
  --no-early-type-checking (only makes sense for debug builds)

* disallowed copy-construction of ExprManager and NodeManager, and made other
  constructors explicit; previously it was easy to unintentionally create
  duplicate managers, with really weird results (i.e., disappearing
  attributes!)
35 files changed:
src/expr/attribute.h
src/expr/declaration_scope.cpp
src/expr/expr_manager_template.cpp
src/expr/expr_manager_template.h
src/expr/expr_template.cpp
src/expr/expr_template.h
src/expr/mkmetakind
src/expr/node.h
src/expr/node_builder.h
src/expr/node_manager.cpp
src/expr/node_manager.h
src/expr/node_value.cpp
src/expr/node_value.h
src/expr/type.cpp
src/expr/type.h
src/expr/type_node.h
src/main/getopt.cpp
src/main/main.cpp
src/main/usage.h
src/parser/antlr_input.cpp
src/parser/parser_builder.cpp
src/parser/parser_exception.h
src/parser/parser_options.h
src/parser/smt2/Smt2.g
src/smt/smt_engine.cpp
src/smt/smt_engine.h
src/util/Makefile.am
src/util/configuration.cpp
src/util/configuration_private.h
src/util/language.h [new file with mode: 0644]
src/util/options.h
src/util/triple.h
test/regress/regress0/simple-rdl-definefun.smt2
test/unit/parser/parser_black.h
test/unit/parser/parser_builder_black.h