* src/expr/node.h: add a copy constructor. Apparently GCC doesn't
authorMorgan Deters <mdeters@gmail.com>
Thu, 25 Feb 2010 07:48:03 +0000 (07:48 +0000)
committerMorgan Deters <mdeters@gmail.com>
Thu, 25 Feb 2010 07:48:03 +0000 (07:48 +0000)
commit826f583ee14b922f39666dc827a5624fff753724
tree03e7f1ad98b003dae5f6406bb990a715041d239c
parentf716b67e7bedd90c4dd43617158c0f55c1811334
* src/expr/node.h: add a copy constructor.  Apparently GCC doesn't
  recognize an instantiation of the join conversion/copy ctor with
  ref_count = ref_count_1 as a copy constructor.  Problems with
  reference counts ensue.

* src/theory/theory.h, src/theory/theory.cpp: Theory base
  implementation work.  Changed from continuation-style theory calls
  to having an data member for the output channel.  registerTerm() and
  preRegisterTerm() work.

* src/theory/output_channel.h, src/theory/theory.h,
  src/theory/theory.cpp, src/theory/uf/theory_uf.h,
  src/theory/uf/theory_uf.cpp: merged ExplainOutputChannel into
  OutputChannel.

* test/unit/expr/node_black.h: remove testPlusNode(),
  testUMinusNode(), testMultNode().

* src/expr/attribute.h: new facilities ManagedAttribute<> and
  CDAttribute<>, and add new template parameters to Attribute<>.  Make
  CDAttribute<>s work with context manager.

* src/expr/attribute.h, src/expr/node_manager.h: VarNameAttr and
  TypeAttr are now "owned" (defined) by the NodeManager.  The
  AttributeManager knows nothing of specific attributes, it just as
  all the code for dealing generically with attributes.

* test/unit/expr/node_white.h: test new attribute facilities.

* src/expr/soft_node.h: removed: We now have TNode, so SoftNode goes
  away.

* src/theory/Makefile.am: fixed improper linking of theories

* src/theory/theory_engine.h: some implementation work (mainly stubs
  for now, just to make sure TheoryUF can be instantiated properly,
  etc.)

* src/expr/node_value.cpp, src/expr/node_value.h: move a number of
  function implementations to the header and make them inline

* src/expr/node_manager.cpp, src/expr/node_manager.h: move a number of
  function implementations to the header and make them inline

* src/theory/theoryof_table_prologue.h,
  src/theory/theoryof_table_epilogue.h, src/theory/mktheoryof,
  src/theory/Makefile.am: make the theoryOf() table from kinds and
  implement TheoryEngine::theoryOf().

* src/theory/arith/Makefile, src/theory/bool/Makefile: generated these
  stub Makefiles (with contrib/addsourcedir) as per policy

* src/theory/arith, src/theory/bool [directory properties]: add .deps
  to svn:ignore.

* contrib/configure-in-place: permit configuring "in-place" in the
  source directory.

* contrib/get-authors, contrib/dimacs_to_smt.pl,
  contrib/update-copyright.pl, contrib/get-authors,
  contrib/addsourcedir, src/expr/mkkind: copyright notice

* src/expr/node_manager.h, src/expr/node_builder.h,
  src/prop/prop_engine.h, src/prop/prop_engine.cpp,
  src/theory/theory_engine.h, src/smt/smt_engine.h, src/smt/smt_engine.cpp,
  src/theory/output_channel.h: turn "const Node&"-typed formal
  parameters into "TNode"

* src/theory/bool, src/theory/booleans: "bool" directory renamed "booleans"
  to avoid keyword clash on containing namespace

* src/theory/booleans/theory_def.h, src/theory/uf/theory_def.h,
  src/theory/arith/theory_def.h: "define" a theory simply (for automatic
  theoryOf() generator).

* src/Makefile.am: build theory subdirectory before prop, smt, etc. so that
  src/theory/theoryof_table.h header gets generated before it's needed

* src/expr/node_prologue.h, src/expr/node_middle.h: move "Kind" into a
  separate CVC4::kind namespace to avoid its contents from cluttering
  the CVC4 root namespace.  Import the symbol "Kind" into the CVC4 namespace
  but not the enum values.

* src/expr/node_manager.h, src/expr/node.h, src/expr/node_value.h,
  src/expr/node_value.cpp, src/expr/expr.cpp, src/theory/uf/theory_uf.cpp,
  src/prop/cnf_stream.cpp, src/parser/smt/smt_parser.g,
  src/parser/cvc/cvc_parser.g, src/parser/antlr_parser.cpp,
  test/unit/expr/node_white.h, test/unit/expr/node_black.h,
  test/unit/expr/kind_black.h, test/unit/expr/node_builder_black.h:
  update for having moved Kind into CVC4::kind.

* src/parser/parser.cpp: added file-does-not-exist check (was failing
  silently).
57 files changed:
contrib/addsourcedir
contrib/configure-in-place [new file with mode: 0755]
contrib/dimacs_to_smt.pl
contrib/get-authors
contrib/update-copyright.pl
src/Makefile.am
src/expr/Makefile.am
src/expr/attribute.h
src/expr/expr.cpp
src/expr/kind_middle.h
src/expr/kind_prologue.h
src/expr/mkkind
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/soft_node.h [deleted file]
src/main/main.cpp
src/parser/antlr_parser.cpp
src/parser/cvc/cvc_parser.g
src/parser/parser.cpp
src/parser/smt/smt_parser.g
src/prop/cnf_stream.cpp
src/prop/prop_engine.cpp
src/prop/prop_engine.h
src/smt/smt_engine.cpp
src/smt/smt_engine.h
src/theory/Makefile.am
src/theory/arith/Makefile [new file with mode: 0644]
src/theory/arith/Makefile.am
src/theory/arith/theory_arith.h [new file with mode: 0644]
src/theory/arith/theory_def.h [new file with mode: 0644]
src/theory/bool/Makefile.am [deleted file]
src/theory/bool/kinds [deleted file]
src/theory/booleans/Makefile [new file with mode: 0644]
src/theory/booleans/Makefile.am [new file with mode: 0644]
src/theory/booleans/kinds [new file with mode: 0644]
src/theory/booleans/theory_bool.h [new file with mode: 0644]
src/theory/booleans/theory_def.h [new file with mode: 0644]
src/theory/mktheoryof [new file with mode: 0755]
src/theory/output_channel.h
src/theory/theory.cpp
src/theory/theory.h
src/theory/theory_engine.h
src/theory/theoryof_table_epilogue.h [new file with mode: 0644]
src/theory/theoryof_table_middle.h [new file with mode: 0644]
src/theory/theoryof_table_prologue.h [new file with mode: 0644]
src/theory/uf/Makefile.am
src/theory/uf/theory_def.h [new file with mode: 0644]
src/theory/uf/theory_uf.cpp
src/theory/uf/theory_uf.h
test/unit/expr/kind_black.h
test/unit/expr/node_black.h
test/unit/expr/node_builder_black.h
test/unit/expr/node_white.h