PARSER STUFF:
authorMorgan Deters <mdeters@gmail.com>
Thu, 1 Apr 2010 05:54:26 +0000 (05:54 +0000)
committerMorgan Deters <mdeters@gmail.com>
Thu, 1 Apr 2010 05:54:26 +0000 (05:54 +0000)
commita2e17e436cae22997c762a424cf2cddcbab317ac
tree635a072109f0c2a6b10260cba87fe5e10fab333e
parent5f92777db6265321759f463e6c703111cdfc9a80
PARSER STUFF:

* Other minor changes to the new parser to match coding guidelines,
  add documentation, ....

* Add CFLAGS stuff to configure.ac parser Makefile.ams.  This ensures
  that profiling, coverage, optimization, debugging, and warning
  level options will apply to the new parser as well (which is in C,
  not C++).  This fixes the deprecated warning we were seeing this
  evening.

* Now, if you have ANTLR_HOME set in your environment, you don't need
  to specify --with-antlr-dir to ./configure or have libantlr3c
  installed in standard places.  --with-antlr-dir still overrides
  $ANTLR_HOME, and if the installation in $ANTLR_HOME is missing or
  doesn't work, the standard places are still tried.

* Extend "silent make" to new parser stuff.

* Added src/parser/bounded_token_buffer.{h,cpp} to the list of
  exclusions in contrib/update-copyright.pl and mention them as
  excluded from CVC4 copyright in COPYING.  They are antlr3-derived
  works, covered under a BSD license.

OTHER STUFF:

* expr_manager.h, expr.h, expr_manager.cpp, and expr.cpp are now
  auto-generated by a "mkexpr" script.  This provides the correct
  instantiations of mkConst() for public use, e.g., by the parser.

* Fix doxygen documentation in expr, expr_manager.. closes bug #35

* Node::isAtomic() implemented in a better way, based on theory kinds
  files.  Fixes bug #40.  To support this, a "nonatomic_operator"
  command has been added.  All other "parameterized" or "operator"
  kinds are atomic.

* Added expr_black test

* Remove kind::TRUE and kind::FALSE and make a new CONST_BOOLEAN kind
  that takes a "bool" payload; for example, to make "true" you now do
  nodeManager->mkConst(true).

* Make new "cvc4_public.h" and "cvc4parser_public.h" headers.  Private
  headers should include "cvc4_private.h"
  (resp. "cvc4parser_private.h"), which existed previously.  Public
  headers should include the others.  **No one** should include the
  autoheader #include (which has been renamed "cvc4autoconfig.h")
  directly, and public CVC4 headers can't access its #defines.  This
  is to avoid us having the same distribution problem as libantlr3c.

* Preliminary fixes based on Tim's code review of attributes (bug #61).
  This includes splitting hairy template internals into
  attribute_internals.h, for which another code review ticket will be
  opened.  Bug is still outstanding, but pending further
  refactoring/documentation.

* Some *HashFcns renamed to *HashStrategy to match refactoring done
  elsewhere (done by Chris?) earlier this week.

* Simplified creation of make rules for generated files (expr.cpp,
  expr.h, expr_manager.cpp, expr_manager.h, theoryof_table.h, kind.h,
  metakind.h).

* CVC4::Configuration interface and implementation split (so private
  stuff doesn't leak into public headers).

* Some documentation/code formatting fixes.

* Add required versions of autotools to autogen.sh.

* src/expr/mkmetakind: fix a nonportable thing in invocation of "expr"
  that was causing warnings on Red Hat.

* src/context/cdmap.h: add workaround to what appears to be a g++ 4.1
  parsing bug.
100 files changed:
COPYING
autogen.sh
config/antlr.m4
configure.ac
contrib/update-copyright.pl
src/Makefile.am
src/context/cdmap.h
src/expr/Makefile.am
src/expr/attribute.cpp
src/expr/attribute.h
src/expr/attribute_internals.h [new file with mode: 0644]
src/expr/builtin_kinds
src/expr/command.h
src/expr/expr.cpp [deleted file]
src/expr/expr.h [deleted file]
src/expr/expr_manager.cpp [deleted file]
src/expr/expr_manager.h [deleted file]
src/expr/expr_manager_template.cpp [new file with mode: 0644]
src/expr/expr_manager_template.h [new file with mode: 0644]
src/expr/expr_template.cpp [new file with mode: 0644]
src/expr/expr_template.h [new file with mode: 0644]
src/expr/kind_template.h
src/expr/metakind_template.h
src/expr/mkexpr [new file with mode: 0755]
src/expr/mkkind
src/expr/mkmetakind
src/expr/node.h
src/expr/node_manager.h
src/expr/node_value.h
src/expr/type.h
src/include/cvc4_config.h [deleted file]
src/include/cvc4_private.h
src/include/cvc4_public.h [new file with mode: 0644]
src/include/cvc4parser_private.h
src/main/getopt.cpp
src/main/main.cpp
src/main/main.h
src/main/util.cpp
src/parser/Makefile.am
src/parser/antlr_input.cpp
src/parser/bounded_token_buffer.cpp
src/parser/bounded_token_factory.cpp
src/parser/bounded_token_factory.h
src/parser/cvc/Cvc.g
src/parser/cvc/Makefile.am
src/parser/cvc/cvc_input.cpp
src/parser/cvc/cvc_input.h
src/parser/input.cpp
src/parser/input.h
src/parser/memory_mapped_input_buffer.cpp
src/parser/memory_mapped_input_buffer.h
src/parser/parser_exception.h
src/parser/parser_options.h
src/parser/smt/Makefile.am
src/parser/smt/Smt.g
src/parser/smt/smt_input.cpp
src/parser/smt/smt_input.h
src/prop/cnf_stream.cpp
src/prop/minisat/core/Solver.h
src/prop/minisat/mtl/Alg.h
src/prop/minisat/mtl/BasicHeap.h
src/prop/minisat/mtl/BoxedVec.h
src/prop/minisat/mtl/Heap.h
src/prop/minisat/mtl/Map.h
src/prop/minisat/mtl/Queue.h
src/prop/minisat/mtl/Sort.h
src/prop/minisat/mtl/Vec.h
src/prop/prop_engine.h
src/prop/sat.h
src/smt/smt_engine.h
src/theory/Makefile.am
src/theory/arith/kinds
src/theory/booleans/kinds
src/theory/mktheoryof
src/theory/theory.h
src/theory/theory_engine.cpp
src/theory/theory_engine.h
src/util/Assert.cpp
src/util/Assert.h
src/util/Makefile.am
src/util/bool.h [new file with mode: 0644]
src/util/configuration.cpp [new file with mode: 0644]
src/util/configuration.h
src/util/debug.h
src/util/decision_engine.h
src/util/exception.h
src/util/integer.cpp
src/util/integer.h
src/util/model.h
src/util/options.h
src/util/output.cpp
src/util/output.h
src/util/rational.cpp
src/util/rational.h
src/util/result.h
test/unit/Makefile.am
test/unit/expr/expr_black.h [new file with mode: 0644]
test/unit/expr/node_black.h
test/unit/expr/node_builder_black.h
test/unit/theory/theory_black.h