** Don't fear the files-changed list, almost all changes are in the **
authorMorgan Deters <mdeters@gmail.com>
Fri, 4 Jun 2010 18:55:22 +0000 (18:55 +0000)
committerMorgan Deters <mdeters@gmail.com>
Fri, 4 Jun 2010 18:55:22 +0000 (18:55 +0000)
** file-level documentation at the top of the sources.              **

This is the "make bugzilla stop bugging me" bugfix commit.

* Remove BackedNodeBuilder<> and collapse NodeBuilder<> hierarchy.
  Updated documentation in the file.  Resolves bug #99.

* Convenience NodeBuilders (PlusNodeBuilder, OrNodeBuilder, etc.)
  moved into a separate file.  Partially resolves bug #100.

* Moved isAssociative(Kind) into kind.h (and into the CVC4::kind
  namespace) instead of metakind.h (where it was in CVC4::metakind).
  This clears up a warning (private #inclusion) from the SMT and SMT2
  parsers, and maybe makes more sense anyways, since this is based on
  the kind (and not the metakind) of an operator.

* Documentation improvement; doxygen top-level \file gestures, \brief
  gestures for files, etc.  Changed contrib/update-copyright.pl for
  this change, and post-processed to add \brief.  Resolves bug #98.

* Removed ExprManager::mkExpr(Kind) and NodeManager::mkNode(Kind).
  They no longer made sense.  Resolves bug #91.

172 files changed:
contrib/update-copyright.pl
src/context/cdlist.h
src/context/cdmap.h
src/context/cdo.h
src/context/cdset.h
src/context/context.cpp
src/context/context.h
src/context/context_mm.cpp
src/context/context_mm.h
src/expr/Makefile.am
src/expr/attribute.cpp
src/expr/attribute.h
src/expr/attribute_internals.h
src/expr/builtin_type_rules.h
src/expr/command.cpp
src/expr/command.h
src/expr/convenience_node_builders.h [new file with mode: 0644]
src/expr/declaration_scope.cpp
src/expr/declaration_scope.h
src/expr/expr_manager_scope.h
src/expr/expr_manager_template.cpp
src/expr/expr_manager_template.h
src/expr/expr_template.cpp
src/expr/expr_template.h
src/expr/kind_template.h
src/expr/metakind_template.h
src/expr/node.cpp
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_constant.h
src/expr/type_node.cpp
src/expr/type_node.h
src/include/cvc4_private.h
src/include/cvc4_public.h
src/include/cvc4parser_private.h
src/include/cvc4parser_public.h
src/main/getopt.cpp
src/main/main.cpp
src/main/main.h
src/main/usage.h
src/main/util.cpp
src/parser/antlr_input.cpp
src/parser/antlr_input.h
src/parser/antlr_input_imports.cpp
src/parser/bounded_token_buffer.cpp
src/parser/bounded_token_buffer.h
src/parser/bounded_token_factory.cpp
src/parser/bounded_token_factory.h
src/parser/cvc/Cvc.g
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.cpp
src/parser/parser.h
src/parser/parser_builder.cpp
src/parser/parser_builder.h
src/parser/parser_exception.h
src/parser/parser_options.h
src/parser/smt/Smt.g
src/parser/smt/smt_input.cpp
src/parser/smt/smt_input.h
src/parser/smt2/Smt2.g
src/parser/smt2/smt2.cpp
src/parser/smt2/smt2.h
src/parser/smt2/smt2_input.cpp
src/parser/smt2/smt2_input.h
src/prop/cnf_stream.cpp
src/prop/cnf_stream.h
src/prop/prop_engine.cpp
src/prop/prop_engine.h
src/prop/sat.cpp
src/prop/sat.h
src/smt/smt_engine.cpp
src/smt/smt_engine.h
src/theory/arith/arith_constants.h
src/theory/arith/arith_rewriter.cpp
src/theory/arith/arith_rewriter.h
src/theory/arith/arith_utilities.h
src/theory/arith/basic.h
src/theory/arith/delta_rational.cpp
src/theory/arith/delta_rational.h
src/theory/arith/normal.h
src/theory/arith/partial_model.cpp
src/theory/arith/partial_model.h
src/theory/arith/slack.h
src/theory/arith/tableau.h
src/theory/arith/theory_arith.cpp
src/theory/arith/theory_arith.h
src/theory/arith/theory_arith_type_rules.h
src/theory/arrays/theory_arrays.h
src/theory/booleans/theory_bool.h
src/theory/booleans/theory_bool_type_rules.h
src/theory/bv/theory_bv.h
src/theory/bv/theory_bv_type_rules.h
src/theory/interrupted.h
src/theory/output_channel.h
src/theory/theory.cpp
src/theory/theory.h
src/theory/theory_engine.cpp
src/theory/theory_engine.h
src/theory/theoryof_table_template.h
src/theory/uf/ecdata.cpp
src/theory/uf/ecdata.h
src/theory/uf/theory_uf.cpp
src/theory/uf/theory_uf.h
src/theory/uf/theory_uf_type_rules.h
src/util/Assert.cpp
src/util/Assert.h
src/util/bitvector.cpp
src/util/bitvector.h
src/util/bool.h
src/util/configuration.cpp
src/util/configuration.h
src/util/debug.h
src/util/decision_engine.cpp
src/util/decision_engine.h
src/util/exception.h
src/util/gmp_util.h
src/util/hash.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
src/util/sexpr.h
src/util/unique_id.h
test/unit/context/cdlist_black.h
test/unit/context/cdmap_black.h
test/unit/context/cdmap_white.h
test/unit/context/cdo_black.h
test/unit/context/context_black.h
test/unit/context/context_mm_black.h
test/unit/context/context_white.h
test/unit/expr/attribute_black.h
test/unit/expr/attribute_white.h
test/unit/expr/declaration_scope_black.h
test/unit/expr/expr_manager_public.h
test/unit/expr/expr_public.h
test/unit/expr/kind_black.h
test/unit/expr/node_black.h
test/unit/expr/node_builder_black.h
test/unit/expr/node_manager_black.h
test/unit/expr/node_manager_white.h
test/unit/expr/node_white.h
test/unit/memory.h
test/unit/parser/parser_black.h
test/unit/parser/parser_builder_black.h
test/unit/prop/cnf_stream_black.h
test/unit/theory/theory_black.h
test/unit/theory/theory_uf_white.h
test/unit/util/assert_white.h
test/unit/util/bitvector_black.h
test/unit/util/configuration_black.h
test/unit/util/exception_black.h
test/unit/util/integer_black.h
test/unit/util/integer_white.h
test/unit/util/output_black.h
test/unit/util/rational_black.h
test/unit/util/rational_white.h

index dce4533464a1b90b63d60d5d4546e07d3f40325a..cf02e1ece840480cb94c332c2c7988132b337aa3 100755 (executable)
@@ -28,7 +28,9 @@
 # the license.)
 
 my $excluded_directories = '^(minisat|CVS|generated)$';
-my $excluded_paths = '^(src/parser/bounded_token_buffer\.(h|cpp))|(src/parser/antlr_input_imports.cpp)$';
+# re-include bounded_token_buffer.{h,cpp}
+#my $excluded_paths = '^(src/parser/bounded_token_buffer\.(h|cpp))|(src/parser/antlr_input_imports.cpp)$';
+my $excluded_paths = '^src/parser/antlr_input_imports.cpp$';
 
 # Years of copyright for the template.  E.g., the string
 # "1985, 1987, 1992, 1997, 2008" or "2006-2009" or whatever.
@@ -40,7 +42,7 @@ my $standard_template = <<EOF;
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\\endverbatim
 EOF
 
 my $public_template = <<EOF;
@@ -49,7 +51,7 @@ my $public_template = <<EOF;
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\\endverbatim
 EOF
 
 ## end config ##
@@ -125,11 +127,12 @@ sub recurse {
         } elsif($file =~ /\.g$/) {
           # avoid javadoc-style comment here; antlr complains
           print $OUT "/* *******************                                                        */\n";
-          print $OUT "/*  $file\n";
+          print $OUT "/*! \\file $file\n";
         } else {
           print $OUT "/*********************                                                        */\n";
-          print $OUT "/** $file\n";
+          print $OUT "/*! \\file $file\n";
         }
+        print $OUT " ** \\verbatim\n";
         print $OUT " ** Original author: $author\n";
         print $OUT " ** Major contributors: $major_contributors\n";
         print $OUT " ** Minor contributors (to current version): $minor_contributors\n";
@@ -143,21 +146,25 @@ sub recurse {
         print "adding\n";
         if($file =~ /\.(y|yy|ypp|Y)$/) {
           print $OUT "%{/*******************                                                        */\n";
-          print $OUT "/** $file\n";
+          print $OUT "/*! \\file $file\n";
         } elsif($file =~ /\.g$/) {
           # avoid javadoc-style comment here; antlr complains
           print $OUT "/* *******************                                                        */\n";
-          print $OUT "/*  $file\n";
+          print $OUT "/*! \\file $file\n";
         } else {
           print $OUT "/*********************                                                        */\n";
-          print $OUT "/** $file\n";
+          print $OUT "/*! \\file $file\n";
         }
+        print $OUT " ** \\verbatim\n";
         print $OUT " ** Original author: $author\n";
         print $OUT " ** Major contributors: $major_contributors\n";
         print $OUT " ** Minor contributors (to current version): $minor_contributors\n";
         print $OUT $standard_template;
         print $OUT " **\n";
-        print $OUT " ** [[ Add file-specific comments here ]]\n";
+        print $OUT " ** \brief [[ Add one-line brief description here ]]\n";
+        print $OUT " **\n";
+        print $OUT " ** [[ Add lengthier description here ]]\n";
+        print $OUT " ** \\todo document this file\n";
         print $OUT " **/\n\n";
         print $OUT $line;
         if($file =~ /\.(y|yy|ypp|Y)$/) {
index a2abc08d8ee09a9a0b359542b1629478a8c3742f..e3bf4d56b77a9d346c839d551678f7874611dc8e 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** cdlist.h
+/*! \file cdlist.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): barrett, taking
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Context-dependent list class.
  **
  ** Context-dependent list class.
  **/
index b0ffc91a449482253394e078d3fbe33c8abfb547..28be629c42b86bc6a546f5616fcfb4b2d8554f6b 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** cdmap.h
+/*! \file cdmap.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Context-dependent map class.
  **
  ** Context-dependent map class.  Generic templated class for a map
  ** which must be saved and restored as contexts are pushed and
index ead43b2e872a3f82182faa84034d9a5ad9760571..20c512fbc35a5ae92dc61912857bb0907e82fe04 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** cdo.h
+/*! \file cdo.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): barrett
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A context-dependent object.
  **
  ** A context-dependent object.
  **/
index f51e689d5a2d2004178b28d3f6b4cefa4d177ec2..40d504cad571335273d93391e063994a920f479c 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** cdset.h
+/*! \file cdset.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Context-dependent set class.
  **
  ** Context-dependent set class.
  **/
index b003571c16c9bf7df6d86a6f6081b38a341ce7dd..994f644a7ef3bb1f05877476c374d1dc5c4bbf4f 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** context.cpp
+/*! \file context.cpp
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: barrett
- ** Minor contributors (to current version): dejan
+ ** Minor contributors (to current version): cconway
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Implementation of base context operations.
  **
  ** Implementation of base context operations.
  **/
index caa5fa57b7346b62f1a43a765e79099e30bee20d..12d7c4673e398820d99d71e67a20f595052deaae 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** context.h
+/*! \file context.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: barrett
  ** Minor contributors (to current version): taking, dejan
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Context class and context manager.
  **
  ** Context class and context manager.
  **/
index a202edf195ac04ddb549c4f95972df8a3e77e3d8..6a277245ec496e9910a84e422b1dd29dcac16b0e 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** context_mm.cpp
+/*! \file context_mm.cpp
+ ** \verbatim
  ** Original author: barrett
  ** Major contributors: mdeters
  ** Minor contributors (to current version): none
@@ -8,9 +9,11 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
  **
- ** Implementation of Context Memory Manaer
+ ** \brief Implementation of Context Memory Manager.
+ **
+ ** Implementation of Context Memory Manager
  **/
 
 
index 5920859e1f69e0c9754f94453b21d311c6d4763a..1eb452113d05d25bf79fafa2e3c926bca91b8fac 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** context_mm.h
+/*! \file context_mm.h
+ ** \verbatim
  ** Original author: barrett
  ** Major contributors: mdeters
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Region-based memory manager with stack-based push and pop.
  **
  ** Region-based memory manager with stack-based push and pop.  Designed
  ** for use by ContextManager.
index c3c3fccf6e9eb1a3516c2ed13056fe7cfbefcb67..cacae45cea99f4850b4b7c18de72e056ba6f4743 100644 (file)
@@ -12,6 +12,7 @@ libexpr_la_SOURCES = \
        type_node.cpp \
        builtin_type_rules.h \
        node_builder.h \
+       convenience_node_builders.h \
        @srcdir@/expr.h \
        type.h \
        type.cpp \
index bc724cdd111c21f500eac581819d4f9bbaa5b4ca..5aaa7393a430d7af1ac0e4ed58f1d0b361e28126 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** attribute.cpp
+/*! \file attribute.cpp
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: none
+ ** Major contributors: dejan
  ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief AttributeManager implementation.
  **
  ** AttributeManager implementation.
  **/
index 619f60a6c5b7cf07579677b2640add46808c0960..2ef34a7719a39550c632829a5d1034d22d548788 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** attribute.h
+/*! \file attribute.h
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: none
+ ** Major contributors: dejan
  ** Minor contributors (to current version): cconway, taking
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Node attributes.
  **
  ** Node attributes.
  **/
index 4ac89afec529582369f14c4a4855166521965195..b5ccb6f79387e69a159d3c745bdf8809714d028d 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** attribute_internals.h
+/*! \file attribute_internals.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
- ** Minor contributors (to current version): dejan, taking, cconway
+ ** Minor contributors (to current version): taking, dejan, cconway
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Node attributes' internals.
  **
  ** Node attributes' internals.
  **/
index e0ad0b038c1fcb5c298201b433c704f98841638e..afd206260e3e0b1c33dd61a85a24dacd164eca24 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** builtin_type_rules.cpp
+/*! \file builtin_type_rules.cpp
+ ** \verbatim
  ** Original author: dejan
  ** Major contributors: none
  ** This file is part of the CVC4 prototype.
@@ -7,7 +8,11 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add brief comments here ]]
+ **
+ ** [[ Add file-specific comments here ]]
  **/
 
 #include "cvc4_private.h"
index 5fc9dee20046a643e3beb3c90b8da122d46e09e2..6c466a74c62e1d4338d488ca04b03721c96f5cdb 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** command.cpp
+/*! \file command.cpp
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: dejan
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Implementation of command objects.
  **
  ** Implementation of command objects.
  **/
index 5061722f6f3514ebb65e4e5d2a2d2f4a9a8c042c..388ad62e6f40433d3222c08618b1a0cc2b9be539 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** command.h
+/*! \file command.h
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: dejan
- ** Minor contributors (to current version): cconway
+ ** Major contributors: cconway, dejan
+ ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Implementation of the command pattern on SmtEngines.
  **
  ** Implementation of the command pattern on SmtEngines.  Command
  ** objects are generated by the parser (typically) to implement the
diff --git a/src/expr/convenience_node_builders.h b/src/expr/convenience_node_builders.h
new file mode 100644 (file)
index 0000000..655accd
--- /dev/null
@@ -0,0 +1,401 @@
+/*********************                                                        */
+/*! \file convenience_node_builders.h
+ ** \verbatim
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief Convenience node builders.
+ **
+ ** These are convenience node builders for building AND, OR, PLUS,
+ ** and MULT expressions.
+ **
+ ** \todo These should be moved into theory code (say,
+ ** src/theory/booleans/node_builders.h and
+ ** src/theory/arith/node_builders.h), but for now they're here
+ ** because their design requires CVC4::NodeBuilder to friend them.
+ **/
+
+// TODO: add templatized NodeTemplate<ref_count> to all these inlines
+// for 'const [T]Node&' arguments?  Technically a lot of time is spent
+// in the TNode conversion and copy constructor, but this should be
+// optimized into a simple pointer copy (?)
+// TODO: double-check this.
+
+#include "cvc4_private.h"
+
+#ifndef __CVC4__CONVENIENCE_NODE_BUILDERS_H
+#define __CVC4__CONVENIENCE_NODE_BUILDERS_H
+
+#include "expr/node_builder.h"
+
+namespace CVC4 {
+
+class AndNodeBuilder {
+public:
+  NodeBuilder<> d_eb;
+
+  inline AndNodeBuilder(const NodeBuilder<>& eb) : d_eb(eb) {
+    d_eb.collapseTo(kind::AND);
+  }
+
+  inline AndNodeBuilder(TNode a, TNode b) : d_eb(kind::AND) {
+    d_eb << a << b;
+  }
+
+  template <bool rc>
+  inline AndNodeBuilder& operator&&(const NodeTemplate<rc>&);
+
+  template <bool rc>
+  inline OrNodeBuilder operator||(const NodeTemplate<rc>&);
+
+  inline operator NodeBuilder<>() { return d_eb; }
+  inline operator Node() { return d_eb; }
+
+};/* class AndNodeBuilder */
+
+class OrNodeBuilder {
+public:
+  NodeBuilder<> d_eb;
+
+  inline OrNodeBuilder(const NodeBuilder<>& eb) : d_eb(eb) {
+    d_eb.collapseTo(kind::OR);
+  }
+
+  inline OrNodeBuilder(TNode a, TNode b) : d_eb(kind::OR) {
+    d_eb << a << b;
+  }
+
+  template <bool rc>
+  inline AndNodeBuilder operator&&(const NodeTemplate<rc>&);
+
+  template <bool rc>
+  inline OrNodeBuilder& operator||(const NodeTemplate<rc>&);
+
+  inline operator NodeBuilder<>() { return d_eb; }
+  inline operator Node() { return d_eb; }
+
+};/* class OrNodeBuilder */
+
+class PlusNodeBuilder {
+public:
+  NodeBuilder<> d_eb;
+
+  inline PlusNodeBuilder(const NodeBuilder<>& eb) : d_eb(eb) {
+    d_eb.collapseTo(kind::PLUS);
+  }
+
+  inline PlusNodeBuilder(TNode a, TNode b) : d_eb(kind::PLUS) {
+    d_eb << a << b;
+  }
+
+  template <bool rc>
+  inline PlusNodeBuilder& operator+(const NodeTemplate<rc>&);
+
+  template <bool rc>
+  inline PlusNodeBuilder& operator-(const NodeTemplate<rc>&);
+
+  template <bool rc>
+  inline MultNodeBuilder operator*(const NodeTemplate<rc>&);
+
+  inline operator NodeBuilder<>() { return d_eb; }
+  inline operator Node() { return d_eb; }
+
+};/* class PlusNodeBuilder */
+
+class MultNodeBuilder {
+public:
+  NodeBuilder<> d_eb;
+
+  inline MultNodeBuilder(const NodeBuilder<>& eb) : d_eb(eb) {
+    d_eb.collapseTo(kind::MULT);
+  }
+
+  inline MultNodeBuilder(TNode a, TNode b) : d_eb(kind::MULT) {
+    d_eb << a << b;
+  }
+
+  template <bool rc>
+  inline PlusNodeBuilder operator+(const NodeTemplate<rc>&);
+
+  template <bool rc>
+  inline PlusNodeBuilder operator-(const NodeTemplate<rc>&);
+
+  template <bool rc>
+  inline MultNodeBuilder& operator*(const NodeTemplate<rc>&);
+
+  inline operator NodeBuilder<>() { return d_eb; }
+  inline operator Node() { return d_eb; }
+
+};/* class MultNodeBuilder */
+
+template <unsigned nchild_thresh>
+inline NodeBuilder<nchild_thresh>& NodeBuilder<nchild_thresh>::operator&=(TNode e) {
+  return collapseTo(kind::AND).append(e);
+}
+
+template <unsigned nchild_thresh>
+inline NodeBuilder<nchild_thresh>& NodeBuilder<nchild_thresh>::operator|=(TNode e) {
+  return collapseTo(kind::OR).append(e);
+}
+
+template <unsigned nchild_thresh>
+inline NodeBuilder<nchild_thresh>& NodeBuilder<nchild_thresh>::operator+=(TNode e) {
+  return collapseTo(kind::PLUS).append(e);
+}
+
+template <unsigned nchild_thresh>
+inline NodeBuilder<nchild_thresh>& NodeBuilder<nchild_thresh>::operator-=(TNode e) {
+  return collapseTo(kind::PLUS).
+    append(NodeManager::currentNM()->mkNode(kind::UMINUS, e));
+}
+
+template <unsigned nchild_thresh>
+inline NodeBuilder<nchild_thresh>& NodeBuilder<nchild_thresh>::operator*=(TNode e) {
+  return collapseTo(kind::MULT).append(e);
+}
+
+template <bool rc>
+inline AndNodeBuilder& AndNodeBuilder::operator&&(const NodeTemplate<rc>& n) {
+  d_eb.append(n);
+  return *this;
+}
+
+template <bool rc>
+inline OrNodeBuilder AndNodeBuilder::operator||(const NodeTemplate<rc>& n) {
+  return OrNodeBuilder(Node(d_eb), n);
+}
+
+inline AndNodeBuilder& operator&&(AndNodeBuilder& a,
+                                  const AndNodeBuilder& b) {
+  return a && Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline AndNodeBuilder& operator&&(AndNodeBuilder& a,
+                                  const OrNodeBuilder& b) {
+  return a && Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline OrNodeBuilder operator||(AndNodeBuilder& a,
+                                const AndNodeBuilder& b) {
+  return a || Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline OrNodeBuilder operator||(AndNodeBuilder& a,
+                                const OrNodeBuilder& b) {
+  return a || Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+
+template <bool rc>
+inline AndNodeBuilder OrNodeBuilder::operator&&(const NodeTemplate<rc>& n) {
+  return AndNodeBuilder(Node(d_eb), n);
+}
+
+template <bool rc>
+inline OrNodeBuilder& OrNodeBuilder::operator||(const NodeTemplate<rc>& n) {
+  d_eb.append(n);
+  return *this;
+}
+
+inline AndNodeBuilder operator&&(OrNodeBuilder& a,
+                                 const AndNodeBuilder& b) {
+  return a && Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline AndNodeBuilder operator&&(OrNodeBuilder& a,
+                                 const OrNodeBuilder& b) {
+  return a && Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline OrNodeBuilder& operator||(OrNodeBuilder& a,
+                                 const AndNodeBuilder& b) {
+  return a || Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline OrNodeBuilder& operator||(OrNodeBuilder& a,
+                                 const OrNodeBuilder& b) {
+  return a || Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+
+template <bool rc>
+inline PlusNodeBuilder& PlusNodeBuilder::operator+(const NodeTemplate<rc>& n) {
+  d_eb.append(n);
+  return *this;
+}
+
+template <bool rc>
+inline PlusNodeBuilder& PlusNodeBuilder::operator-(const NodeTemplate<rc>& n) {
+  d_eb.append(NodeManager::currentNM()->mkNode(kind::UMINUS, n));
+  return *this;
+}
+
+template <bool rc>
+inline MultNodeBuilder PlusNodeBuilder::operator*(const NodeTemplate<rc>& n) {
+  return MultNodeBuilder(Node(d_eb), n);
+}
+
+inline PlusNodeBuilder& operator+(PlusNodeBuilder& a,
+                                  const PlusNodeBuilder& b) {
+  return a + Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline PlusNodeBuilder& operator+(PlusNodeBuilder& a,
+                                  const MultNodeBuilder& b) {
+  return a + Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline PlusNodeBuilder& operator-(PlusNodeBuilder&a,
+                                  const PlusNodeBuilder& b) {
+  return a - Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline PlusNodeBuilder& operator-(PlusNodeBuilder& a,
+                                  const MultNodeBuilder& b) {
+  return a - Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline MultNodeBuilder operator*(PlusNodeBuilder& a,
+                                 const PlusNodeBuilder& b) {
+  return a * Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline MultNodeBuilder operator*(PlusNodeBuilder& a,
+                                 const MultNodeBuilder& b) {
+  return a * Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+
+template <bool rc>
+inline PlusNodeBuilder MultNodeBuilder::operator+(const NodeTemplate<rc>& n) {
+  return PlusNodeBuilder(Node(d_eb), n);
+}
+
+template <bool rc>
+inline PlusNodeBuilder MultNodeBuilder::operator-(const NodeTemplate<rc>& n) {
+  return PlusNodeBuilder(Node(d_eb),
+                         NodeManager::currentNM()->mkNode(kind::UMINUS, n));
+}
+
+template <bool rc>
+inline MultNodeBuilder& MultNodeBuilder::operator*(const NodeTemplate<rc>& n) {
+  d_eb.append(n);
+  return *this;
+}
+
+inline PlusNodeBuilder operator+(MultNodeBuilder& a,
+                                 const PlusNodeBuilder& b) {
+  return a + Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline PlusNodeBuilder operator+(MultNodeBuilder& a,
+                                 const MultNodeBuilder& b) {
+  return a + Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline PlusNodeBuilder operator-(MultNodeBuilder& a,
+                                 const PlusNodeBuilder& b) {
+  return a - Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline PlusNodeBuilder operator-(MultNodeBuilder& a,
+                                 const MultNodeBuilder& b) {
+  return a - Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline MultNodeBuilder& operator*(MultNodeBuilder& a,
+                                  const PlusNodeBuilder& b) {
+  return a * Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+inline MultNodeBuilder& operator*(MultNodeBuilder& a,
+                                  const MultNodeBuilder& b) {
+  return a * Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+
+template <bool rc1, bool rc2>
+inline AndNodeBuilder operator&&(const NodeTemplate<rc1>& a,
+                                 const NodeTemplate<rc2>& b) {
+  return AndNodeBuilder(a, b);
+}
+
+template <bool rc1, bool rc2>
+inline OrNodeBuilder operator||(const NodeTemplate<rc1>& a,
+                                const NodeTemplate<rc2>& b) {
+  return OrNodeBuilder(a, b);
+}
+
+template <bool rc1, bool rc2>
+inline PlusNodeBuilder operator+(const NodeTemplate<rc1>& a,
+                                 const NodeTemplate<rc2>& b) {
+  return PlusNodeBuilder(a, b);
+}
+
+template <bool rc1, bool rc2>
+inline PlusNodeBuilder operator-(const NodeTemplate<rc1>& a,
+                                 const NodeTemplate<rc2>& b) {
+  return PlusNodeBuilder(a, NodeManager::currentNM()->mkNode(kind::UMINUS, b));
+}
+
+template <bool rc1, bool rc2>
+inline MultNodeBuilder operator*(const NodeTemplate<rc1>& a,
+                                 const NodeTemplate<rc2>& b) {
+  return MultNodeBuilder(a, b);
+}
+
+template <bool rc>
+inline AndNodeBuilder operator&&(const NodeTemplate<rc>& a,
+                                 const AndNodeBuilder& b) {
+  return a && Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+
+template <bool rc>
+inline AndNodeBuilder operator&&(const NodeTemplate<rc>& a,
+                                 const OrNodeBuilder& b) {
+  return a && Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+
+template <bool rc>
+inline OrNodeBuilder operator||(const NodeTemplate<rc>& a,
+                                const AndNodeBuilder& b) {
+  return a || Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+
+template <bool rc>
+inline OrNodeBuilder operator||(const NodeTemplate<rc>& a,
+                                const OrNodeBuilder& b) {
+  return a || Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+
+template <bool rc>
+inline PlusNodeBuilder operator+(const NodeTemplate<rc>& a,
+                                 const PlusNodeBuilder& b) {
+  return a + Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+
+template <bool rc>
+inline PlusNodeBuilder operator+(const NodeTemplate<rc>& a,
+                                 const MultNodeBuilder& b) {
+  return a + Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+
+template <bool rc>
+inline PlusNodeBuilder operator-(const NodeTemplate<rc>& a,
+                                 const PlusNodeBuilder& b) {
+  return a - Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+
+template <bool rc>
+inline PlusNodeBuilder operator-(const NodeTemplate<rc>& a,
+                                 const MultNodeBuilder& b) {
+  return a - Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+
+template <bool rc>
+inline MultNodeBuilder operator*(const NodeTemplate<rc>& a,
+                                 const PlusNodeBuilder& b) {
+  return a * Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+
+template <bool rc>
+inline MultNodeBuilder operator*(const NodeTemplate<rc>& a,
+                                 const MultNodeBuilder& b) {
+  return a * Node(const_cast<NodeBuilder<>&>(b.d_eb));
+}
+
+template <bool rc>
+inline NodeTemplate<true> operator-(const NodeTemplate<rc>& a) {
+  return NodeManager::currentNM()->mkNode(kind::UMINUS, a);
+}
+
+}/* CVC4 namespace */
+
+#endif /* __CVC4__CONVENIENCE_NODE_BUILDERS_H */
index 6dc9453d2270daf543848655fde96e6cd0ba9c1e..761dd6d24adff5543e2fe25738577fd5acf0544b 100644 (file)
@@ -1,12 +1,17 @@
 /*********************                                                        */
-/** declaration_scope.cpp
+/*! \file declaration_scope.cpp
+ ** \verbatim
  ** Original author: cconway
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Convenience class for scoping variable and type declarations (implementation).
  **
  ** Convenience class for scoping variable and type declarations (implementation)
  **/
index e33aa25fa1173143890379c2405822d9a491ba70..a6947c53620b9bd3919e173be099250e3369ee12 100644 (file)
@@ -1,12 +1,17 @@
 /*********************                                                        */
-/** context.h
+/*! \file declaration_scope.h
+ ** \verbatim
  ** Original author: cconway
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Convenience class for scoping variable and type declarations.
  **
  ** Convenience class for scoping variable and type declarations.
  **/
index 38f8fc7876a23f4d34a8637a4ba6df398e980079..cb983b006289664b58d36d2b078a33a039c554f7 100644 (file)
@@ -1,9 +1,21 @@
-/*
- * expr_manager_scope.h
- *
- *  Created on: Apr 7, 2010
- *      Author: dejan
- */
+/*********************                                                        */
+/*! \file expr_manager_scope.h
+ ** \verbatim
+ ** Original author: dejan
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
 
 #ifndef __CVC4__EXPR_MANAGER_SCOPE_H
 #define __CVC4__EXPR_MANAGER_SCOPE_H
index bf0e2f96e24fdda83ffc9f49812e8b370aa24cf9..3eb2a8109f7492036c9c25d7137c7d6244a3e059 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** expr_manager_template.cpp
+/*! \file expr_manager_template.cpp
+ ** \verbatim
  ** Original author: dejan
  ** Major contributors: cconway, mdeters
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Public-facing expression manager interface, implementation.
  **
  ** Public-facing expression manager interface, implementation.
  **/
@@ -71,17 +74,6 @@ BitVectorType ExprManager::bitVectorType(unsigned size) const {
   return Type(d_nodeManager, new TypeNode(d_nodeManager->bitVectorType(size)));
 }
 
-Expr ExprManager::mkExpr(Kind kind) {
-  const unsigned n = 0;
-  CheckArgument(n >= minArity(kind) && n <= maxArity(kind), kind,
-                "Exprs with kind %s must have at least %u children and "
-                "at most %u children (the one under construction has %u)",
-                kind::kindToString(kind).c_str(),
-                minArity(kind), maxArity(kind), n);
-  NodeManagerScope nms(d_nodeManager);
-  return Expr(this, d_nodeManager->mkNodePtr(kind));
-}
-
 Expr ExprManager::mkExpr(Kind kind, const Expr& child1) {
   const unsigned n = 1;
   CheckArgument(n >= minArity(kind) && n <= maxArity(kind), kind,
@@ -252,7 +244,7 @@ Expr ExprManager::mkVar(const Type& type) {
 
 Expr ExprManager::mkAssociative(Kind kind,
                                 const std::vector<Expr>& children) {
-  CheckArgument( metakind::isAssociative(kind), kind,
+  CheckArgument( kind::isAssociative(kind), kind,
                  "Illegal kind in mkAssociative: %s",
                  kind::kindToString(kind).c_str());
 
index 4cde091ac6fcce7b983a8bd640bcedee0a86f364..707d9a26e1673842dd551644c636197a6cdf3745 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** expr_manager_template.h
+/*! \file expr_manager_template.h
+ ** \verbatim
  ** Original author: dejan
- ** Major contributors: mdeters
- ** Minor contributors (to current version): taking, cconway
+ ** Major contributors: cconway, mdeters
+ ** Minor contributors (to current version): taking
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Public-facing expression manager interface.
  **
  ** Public-facing expression manager interface.
  **/
@@ -100,13 +103,6 @@ public:
   /** The the type for bit-vectors */
   BitVectorType bitVectorType(unsigned size) const;
 
-  /**
-   * Make a unary expression of a given kind (TRUE, FALSE,...).
-   * @param kind the kind of expression
-   * @return the expression
-   */
-  Expr mkExpr(Kind kind);
-
   /**
    * Make a unary expression of a given kind (NOT, BVNOT, ...).
    * @param child1 kind the kind of expression
index edd49f032cce92fdd59b591d3dfce98df1ca31e6..b4359cf2ac258986847c8e84c435b34b8a14b98c 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** expr_template.cpp
+/*! \file expr_template.cpp
+ ** \verbatim
  ** Original author: dejan
  ** Major contributors: mdeters
- ** Minor contributors (to current version): cconway, taking
+ ** Minor contributors (to current version): taking, cconway
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Public-facing expression interface, implementation.
  **
  ** Public-facing expression interface, implementation.
  **/
index 6597d5f14b7bbf5d0a87f757b67e4a66b896a622..73aa666e60fe03235f0d100183f8b355858a1652 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** expr_template.h
+/*! \file expr_template.h
+ ** \verbatim
  ** Original author: dejan
  ** Major contributors: mdeters
  ** Minor contributors (to current version): cconway, taking
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Public-facing expression interface.
  **
  ** Public-facing expression interface.
  **/
index 96c34a02a91047753bb8997d059b55b2be42f288..718fd58f49061d4962d770084d8e56e244cbf9a5 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** kind_template.h
+/*! \file kind_template.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Template for the Node kind header.
  **
  ** Template for the Node kind header.
  **/
@@ -57,6 +60,23 @@ ${kind_printers}
   return out;
 }
 
+/** Returns true if the given kind is associative. This is used by ExprManager to
+ * decide whether it's safe to modify big expressions by changing the grouping of
+ * the arguments. */
+/* TODO: This could be generated. */
+inline bool isAssociative(::CVC4::Kind k) {
+  switch(k) {
+  case kind::AND:
+  case kind::OR:
+  case kind::MULT:
+  case kind::PLUS:
+    return true;
+
+  default:
+    return false;
+  }
+}
+
 inline std::string kindToString(::CVC4::Kind k) {
   std::stringstream ss;
   ss << k;
index fc0910893f33320be0df2e5f4e0db72037b188f2..07919935955404683cd801e02e2e443072f67412 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** metakind_template.h
+/*! \file metakind_template.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): dejan, cconway
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Template for the metakind header.
  **
  ** Template for the metakind header.
  **/
@@ -294,23 +297,6 @@ ${metakind_ubchildren}
   return ubs[k];
 }
 
-/** Returns true if the given kind is associative. This is used by ExprManager to
- * decide whether it's safe to modify big expressions by changing the grouping of
- * the arguments. */
-/* TODO: This could be generated. */
-inline bool isAssociative(::CVC4::Kind k) {
-  switch(k) {
-  case kind::AND:
-  case kind::OR:
-  case kind::MULT:
-  case kind::PLUS:
-    return true;
-
-  default:
-    return false;
-  }
-}
-
 }/* CVC4::kind::metakind namespace */
 }/* CVC4::kind namespace */
 }/* CVC4 namespace */
index 7ebea8a70781ba8b6ea3208ef078eb6c11a4643d..2b6417e8aa64972622cd1197f387a8b260a46b31 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** node.cpp
+/*! \file node.cpp
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: none
+ ** Major contributors: dejan
  ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Reference-counted encapsulation of a pointer to node information.
  **
  ** Reference-counted encapsulation of a pointer to node information.
  **/
index 0daa3f58c42603d01f1ba9be7eb6c7fd19ead8e7..cfaab142d75c4deff55abc1fb1f1515a3cb6778c 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** node.h
+/*! \file node.h
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: dejan
- ** Minor contributors (to current version): cconway, taking
+ ** Major contributors: cconway, dejan
+ ** Minor contributors (to current version): taking
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Reference-counted encapsulation of a pointer to node information.
  **
  ** Reference-counted encapsulation of a pointer to node information.
  **/
@@ -138,8 +141,8 @@ class NodeTemplate {
   friend class NodeTemplate<false>;
   friend class NodeManager;
 
-  template <class Builder>
-  friend class NodeBuilderBase;
+  template <unsigned nchild_thresh>
+  friend class NodeBuilder;
 
   friend class ::CVC4::expr::attr::AttributeManager;
 
index 877c50d82f4e465c0469ed64104fa86e45fdcdf0..d81190d7a0d43379ca6a9df16722b1094cf49408 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** node_builder.h
+/*! \file node_builder.h
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: none
- ** Minor contributors (to current version): taking, dejan
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): taking, cconway
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A builder interface for Nodes.
  **
  ** A builder interface for Nodes.
  **
  **         returned in a Node wrapper.
  **
  ** NOTE IN 1(b) AND 2(b) THAT we can NOT create Node wrapper
- ** temporary for the NodeValue in the NodeBuilderBase<>::operator
- ** Node() member function.  If we create a temporary (for example by
- ** writing Debug("builder") << Node(nv) << endl), the NodeValue will
- ** have its reference count incremented from zero to one, then
- ** decremented, which makes it eligible for collection before the
- ** builder has even returned it!  So this is a no-no.
+ ** temporary for the NodeValue in the NodeBuilder<>::operator Node()
+ ** member function.  If we create a temporary (for example by writing
+ ** Debug("builder") << Node(nv) << endl), the NodeValue will have its
+ ** reference count incremented from zero to one, then decremented,
+ ** which makes it eligible for collection before the builder has even
+ ** returned it!  So this is a no-no.
  **
  ** There are also two cases when the NodeBuilder is clear()'ed:
  **
  **      d_nv is deallocated.
  **
  ** Regarding the backing store (typically on the stack): the file
- ** below provides three classes (two of them are templates):
- **
- **   template <class Builder> class NodeBuilderBase;
- **
- **     This is the base class for node builders.  It can not be used
- **     directly.  It contains a shared implementation but is intended
- **     to be subclassed.  Derived classes supply its "in-line" buffer.
- **
- **   class BackedNodeBuilder;
- **
- **     This is the usable form for a user-supplied-backing-store node
- **     builder.  A user can allocate a buffer large enough for a
- **     NodeValue with N children (say, on the stack), then pass a
- **     pointer to this buffer, and the parameter N, to a
- **     BackedNodeBuilder.  It will use this buffer to build its
- **     NodeValue until the number of children exceeds N; then it will
- **     allocate d_nv on the heap.
- **
- **     To ensure that the buffer is properly-sized, it is recommended
- **     to use the makeStackNodeBuilder(b, N) macro to make a
- **     BackedNodeBuilder "b" with a stack-allocated buffer large
- **     enough to hold N children.
+ ** below provides the template:
  **
  **   template <unsigned nchild_thresh> class NodeBuilder;
  **
- **     This is the conceptually easiest form of NodeBuilder to use.
  **     The default:
  **
  **       NodeBuilder<> b;
  **     gives you a backing buffer with capacity for 10 children in
  **     the same place as the NodeBuilder<> itself is allocated.  You
  **     can specify another size as a template parameter, but it must
- **     be a compile-time constant (which is why the BackedNodeBuilder
- **     creator-macro "makeStackNodeBuilder(b, N)" is sometimes
- **     preferred).
+ **     be a compile-time constant.
  **/
 
 #include "cvc4_private.h"
 namespace CVC4 {
   static const unsigned default_nchild_thresh = 10;
 
-  template <class Builder>
-  class NodeBuilderBase;
+  template <unsigned nchild_thresh>
+  class NodeBuilder;
 
   class NodeManager;
 }/* CVC4 namespace */
@@ -199,38 +178,31 @@ namespace CVC4 {
 
 namespace CVC4 {
 
-template <class Builder>
-inline std::ostream& operator<<(std::ostream&, const NodeBuilderBase<Builder>&);
+template <unsigned nchild_thresh>
+inline std::ostream& operator<<(std::ostream&, const NodeBuilder<nchild_thresh>&);
 
+/* see expr/convenience_node_builders.h */
 class AndNodeBuilder;
 class OrNodeBuilder;
 class PlusNodeBuilder;
 class MultNodeBuilder;
 
 /**
- * A base class for NodeBuilders.  When extending this class, use:
- *
- *   class MyExtendedNodeBuilder :
- *       public NodeBuilderBase<MyExtendedNodeBuilder> { ... };
- *
- * This ensures that certain member functions return the right
- * (derived) class type.
- *
- * There are no virtual functions here, and that should remain the
- * case!  This class is just used for sharing of implementation.  Two
- * types derive from it: BackedNodeBuilder (which allows for an
- * external buffer), and the NodeBuilder<> template, which requires
- * that you give it a compile-time constant backing-store size.
+ * The main template NodeBuilder.
  */
-template <class Builder>
-class NodeBuilderBase {
-protected:
-
+template <unsigned nchild_thresh = default_nchild_thresh>
+class NodeBuilder {
   /**
-   * A reference to an "in-line" stack-allocated buffer for use by the
+   * An "in-line" stack-allocated buffer for use by the
    * NodeBuilder.
    */
-  expr::NodeValue& d_inlineNv;
+  expr::NodeValue d_inlineNv;
+  /**
+   * Space for the children of the node being constructed.  This is
+   * never accessed directly, but rather through
+   * d_inlineNv.d_children[i].
+   */
+  expr::NodeValue* d_inlineNvChildSpace[nchild_thresh];
 
   /**
    * A pointer to the "current" NodeValue buffer; either &d_inlineNv
@@ -241,17 +213,14 @@ protected:
   /** The NodeManager at play */
   NodeManager* d_nm;
 
-  /**
-   * The maximum number of children that can be held in this "in-line"
-   * buffer.
-   */
-  const uint16_t d_inlineNvMaxChildren;
-
   /**
    * The number of children allocated in d_nv.
    */
   uint16_t d_nvMaxChildren;
 
+  template <unsigned N>
+  void internalCopy(const NodeBuilder<N>& nb);
+
   /**
    * Returns whether or not this NodeBuilder has been "used"---i.e.,
    * whether a Node has been extracted with operator Node().
@@ -267,7 +236,7 @@ protected:
   inline void setUsed() {
     Assert(!isUsed(), "Internal error: bad `used' state in NodeBuilder!");
     Assert(d_inlineNv.d_nchildren == 0 &&
-           d_nvMaxChildren == d_inlineNvMaxChildren,
+           d_nvMaxChildren == nchild_thresh,
            "Internal error: bad `inline' state in NodeBuilder!");
     d_nv = NULL;
   }
@@ -279,7 +248,7 @@ protected:
   inline void setUnused() {
     Assert(isUsed(), "Internal error: bad `used' state in NodeBuilder!");
     Assert(d_inlineNv.d_nchildren == 0 &&
-           d_nvMaxChildren == d_inlineNvMaxChildren,
+           d_nvMaxChildren == nchild_thresh,
            "Internal error: bad `inline' state in NodeBuilder!");
     d_nv = &d_inlineNv;
   }
@@ -377,7 +346,7 @@ protected:
     }
   }
 
-  Builder& collapseTo(Kind k) {
+  NodeBuilder<nchild_thresh>& collapseTo(Kind k) {
     AssertArgument(k != kind::UNDEFINED_KIND &&
                    k != kind::NULL_EXPR &&
                    k < kind::LAST_KIND,
@@ -389,27 +358,98 @@ protected:
       d_nv->d_kind = expr::NodeValue::kindToDKind(k);
       return append(n);
     }
-    return static_cast<Builder&>(*this);
+    return *this;
+  }
+
+public:
+
+  inline NodeBuilder() :
+    d_nv(&d_inlineNv),
+    d_nm(NodeManager::currentNM()),
+    d_nvMaxChildren(nchild_thresh) {
+
+    d_inlineNv.d_id = 0;
+    d_inlineNv.d_rc = 0;
+    d_inlineNv.d_kind = expr::NodeValue::kindToDKind(kind::UNDEFINED_KIND);
+    d_inlineNv.d_nchildren = 0;
   }
 
-protected:
+  inline NodeBuilder(Kind k) :
+    d_nv(&d_inlineNv),
+    d_nm(NodeManager::currentNM()),
+    d_nvMaxChildren(nchild_thresh) {
 
-  inline NodeBuilderBase(expr::NodeValue* buf, unsigned maxChildren,
-                         Kind k = kind::UNDEFINED_KIND);
-  inline NodeBuilderBase(expr::NodeValue* buf, unsigned maxChildren,
-                         NodeManager* nm, Kind k = kind::UNDEFINED_KIND);
+    Assert(k != kind::NULL_EXPR, "illegal Node-building kind");
 
-private:
-  // disallow copy or assignment of these base classes directly (there
-  // would be no backing store!)
-  NodeBuilderBase(const NodeBuilderBase& nb);
-  NodeBuilderBase& operator=(const NodeBuilderBase& nb);
+    d_inlineNv.d_id = 0;
+    d_inlineNv.d_rc = 0;
+    d_inlineNv.d_kind = expr::NodeValue::kindToDKind(k);
+    d_inlineNv.d_nchildren = 0;
+  }
 
-public:
+  inline NodeBuilder(NodeManager* nm) :
+    d_nv(&d_inlineNv),
+    d_nm(nm),
+    d_nvMaxChildren(nchild_thresh) {
+
+    d_inlineNv.d_id = 0;
+    d_inlineNv.d_rc = 0;
+    d_inlineNv.d_kind = expr::NodeValue::kindToDKind(kind::UNDEFINED_KIND);
+    d_inlineNv.d_nchildren = 0;
+  }
+
+  inline NodeBuilder(NodeManager* nm, Kind k) :
+    d_nv(&d_inlineNv),
+    d_nm(nm),
+    d_nvMaxChildren(nchild_thresh) {
+
+    Assert(k != kind::NULL_EXPR, "illegal Node-building kind");
 
-  // Intentionally not virtual; we don't want a vtable.  Don't
-  // override this in a derived class.
-  inline ~NodeBuilderBase();
+    d_inlineNv.d_id = 0;
+    d_inlineNv.d_rc = 0;
+    d_inlineNv.d_kind = expr::NodeValue::kindToDKind(k);
+    d_inlineNv.d_nchildren = 0;
+  }
+
+  inline ~NodeBuilder() {
+    if(EXPECT_FALSE( nvIsAllocated() )) {
+      dealloc();
+    } else if(EXPECT_FALSE( !isUsed() )) {
+      decrRefCounts();
+    }
+  }
+
+  // These implementations are identical, but we need to have both of
+  // these because the templatized version isn't recognized as a
+  // generalization of a copy constructor (and a default copy
+  // constructor will be generated [?])
+  inline NodeBuilder(const NodeBuilder& nb) :
+    d_nv(&d_inlineNv),
+    d_nm(nb.d_nm),
+    d_nvMaxChildren(nchild_thresh) {
+
+    d_inlineNv.d_id = 0;
+    d_inlineNv.d_rc = 0;
+    d_inlineNv.d_kind = nb.d_nv->d_kind;
+    d_inlineNv.d_nchildren = 0;
+
+    internalCopy(nb);
+  }
+
+  // technically this is a conversion, not a copy
+  template <unsigned N>
+  inline NodeBuilder(const NodeBuilder<N>& nb) :
+    d_nv(&d_inlineNv),
+    d_nm(nb.d_nm),
+    d_nvMaxChildren(nchild_thresh) {
+
+    d_inlineNv.d_id = 0;
+    d_inlineNv.d_rc = 0;
+    d_inlineNv.d_kind = nb.d_nv->d_kind;
+    d_inlineNv.d_nchildren = 0;
+
+    internalCopy(nb);
+  }
 
   typedef expr::NodeValue::iterator< NodeTemplate<true>  > iterator;
   typedef expr::NodeValue::iterator< NodeTemplate<true> > const_iterator;
@@ -485,9 +525,9 @@ public:
    * allocated, and decrements the reference counts of any currently
    * children in the NodeBuilder.
    *
-   * This should leave the BackedNodeBuilder in the state it was after
+   * This should leave the NodeBuilder in the state it was after
    * initial construction, except for Kind, which is set to the
-   * argument (if provided), or UNDEFINED_KIND.  In particular, the
+   * argument, if provided, or UNDEFINED_KIND.  In particular, the
    * associated NodeManager is not affected by clear().
    */
   void clear(Kind k = kind::UNDEFINED_KIND);
@@ -495,7 +535,7 @@ public:
   // "Stream" expression constructor syntax
 
   /** Set the Kind of this Node-under-construction. */
-  inline Builder& operator<<(const Kind& k) {
+  inline NodeBuilder<nchild_thresh>& operator<<(const Kind& k) {
     Assert(!isUsed(), "NodeBuilder is one-shot only; "
            "attempt to access it after conversion");
     Assert(getKind() == kind::UNDEFINED_KIND,
@@ -505,7 +545,7 @@ public:
                    k < kind::LAST_KIND,
                    k, "illegal node-building kind");
     d_nv->d_kind = expr::NodeValue::kindToDKind(k);
-    return static_cast<Builder&>(*this);
+    return *this;
   }
 
   /**
@@ -514,7 +554,7 @@ public:
    * FIXME: do we really want that collapse behavior?  We had agreed
    * on it but then never wrote code like that.
    */
-  Builder& operator<<(TNode n) {
+  NodeBuilder<nchild_thresh>& operator<<(TNode n) {
     Assert(!isUsed(), "NodeBuilder is one-shot only; "
            "attempt to access it after conversion");
     /* FIXME: disable this "collapsing" for now..
@@ -527,7 +567,7 @@ public:
   }
 
   /** Append a sequence of children to this TypeNode-under-construction. */
-  inline Builder&
+  inline NodeBuilder<nchild_thresh>&
   append(const std::vector<TypeNode>& children) {
     Assert(!isUsed(), "NodeBuilder is one-shot only; "
            "attempt to access it after conversion");
@@ -536,7 +576,7 @@ public:
 
   /** Append a sequence of children to this Node-under-construction. */
   template <bool ref_count>
-  inline Builder&
+  inline NodeBuilder<nchild_thresh>&
   append(const std::vector<NodeTemplate<ref_count> >& children) {
     Assert(!isUsed(), "NodeBuilder is one-shot only; "
            "attempt to access it after conversion");
@@ -545,17 +585,17 @@ public:
 
   /** Append a sequence of children to this Node-under-construction. */
   template <class Iterator>
-  Builder& append(const Iterator& begin, const Iterator& end) {
+  NodeBuilder<nchild_thresh>& append(const Iterator& begin, const Iterator& end) {
     Assert(!isUsed(), "NodeBuilder is one-shot only; "
            "attempt to access it after conversion");
     for(Iterator i = begin; i != end; ++i) {
       append(*i);
     }
-    return static_cast<Builder&>(*this);
+    return *this;
   }
 
   /** Append a child to this Node-under-construction. */
-  Builder& append(TNode n) {
+  NodeBuilder<nchild_thresh>& append(TNode n) {
     Assert(!isUsed(), "NodeBuilder is one-shot only; "
            "attempt to access it after conversion");
     Assert(!n.isNull(), "Cannot use NULL Node as a child of a Node");
@@ -563,11 +603,11 @@ public:
     expr::NodeValue* nv = n.d_nv;
     nv->inc();
     d_nv->d_children[d_nv->d_nchildren++] = nv;
-    return static_cast<Builder&>(*this);
+    return *this;
   }
 
   /** Append a child to this Node-under-construction. */
-  Builder& append(const TypeNode& typeNode) {
+  NodeBuilder<nchild_thresh>& append(const TypeNode& typeNode) {
     Assert(!isUsed(), "NodeBuilder is one-shot only; "
            "attempt to access it after conversion");
     Assert(!typeNode.isNull(), "Cannot use NULL Node as a child of a Node");
@@ -575,7 +615,7 @@ public:
     expr::NodeValue* nv = typeNode.d_nv;
     nv->inc();
     d_nv->d_children[d_nv->d_nchildren++] = nv;
-    return static_cast<Builder&>(*this);
+    return *this;
   }
 
 private:
@@ -609,592 +649,38 @@ public:
     d_nv->toStream(out, depth);
   }
 
-  Builder& operator&=(TNode);
-  Builder& operator|=(TNode);
-  Builder& operator+=(TNode);
-  Builder& operator-=(TNode);
-  Builder& operator*=(TNode);
+  NodeBuilder<nchild_thresh>& operator&=(TNode);
+  NodeBuilder<nchild_thresh>& operator|=(TNode);
+  NodeBuilder<nchild_thresh>& operator+=(TNode);
+  NodeBuilder<nchild_thresh>& operator-=(TNode);
+  NodeBuilder<nchild_thresh>& operator*=(TNode);
 
   friend class AndNodeBuilder;
   friend class OrNodeBuilder;
   friend class PlusNodeBuilder;
   friend class MultNodeBuilder;
 
-};/* class NodeBuilderBase */
-
-/**
- * Backing-store interface version for NodeBuilders.  To construct one
- * of these, you need to create a backing store (preferably on the
- * stack) for it to hold its "inline" NodeValue.  There's a
- * convenience macro defined below, makeStackNodeBuilder(b, N),
- * defined below to define a stack-allocated BackedNodeBuilder "b"
- * with room for N children on the stack.
- */
-class BackedNodeBuilder : public NodeBuilderBase<BackedNodeBuilder> {
-public:
-  inline BackedNodeBuilder(expr::NodeValue* buf, unsigned maxChildren) :
-    NodeBuilderBase<BackedNodeBuilder>(buf, maxChildren) {
-  }
-
-  inline BackedNodeBuilder(expr::NodeValue* buf, unsigned maxChildren, Kind k) :
-    NodeBuilderBase<BackedNodeBuilder>(buf, maxChildren) {
-  }
-
-  inline BackedNodeBuilder(expr::NodeValue* buf,
-                           unsigned maxChildren,
-                           NodeManager* nm) :
-    NodeBuilderBase<BackedNodeBuilder>(buf, maxChildren) {
-  }
-
-  inline BackedNodeBuilder(expr::NodeValue* buf,
-                           unsigned maxChildren,
-                           NodeManager* nm,
-                           Kind k) :
-    NodeBuilderBase<BackedNodeBuilder>(buf, maxChildren) {
-  }
-
-  // we don't want a vtable, so do not declare a dtor!
-  //inline ~BackedNodeBuilder();
-
-private:
-  // disallow copy or assignment (there would be no backing store!)
-  BackedNodeBuilder(const BackedNodeBuilder& nb);
-  BackedNodeBuilder& operator=(const BackedNodeBuilder& nb);
-
-};/* class BackedNodeBuilder */
-
-/**
- * Stack-allocate a BackedNodeBuilder with a stack-allocated backing
- * store of size __n.  The BackedNodeBuilder will be named __v.
- *
- * __v must be a simple name.  __n must be convertible to size_t, and
- * will be evaluated only once.  This macro may only be used where
- * declarations are permitted.
- */
-#define makeStackNodeBuilder(__v, __n)                                  \
-  const size_t __cvc4_backednodebuilder_nchildren__ ## __v = (__n);     \
-  ::CVC4::expr::NodeValue __cvc4_backednodebuilder_buf__ ## __v         \
-      [1 + ( ( ( sizeof(::CVC4::expr::NodeValue) +                      \
-                sizeof(::CVC4::expr::NodeValue*) + 1 ) /                \
-               sizeof(::CVC4::expr::NodeValue*) ) *                     \
-             __cvc4_backednodebuilder_nchildren__ ## __v)];             \
-  ::CVC4::BackedNodeBuilder __v(__cvc4_backednodebuilder_buf__ ## __v,  \
-                                __cvc4_backednodebuilder_nchildren__ ## __v)
-// IF THE ABOVE ASSERTION FAILS, write another compiler-specific
-// version of makeStackNodeBuilder() that works for your compiler
-// (even if it's suboptimal, ignoring its __n argument, and just
-// creates a NodeBuilder<10>).
-
-
-/**
- * Simple NodeBuilder interface.  This is a template that requires
- * that the number of children of the "inline"-allocated NodeValue be
- * specified as a template parameter (which means it must be a
- * compile-time constant).
- */
-template <unsigned nchild_thresh = default_nchild_thresh>
-class NodeBuilder : public NodeBuilderBase<NodeBuilder<nchild_thresh> > {
-  // This is messy:
-  // 1. This (anonymous) struct here must be a POD to avoid the
-  //    compiler laying out things in a different way.
-  // 2. The layout is engineered carefully.  We can't just
-  //    stack-allocate enough bytes as a char[] because we break
-  //    strict-aliasing rules.  The first thing in the struct is a
-  //    "NodeValue" so a pointer to this struct should be safely
-  //    castable to a pointer to a NodeValue (same alignment).
-  struct BackingStore {
-    expr::NodeValue n;
-    expr::NodeValue* c[nchild_thresh];
-  } d_backingStore;
-
-  typedef NodeBuilderBase<NodeBuilder<nchild_thresh> > super;
-
-  template <unsigned N>
-  void internalCopy(const NodeBuilder<N>& nb);
-
-public:
-  inline NodeBuilder() :
-    NodeBuilderBase<NodeBuilder<nchild_thresh> >
-      (reinterpret_cast<expr::NodeValue*>(&d_backingStore),
-       nchild_thresh) {
-  }
-
-  inline NodeBuilder(Kind k) :
-    NodeBuilderBase<NodeBuilder<nchild_thresh> >
-      (reinterpret_cast<expr::NodeValue*>(&d_backingStore),
-       nchild_thresh,
-       k) {
-  }
-
-  inline NodeBuilder(NodeManager* nm) :
-    NodeBuilderBase<NodeBuilder<nchild_thresh> >
-      (reinterpret_cast<expr::NodeValue*>(&d_backingStore),
-       nchild_thresh,
-       nm) {
-  }
-
-  inline NodeBuilder(NodeManager* nm, Kind k) :
-    NodeBuilderBase<NodeBuilder<nchild_thresh> >
-      (reinterpret_cast<expr::NodeValue*>(&d_backingStore),
-       nchild_thresh,
-       nm,
-       k) {
-  }
-
-  // These implementations are identical, but we need to have both of
-  // these because the templatized version isn't recognized as a
-  // generalization of a copy constructor (and a default copy
-  // constructor will be generated [?])
-  inline NodeBuilder(const NodeBuilder& nb) :
-    NodeBuilderBase<NodeBuilder<nchild_thresh> >
-      (reinterpret_cast<expr::NodeValue*>(&d_backingStore),
-       nchild_thresh,
-       nb.d_nm,
-       nb.getKind()) {
-    internalCopy(nb);
-  }
-
-  // technically this is a conversion, not a copy
-  template <unsigned N>
-  inline NodeBuilder(const NodeBuilder<N>& nb) :
-    NodeBuilderBase<NodeBuilder<nchild_thresh> >
-      (reinterpret_cast<expr::NodeValue*>(&d_backingStore),
-       nchild_thresh,
-       nb.d_nm,
-       nb.getKind()) {
-    internalCopy(nb);
-  }
-
-  // we don't want a vtable, so do not declare a dtor!
-  //inline ~NodeBuilder();
-
   // This is needed for copy constructors of different sizes to access
   // private fields
   template <unsigned N>
   friend class NodeBuilder;
-
 };/* class NodeBuilder<> */
 
+}/* CVC4 namespace */
+
 // TODO: add templatized NodeTemplate<ref_count> to all above and
 // below inlines for 'const [T]Node&' arguments?  Technically a lot of
 // time is spent in the TNode conversion and copy constructor, but
 // this should be optimized into a simple pointer copy (?)
 // TODO: double-check this.
 
-class AndNodeBuilder {
-public:
-  NodeBuilder<> d_eb;
-
-  inline AndNodeBuilder(const NodeBuilder<>& eb) : d_eb(eb) {
-    d_eb.collapseTo(kind::AND);
-  }
-
-  inline AndNodeBuilder(TNode a, TNode b) : d_eb(kind::AND) {
-    d_eb << a << b;
-  }
-
-  template <bool rc>
-  inline AndNodeBuilder& operator&&(const NodeTemplate<rc>&);
-
-  template <bool rc>
-  inline OrNodeBuilder operator||(const NodeTemplate<rc>&);
-
-  inline operator NodeBuilder<>() { return d_eb; }
-  inline operator Node() { return d_eb; }
-
-};/* class AndNodeBuilder */
-
-class OrNodeBuilder {
-public:
-  NodeBuilder<> d_eb;
-
-  inline OrNodeBuilder(const NodeBuilder<>& eb) : d_eb(eb) {
-    d_eb.collapseTo(kind::OR);
-  }
-
-  inline OrNodeBuilder(TNode a, TNode b) : d_eb(kind::OR) {
-    d_eb << a << b;
-  }
-
-  template <bool rc>
-  inline AndNodeBuilder operator&&(const NodeTemplate<rc>&);
-
-  template <bool rc>
-  inline OrNodeBuilder& operator||(const NodeTemplate<rc>&);
-
-  inline operator NodeBuilder<>() { return d_eb; }
-  inline operator Node() { return d_eb; }
-
-};/* class OrNodeBuilder */
-
-class PlusNodeBuilder {
-public:
-  NodeBuilder<> d_eb;
-
-  inline PlusNodeBuilder(const NodeBuilder<>& eb) : d_eb(eb) {
-    d_eb.collapseTo(kind::PLUS);
-  }
-
-  inline PlusNodeBuilder(TNode a, TNode b) : d_eb(kind::PLUS) {
-    d_eb << a << b;
-  }
-
-  template <bool rc>
-  inline PlusNodeBuilder& operator+(const NodeTemplate<rc>&);
-
-  template <bool rc>
-  inline PlusNodeBuilder& operator-(const NodeTemplate<rc>&);
-
-  template <bool rc>
-  inline MultNodeBuilder operator*(const NodeTemplate<rc>&);
-
-  inline operator NodeBuilder<>() { return d_eb; }
-  inline operator Node() { return d_eb; }
-
-};/* class PlusNodeBuilder */
-
-class MultNodeBuilder {
-public:
-  NodeBuilder<> d_eb;
-
-  inline MultNodeBuilder(const NodeBuilder<>& eb) : d_eb(eb) {
-    d_eb.collapseTo(kind::MULT);
-  }
-
-  inline MultNodeBuilder(TNode a, TNode b) : d_eb(kind::MULT) {
-    d_eb << a << b;
-  }
-
-  template <bool rc>
-  inline PlusNodeBuilder operator+(const NodeTemplate<rc>&);
-
-  template <bool rc>
-  inline PlusNodeBuilder operator-(const NodeTemplate<rc>&);
-
-  template <bool rc>
-  inline MultNodeBuilder& operator*(const NodeTemplate<rc>&);
-
-  inline operator NodeBuilder<>() { return d_eb; }
-  inline operator Node() { return d_eb; }
-
-};/* class MultNodeBuilder */
-
-template <class Builder>
-inline Builder& NodeBuilderBase<Builder>::operator&=(TNode e) {
-  return collapseTo(kind::AND).append(e);
-}
-
-template <class Builder>
-inline Builder& NodeBuilderBase<Builder>::operator|=(TNode e) {
-  return collapseTo(kind::OR).append(e);
-}
-
-template <class Builder>
-inline Builder& NodeBuilderBase<Builder>::operator+=(TNode e) {
-  return collapseTo(kind::PLUS).append(e);
-}
-
-template <class Builder>
-inline Builder& NodeBuilderBase<Builder>::operator-=(TNode e) {
-  return collapseTo(kind::PLUS).
-    append(NodeManager::currentNM()->mkNode(kind::UMINUS, e));
-}
-
-template <class Builder>
-inline Builder& NodeBuilderBase<Builder>::operator*=(TNode e) {
-  return collapseTo(kind::MULT).append(e);
-}
-
-template <bool rc>
-inline AndNodeBuilder& AndNodeBuilder::operator&&(const NodeTemplate<rc>& n) {
-  d_eb.append(n);
-  return *this;
-}
-
-template <bool rc>
-inline OrNodeBuilder AndNodeBuilder::operator||(const NodeTemplate<rc>& n) {
-  return OrNodeBuilder(Node(d_eb), n);
-}
-
-inline AndNodeBuilder& operator&&(AndNodeBuilder& a,
-                                  const AndNodeBuilder& b) {
-  return a && Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline AndNodeBuilder& operator&&(AndNodeBuilder& a,
-                                  const OrNodeBuilder& b) {
-  return a && Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline OrNodeBuilder operator||(AndNodeBuilder& a,
-                                const AndNodeBuilder& b) {
-  return a || Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline OrNodeBuilder operator||(AndNodeBuilder& a,
-                                const OrNodeBuilder& b) {
-  return a || Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-
-template <bool rc>
-inline AndNodeBuilder OrNodeBuilder::operator&&(const NodeTemplate<rc>& n) {
-  return AndNodeBuilder(Node(d_eb), n);
-}
-
-template <bool rc>
-inline OrNodeBuilder& OrNodeBuilder::operator||(const NodeTemplate<rc>& n) {
-  d_eb.append(n);
-  return *this;
-}
-
-inline AndNodeBuilder operator&&(OrNodeBuilder& a,
-                                 const AndNodeBuilder& b) {
-  return a && Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline AndNodeBuilder operator&&(OrNodeBuilder& a,
-                                 const OrNodeBuilder& b) {
-  return a && Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline OrNodeBuilder& operator||(OrNodeBuilder& a,
-                                 const AndNodeBuilder& b) {
-  return a || Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline OrNodeBuilder& operator||(OrNodeBuilder& a,
-                                 const OrNodeBuilder& b) {
-  return a || Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-
-template <bool rc>
-inline PlusNodeBuilder& PlusNodeBuilder::operator+(const NodeTemplate<rc>& n) {
-  d_eb.append(n);
-  return *this;
-}
-
-template <bool rc>
-inline PlusNodeBuilder& PlusNodeBuilder::operator-(const NodeTemplate<rc>& n) {
-  d_eb.append(NodeManager::currentNM()->mkNode(kind::UMINUS, n));
-  return *this;
-}
-
-template <bool rc>
-inline MultNodeBuilder PlusNodeBuilder::operator*(const NodeTemplate<rc>& n) {
-  return MultNodeBuilder(Node(d_eb), n);
-}
-
-inline PlusNodeBuilder& operator+(PlusNodeBuilder& a,
-                                  const PlusNodeBuilder& b) {
-  return a + Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline PlusNodeBuilder& operator+(PlusNodeBuilder& a,
-                                  const MultNodeBuilder& b) {
-  return a + Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline PlusNodeBuilder& operator-(PlusNodeBuilder&a,
-                                  const PlusNodeBuilder& b) {
-  return a - Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline PlusNodeBuilder& operator-(PlusNodeBuilder& a,
-                                  const MultNodeBuilder& b) {
-  return a - Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline MultNodeBuilder operator*(PlusNodeBuilder& a,
-                                 const PlusNodeBuilder& b) {
-  return a * Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline MultNodeBuilder operator*(PlusNodeBuilder& a,
-                                 const MultNodeBuilder& b) {
-  return a * Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-
-template <bool rc>
-inline PlusNodeBuilder MultNodeBuilder::operator+(const NodeTemplate<rc>& n) {
-  return PlusNodeBuilder(Node(d_eb), n);
-}
-
-template <bool rc>
-inline PlusNodeBuilder MultNodeBuilder::operator-(const NodeTemplate<rc>& n) {
-  return PlusNodeBuilder(Node(d_eb),
-                         NodeManager::currentNM()->mkNode(kind::UMINUS, n));
-}
-
-template <bool rc>
-inline MultNodeBuilder& MultNodeBuilder::operator*(const NodeTemplate<rc>& n) {
-  d_eb.append(n);
-  return *this;
-}
-
-inline PlusNodeBuilder operator+(MultNodeBuilder& a,
-                                 const PlusNodeBuilder& b) {
-  return a + Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline PlusNodeBuilder operator+(MultNodeBuilder& a,
-                                 const MultNodeBuilder& b) {
-  return a + Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline PlusNodeBuilder operator-(MultNodeBuilder& a,
-                                 const PlusNodeBuilder& b) {
-  return a - Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline PlusNodeBuilder operator-(MultNodeBuilder& a,
-                                 const MultNodeBuilder& b) {
-  return a - Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline MultNodeBuilder& operator*(MultNodeBuilder& a,
-                                  const PlusNodeBuilder& b) {
-  return a * Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-inline MultNodeBuilder& operator*(MultNodeBuilder& a,
-                                  const MultNodeBuilder& b) {
-  return a * Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-
-template <bool rc1, bool rc2>
-inline AndNodeBuilder operator&&(const NodeTemplate<rc1>& a,
-                                 const NodeTemplate<rc2>& b) {
-  return AndNodeBuilder(a, b);
-}
-
-template <bool rc1, bool rc2>
-inline OrNodeBuilder operator||(const NodeTemplate<rc1>& a,
-                                const NodeTemplate<rc2>& b) {
-  return OrNodeBuilder(a, b);
-}
-
-template <bool rc1, bool rc2>
-inline PlusNodeBuilder operator+(const NodeTemplate<rc1>& a,
-                                 const NodeTemplate<rc2>& b) {
-  return PlusNodeBuilder(a, b);
-}
-
-template <bool rc1, bool rc2>
-inline PlusNodeBuilder operator-(const NodeTemplate<rc1>& a,
-                                 const NodeTemplate<rc2>& b) {
-  return PlusNodeBuilder(a, NodeManager::currentNM()->mkNode(kind::UMINUS, b));
-}
-
-template <bool rc1, bool rc2>
-inline MultNodeBuilder operator*(const NodeTemplate<rc1>& a,
-                                 const NodeTemplate<rc2>& b) {
-  return MultNodeBuilder(a, b);
-}
-
-template <bool rc>
-inline AndNodeBuilder operator&&(const NodeTemplate<rc>& a,
-                                 const AndNodeBuilder& b) {
-  return a && Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-
-template <bool rc>
-inline AndNodeBuilder operator&&(const NodeTemplate<rc>& a,
-                                 const OrNodeBuilder& b) {
-  return a && Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-
-template <bool rc>
-inline OrNodeBuilder operator||(const NodeTemplate<rc>& a,
-                                const AndNodeBuilder& b) {
-  return a || Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-
-template <bool rc>
-inline OrNodeBuilder operator||(const NodeTemplate<rc>& a,
-                                const OrNodeBuilder& b) {
-  return a || Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-
-template <bool rc>
-inline PlusNodeBuilder operator+(const NodeTemplate<rc>& a,
-                                 const PlusNodeBuilder& b) {
-  return a + Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-
-template <bool rc>
-inline PlusNodeBuilder operator+(const NodeTemplate<rc>& a,
-                                 const MultNodeBuilder& b) {
-  return a + Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-
-template <bool rc>
-inline PlusNodeBuilder operator-(const NodeTemplate<rc>& a,
-                                 const PlusNodeBuilder& b) {
-  return a - Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-
-template <bool rc>
-inline PlusNodeBuilder operator-(const NodeTemplate<rc>& a,
-                                 const MultNodeBuilder& b) {
-  return a - Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-
-template <bool rc>
-inline MultNodeBuilder operator*(const NodeTemplate<rc>& a,
-                                 const PlusNodeBuilder& b) {
-  return a * Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-
-template <bool rc>
-inline MultNodeBuilder operator*(const NodeTemplate<rc>& a,
-                                 const MultNodeBuilder& b) {
-  return a * Node(const_cast<NodeBuilder<>&>(b.d_eb));
-}
-
-template <bool rc>
-inline NodeTemplate<true> operator-(const NodeTemplate<rc>& a) {
-  return NodeManager::currentNM()->mkNode(kind::UMINUS, a);
-}
-
-}/* CVC4 namespace */
-
 #include "expr/node.h"
 #include "expr/node_manager.h"
 
 namespace CVC4 {
 
-template <class Builder>
-inline NodeBuilderBase<Builder>::NodeBuilderBase(expr::NodeValue* buf,
-                                                 unsigned maxChildren,
-                                                 Kind k) :
-  d_inlineNv(*buf),
-  d_nv(&d_inlineNv),
-  d_nm(NodeManager::currentNM()),
-  d_inlineNvMaxChildren(maxChildren),
-  d_nvMaxChildren(maxChildren) {
-
-  Assert(k != kind::NULL_EXPR, "illegal Node-building kind");
-
-  d_inlineNv.d_id = 0;
-  d_inlineNv.d_rc = 0;
-  d_inlineNv.d_kind = expr::NodeValue::kindToDKind(k);
-  d_inlineNv.d_nchildren = 0;
-}
-
-template <class Builder>
-inline NodeBuilderBase<Builder>::NodeBuilderBase(expr::NodeValue* buf,
-                                                 unsigned maxChildren,
-                                                 NodeManager* nm,
-                                                 Kind k) :
-  d_inlineNv(*buf),
-  d_nv(&d_inlineNv),
-  d_nm(nm),
-  d_inlineNvMaxChildren(maxChildren),
-  d_nvMaxChildren(maxChildren) {
-
-  Assert(k != kind::NULL_EXPR, "illegal Node-building kind");
-
-  d_inlineNv.d_id = 0;
-  d_inlineNv.d_rc = 0;
-  d_inlineNv.d_kind = expr::NodeValue::kindToDKind(k);
-  d_inlineNv.d_nchildren = 0;
-}
-
-template <class Builder>
-inline NodeBuilderBase<Builder>::~NodeBuilderBase() {
-  if(EXPECT_FALSE( nvIsAllocated() )) {
-    dealloc();
-  } else if(EXPECT_FALSE( !isUsed() )) {
-    decrRefCounts();
-  }
-}
-
-template <class Builder>
-void NodeBuilderBase<Builder>::clear(Kind k) {
+template <unsigned nchild_thresh>
+void NodeBuilder<nchild_thresh>::clear(Kind k) {
   Assert(k != kind::NULL_EXPR, "illegal Node-building clear kind");
 
   if(EXPECT_FALSE( nvIsAllocated() )) {
@@ -1214,8 +700,8 @@ void NodeBuilderBase<Builder>::clear(Kind k) {
   d_inlineNv.d_nchildren = 0;
 }
 
-template <class Builder>
-void NodeBuilderBase<Builder>::realloc(size_t toSize) {
+template <unsigned nchild_thresh>
+void NodeBuilder<nchild_thresh>::realloc(size_t toSize) {
   Assert( toSize > d_nvMaxChildren,
           "attempt to realloc() a NodeBuilder to a smaller/equal size!" );
 
@@ -1258,8 +744,8 @@ void NodeBuilderBase<Builder>::realloc(size_t toSize) {
   }
 }
 
-template <class Builder>
-void NodeBuilderBase<Builder>::dealloc() {
+template <unsigned nchild_thresh>
+void NodeBuilder<nchild_thresh>::dealloc() {
   Assert( nvIsAllocated(),
           "Internal error: NodeBuilder: dealloc() called without a "
           "private NodeBuilder-allocated buffer" );
@@ -1272,11 +758,11 @@ void NodeBuilderBase<Builder>::dealloc() {
 
   free(d_nv);
   d_nv = &d_inlineNv;
-  d_nvMaxChildren = d_inlineNvMaxChildren;
+  d_nvMaxChildren = nchild_thresh;
 }
 
-template <class Builder>
-void NodeBuilderBase<Builder>::decrRefCounts() {
+template <unsigned nchild_thresh>
+void NodeBuilder<nchild_thresh>::decrRefCounts() {
   Assert( !nvIsAllocated(),
           "Internal error: NodeBuilder: decrRefCounts() called with a "
           "private NodeBuilder-allocated buffer" );
@@ -1291,48 +777,48 @@ void NodeBuilderBase<Builder>::decrRefCounts() {
 }
 
 
-template <class Builder>
-TypeNode NodeBuilderBase<Builder>::constructTypeNode() {
+template <unsigned nchild_thresh>
+TypeNode NodeBuilder<nchild_thresh>::constructTypeNode() {
   return TypeNode(constructNV());
 }
 
-template <class Builder>
-TypeNode NodeBuilderBase<Builder>::constructTypeNode() const {
+template <unsigned nchild_thresh>
+TypeNode NodeBuilder<nchild_thresh>::constructTypeNode() const {
   return TypeNode(constructNV());
 }
 
-template <class Builder>
-Node NodeBuilderBase<Builder>::constructNode() {
+template <unsigned nchild_thresh>
+Node NodeBuilder<nchild_thresh>::constructNode() {
   return Node(constructNV());
 }
 
-template <class Builder>
-Node NodeBuilderBase<Builder>::constructNode() const {
+template <unsigned nchild_thresh>
+Node NodeBuilder<nchild_thresh>::constructNode() const {
   return Node(constructNV());
 }
 
-template <class Builder>
-Node* NodeBuilderBase<Builder>::constructNodePtr() {
+template <unsigned nchild_thresh>
+Node* NodeBuilder<nchild_thresh>::constructNodePtr() {
   return new Node(constructNV());
 }
 
-template <class Builder>
-Node* NodeBuilderBase<Builder>::constructNodePtr() const {
+template <unsigned nchild_thresh>
+Node* NodeBuilder<nchild_thresh>::constructNodePtr() const {
   return new Node(constructNV());
 }
 
-template <class Builder>
-NodeBuilderBase<Builder>::operator Node() {
+template <unsigned nchild_thresh>
+NodeBuilder<nchild_thresh>::operator Node() {
   return constructNode();
 }
 
-template <class Builder>
-NodeBuilderBase<Builder>::operator Node() const {
+template <unsigned nchild_thresh>
+NodeBuilder<nchild_thresh>::operator Node() const {
   return constructNode();
 }
 
-template <class Builder>
-expr::NodeValue* NodeBuilderBase<Builder>::constructNV() {
+template <unsigned nchild_thresh>
+expr::NodeValue* NodeBuilder<nchild_thresh>::constructNV() {
   Assert(!isUsed(), "NodeBuilder is one-shot only; "
          "attempt to access it after conversion");
   Assert(getKind() != kind::UNDEFINED_KIND,
@@ -1396,7 +882,7 @@ expr::NodeValue* NodeBuilderBase<Builder>::constructNV() {
 
   if(EXPECT_TRUE( ! nvIsAllocated() )) {
     /** Case 1.  d_nv points to d_inlineNv: it is the backing store
-     ** supplied by the user (or derived class) **/
+     ** allocated "inline" in this NodeBuilder. **/
 
     // Lookup the expression value in the pool we already have
     expr::NodeValue* poolNv = d_nm->poolLookup(&d_inlineNv);
@@ -1490,7 +976,7 @@ expr::NodeValue* NodeBuilderBase<Builder>::constructNV() {
       expr::NodeValue* nv = d_nv;
       nv->d_id = expr::NodeValue::next_id++;// FIXME multithreading
       d_nv = &d_inlineNv;
-      d_nvMaxChildren = d_inlineNvMaxChildren;
+      d_nvMaxChildren = nchild_thresh;
       setUsed();
 
       //poolNv = nv;
@@ -1503,8 +989,8 @@ expr::NodeValue* NodeBuilderBase<Builder>::constructNV() {
 }
 
 // CONST VERSION OF NODE EXTRACTOR
-template <class Builder>
-expr::NodeValue* NodeBuilderBase<Builder>::constructNV() const {
+template <unsigned nchild_thresh>
+expr::NodeValue* NodeBuilder<nchild_thresh>::constructNV() const {
   Assert(!isUsed(), "NodeBuilder is one-shot only; "
          "attempt to access it after conversion");
   Assert(getKind() != kind::UNDEFINED_KIND,
@@ -1567,7 +1053,7 @@ expr::NodeValue* NodeBuilderBase<Builder>::constructNV() const {
 
   if(EXPECT_TRUE( ! nvIsAllocated() )) {
     /** Case 1.  d_nv points to d_inlineNv: it is the backing store
-     ** supplied by the user (or derived class) **/
+     ** allocated "inline" in this NodeBuilder. **/
 
     // Lookup the expression value in the pool we already have
     expr::NodeValue* poolNv = d_nm->poolLookup(&d_inlineNv);
@@ -1683,30 +1169,30 @@ template <unsigned nchild_thresh>
 template <unsigned N>
 void NodeBuilder<nchild_thresh>::internalCopy(const NodeBuilder<N>& nb) {
   if(nb.isUsed()) {
-    super::setUsed();
+    setUsed();
     return;
   }
 
-  if(nb.d_nvMaxChildren > super::d_nvMaxChildren) {
-    super::realloc(nb.d_nvMaxChildren);
+  if(nb.d_nvMaxChildren > d_nvMaxChildren) {
+    realloc(nb.d_nvMaxChildren);
   }
 
   std::copy(nb.d_nv->nv_begin(),
             nb.d_nv->nv_end(),
-            super::d_nv->nv_begin());
+            d_nv->nv_begin());
 
-  super::d_nv->d_nchildren = nb.d_nv->d_nchildren;
+  d_nv->d_nchildren = nb.d_nv->d_nchildren;
 
-  for(expr::NodeValue::nv_iterator i = super::d_nv->nv_begin();
-      i != super::d_nv->nv_end();
+  for(expr::NodeValue::nv_iterator i = d_nv->nv_begin();
+      i != d_nv->nv_end();
       ++i) {
     (*i)->inc();
   }
 }
 
-template <class Builder>
+template <unsigned nchild_thresh>
 inline std::ostream& operator<<(std::ostream& out,
-                                const NodeBuilderBase<Builder>& b) {
+                                const NodeBuilder<nchild_thresh>& b) {
   b.toStream(out, Node::setdepth::getDepth(out));
   return out;
 }
index a1b5b771fab70898a8d190bc6db047316d204862..247348497320537158dde37b774f37f6967c8a3c 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** node_manager.cpp
+/*! \file node_manager.cpp
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: none
- ** Minor contributors (to current version): dejan, taking
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): taking, cconway
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Expression manager implementation.
  **
  ** Expression manager implementation.
  **
index 5642a8372f931957aaf2c73da123726a5ffa33d2..2d96ac57a96e18c8fdc8d21fc08391beee06bac7 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** node_manager.h
+/*! \file node_manager.h
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: cconway
- ** Minor contributors (to current version): taking, dejan
+ ** Major contributors: cconway, dejan
+ ** Minor contributors (to current version): taking
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A manager for Nodes.
  **
  ** A manager for Nodes.
  **
@@ -50,7 +53,7 @@ typedef expr::Attribute<attr::VarNameTag, std::string> VarNameAttr;
 }/* CVC4::expr namespace */
 
 class NodeManager {
-  template <class Builder> friend class CVC4::NodeBuilderBase;
+  template <unsigned nchild_thresh> friend class CVC4::NodeBuilder;
   friend class NodeManagerScope;
   friend class expr::NodeValue;
 
@@ -262,10 +265,6 @@ public:
 
   // general expression-builders
 
-  /** Create a node with no children. */
-  Node mkNode(Kind kind);
-  Node* mkNodePtr(Kind kind);
-
   /** Create a node with one child. */
   Node mkNode(Kind kind, TNode child1);
   Node* mkNodePtr(Kind kind, TNode child1);
@@ -740,15 +739,6 @@ inline TypeNode NodeManager::mkSort(const std::string& name) {
   return type;
 }
 
-inline Node NodeManager::mkNode(Kind kind) {
-  return NodeBuilder<0>(this, kind);
-}
-
-inline Node* NodeManager::mkNodePtr(Kind kind) {
-  NodeBuilder<0> nb(this, kind);
-  return nb.constructNodePtr();
-}
-
 inline Node NodeManager::mkNode(Kind kind, TNode child1) {
   return NodeBuilder<1>(this, kind) << child1;
 }
index 101be51873d7b99634758864bcd70cd6fb62a8b7..c64a608fb5b2da5e05fe64c0b098e8976767621c 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** node_value.cpp
+/*! \file node_value.cpp
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: dejan
  ** Minor contributors (to current version): cconway
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief An expression node.
  **
  ** An expression node.
  **
index 260a9daae248ce5d7f5e6a9d85105a63732fd03b..8b2056560dcebee338b4cf48fd91e84f4c8e4862 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** node_value.h
+/*! \file node_value.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: dejan
  ** Minor contributors (to current version): cconway, taking
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief An expression node.
  **
  ** An expression node.
  **
@@ -35,7 +38,6 @@ namespace CVC4 {
 
 template <bool ref_count> class NodeTemplate;
 class TypeNode;
-template <class Builder> class NodeBuilderBase;
 template <unsigned N> class NodeBuilder;
 class AndNodeBuilder;
 class OrNodeBuilder;
@@ -103,7 +105,6 @@ class NodeValue {
 
   template <bool> friend class ::CVC4::NodeTemplate;
   friend class ::CVC4::TypeNode;
-  template <class Builder> friend class ::CVC4::NodeBuilderBase;
   template <unsigned nchild_thresh> friend class ::CVC4::NodeBuilder;
   friend class ::CVC4::NodeManager;
 
index af333f9d31e12ca9f4c61755381bf15ba69f6f4f..3bacb4792367aeb3c7834f4ef0ba8de119eb9f5b 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** type.cpp
+/*! \file type.cpp
+ ** \verbatim
  ** Original author: cconway
- ** Major contributors: mdeters
- ** Minor contributors (to current version): none
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): mdeters
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Implementation of expression types .
  **
  ** Implementation of expression types 
  **/
index 137dbfff3eb15022c3fbb2b2aea338e0f36e6425..2d18c2fc820569d3f3ed537e26185242028d126e 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** type.h
+/*! \file type.h
+ ** \verbatim
  ** Original author: cconway
- ** Major contributors: mdeters, dejan
- ** Minor contributors (to current version): none
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): mdeters
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Interface for expression types.
  **
  ** Interface for expression types
  **/
index a847bc8279fc4c6ea6d2749d08e23aa318433550..0f5b522b623af6821bb9b767aaa902ae5b18d78d 100644 (file)
@@ -1,13 +1,17 @@
 /*********************                                                        */
-/** type_constant.h
+/*! \file type_constant.h
+ ** \verbatim
  ** Original author: dejan
+ ** Major contributors: none
  ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Interface for expression types.
  **
  ** Interface for expression types
  **/
index 821349b45bb60169775207032084a34658e2534a..1afaf2b8983a0c74600629606cf6065a0ced7a53 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** node.cpp
+/*! \file type_node.cpp
+ ** \verbatim
  ** Original author: dejan
  ** Major contributors: none
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): taking
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Reference-counted encapsulation of a pointer to node information.
  **
  ** Reference-counted encapsulation of a pointer to node information.
  **/
index f7b1a6b9e7a816236e83dfb60006d3c09e2f4938..9b67c674c0a1ee168703bf43f2e2dd27ea5055a4 100644 (file)
@@ -1,12 +1,17 @@
 /*********************                                                        */
-/** type_node.h
+/*! \file type_node.h
+ ** \verbatim
  ** Original author: dejan
+ ** Major contributors: none
+ ** Minor contributors (to current version): taking
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Reference-counted encapsulation of a pointer to node information.
  **
  ** Reference-counted encapsulation of a pointer to node information.
  **/
@@ -62,8 +67,8 @@ class TypeNode {
 
   friend class NodeManager;
 
-  template <class Builder>
-  friend class NodeBuilderBase;
+  template <unsigned nchild_thresh>
+  friend class NodeBuilder;
 
   /**
    * Assigns the expression value and does reference counting. No assumptions
index 298bb14fb73c0911c26e8962f3962c81ee97ff74..77cadf0ea569824fd377987021cd4b04987bbe8a 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** cvc4_private.h
+/*! \file cvc4_private.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,10 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief #inclusion of this file marks a header as private and generates a
+ ** warning when the file is included improperly.
  **
  ** #inclusion of this file marks a header as private and generates a
  ** warning when the file is included improperly.
index 4de3faf4c46bd4c90807eec8a8382c07ca347ac1..e1b515ba56de884e497204e86a6dfc70bdd1a66f 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** cvc4_public.h
+/*! \file cvc4_public.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,10 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Macros that should be defined everywhere during the building of
+ ** the libraries and driver binary, and also exported to the user.
  **
  ** Macros that should be defined everywhere during the building of
  ** the libraries and driver binary, and also exported to the user.
index 5960b5c616a761bae57e12988bd7caa53929faee..cb6e486d819283e698d77e1144f53958305456ab 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** cvc4parser_private.h
+/*! \file cvc4parser_private.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,10 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief #inclusion of this file marks a header as private and generates a
+ ** warning when the file is included improperly.
  **
  ** #inclusion of this file marks a header as private and generates a
  ** warning when the file is included improperly.
index ec0f3a064da6d28e8945711b753fd000ee31116f..a60d281bbf67954525b2bbd68cebc99359ea1b79 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** cvc4parser_public.h
+/*! \file cvc4parser_public.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,10 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Macros that should be defined everywhere during the building of
+ ** the libraries and driver binary, and also exported to the user.
  **
  ** Macros that should be defined everywhere during the building of
  ** the libraries and driver binary, and also exported to the user.
index fda0bf766095d808a32d6cd69ad7467fd1b57172..c3c57cf9469966f24bf6244e3d189247635b97d2 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** getopt.cpp
+/*! \file getopt.cpp
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: none
- ** Minor contributors (to current version): dejan, barrett, cconway
+ ** Major contributors: cconway
+ ** Minor contributors (to current version): dejan, barrett
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Contains code for handling command-line options.
  **
  ** Contains code for handling command-line options
  **/
index 5150d32f917305414555a8e72a80c7da2af5cb61..7fb0d92c9819ab35b39e8785d7b068b0e42bb44c 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** main.cpp
+/*! \file main.cpp
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: none
- ** Minor contributors (to current version): dejan, barrett, cconway
+ ** Major contributors: cconway
+ ** Minor contributors (to current version): barrett, dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Main driver for CVC4 executable.
  **
  ** Main driver for CVC4 executable.
  **/
index 117b52c17ff853bf67efc563ef238ab57c62eb5b..d56684d7d01e45cc623ab8084ef1653aeb370977 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** main.h
+/*! \file main.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): dejan, barrett
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Header for main CVC4 driver.
  **
  ** Header for main CVC4 driver.
  **/
index 4c600759f3df3d2866af314affdda466f3e67338..4da37749b6e3e04aae33d3ba836c601c469248c2 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** usage.h
+/*! \file usage.h
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: none
- ** Minor contributors (to current version): cconway
+ ** Major contributors: cconway
+ ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief The "usage" string for the CVC4 driver binary.
  **
  ** The "usage" string for the CVC4 driver binary.
  **/
index 6a69252ce61f1baf77f2b379c44b7cb753de8b12..77274d575d061a50a3a5de41331bceb9645a45f2 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** util.cpp
+/*! \file util.cpp
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Utilities for the main driver.
  **
  ** Utilities for the main driver.
  **/
index 9d75dd31f6353d92babbb21c65629fbeb32b65b8..fdaa83b04fc994ed00f6ed3702900334623f0a98 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** input.cpp
+/*! \file antlr_input.cpp
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A super-class for ANTLR-generated input language parsers.
  **
  ** A super-class for ANTLR-generated input language parsers
  **/
index 642dc9654835f9ac49a5a049ecf9730f384c2b87..d2d885ce0ef9870b470c52940ab379897459fddf 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** input.h
+/*! \file antlr_input.h
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: none
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Base for ANTLR parser classes.
  **
  ** Base for ANTLR parser classes.
  **/
index d25d7b66b7e2473dcbd0660765400cfa545f29c1..b647842faada6f54cc1b1dcaebf5323876d7f86f 100644 (file)
@@ -1,3 +1,22 @@
+/*********************                                                        */
+/*! \file antlr_input_imports.cpp
+ ** \verbatim
+ ** Original author: cconway
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
 /*
  * The functions in this file are based on implementations in libantlr3c,
  * with only minor CVC4-specific changes.
index 53b56dcdd66bd2cb4a4b62841aefe3e3c0863d01..adc0505db5451632c5319b0cbf167612b8c9e13b 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** bounded_token_buffer.h
+/*! \file bounded_token_buffer.cpp
+ ** \verbatim
  ** Original author: cconway
- ** Major contributors: mdeters
- ** Minor contributors (to current version): none
+ ** Major contributors: none
+ ** Minor contributors (to current version): mdeters
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief An ANTLR3 bounded token stream implementation. 
  **
  ** An ANTLR3 bounded token stream implementation. 
  ** This code is largely based on the original token buffer implementation
index 663e5b403e76a2d42bc8ea8f3f9de2779865e82a..9634f016b3827410ca5eb80156a88f5db61ac432 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** bounded_token_buffer.h
+/*! \file bounded_token_buffer.h
+ ** \verbatim
  ** Original author: cconway
- ** Major contributors: mdeters
+ ** Major contributors: none
  ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief An ANTLR3 bounded token stream.
  **
  ** An ANTLR3 bounded token stream. The stream has a bounded
  ** lookahead/behind k. Calling LT(i) with i > k or i < -k will raise
index c9f9b66e7d013f7c9b446aff466ac490cf695592..5f42f0f29cbc848d8f9de0d11de33d9503ae8ae4 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** bounded_token_factory.cpp
+/*! \file bounded_token_factory.cpp
+ ** \verbatim
  ** Original author: cconway
- ** Major contributors: none
- ** Minor contributors (to current version): mdeters
+ ** Major contributors: mdeters
+ ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief An ANTLR3 bounded token factory implementation.
  **
  ** An ANTLR3 bounded token factory implementation.
  **/
index faf289ef41a0573fd836d0d89bb32f50a1e37efb..4d510c9e334675d4193580c1aaeb379b589838ab 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** bounded_token_factory.h
+/*! \file bounded_token_factory.h
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: mdeters
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief An ANTLR3 bounded token factory.
  **
  ** An ANTLR3 bounded token factory. The factory has a fixed number of
  ** tokens that are re-used as parsing proceeds. Only use this factory
index a53604efa27be1c97cacc84d65308d414e2c3840..0f44e692a904d5f1c2965410f3494e9ee7cca3e4 100644 (file)
@@ -1,14 +1,17 @@
 /* *******************                                                        */
-/*  Cvc.g
+/*! \file Cvc.g
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: none
- ** Minor contributors (to current version): mdeters
+ ** Minor contributors (to current version): dejan, mdeters
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Parser for CVC-LIB input language.
  **
  ** Parser for CVC-LIB input language.
  **/
index 4a8551a7a30a2d35b6f692c3f4c01c5c58e6340f..2b99f9a87560480f55cf9fabafe8710864926f3c 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** cvc_input.cpp
+/*! \file cvc_input.cpp
+ ** \verbatim
  ** Original author: cconway
- ** Major contributors: none
- ** Minor contributors (to current version): mdeters
+ ** Major contributors: mdeters
+ ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add file-specific comments here ]].
  **
  ** [[ Add file-specific comments here ]]
  **/
index 82c31813b01556b97ff21afb391614dddbac05d9..64c6beea7c4a31cab93797bda5573d07f1786dfe 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** cvc_input.h
+/*! \file cvc_input.h
+ ** \verbatim
  ** Original author: cconway
- ** Major contributors: none
- ** Minor contributors (to current version): mdeters
+ ** Major contributors: mdeters
+ ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add file-specific comments here ]].
  **
  ** [[ Add file-specific comments here ]]
  **/
index a900765b5b659b256c385b0f056e3eaa6096fa52..2c4671b93d2091ff27aa5ffc54f294bc42eee48e 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** input.cpp
- ** Original author: cconway
- ** Major contributors: none
+/*! \file input.cpp
+ ** \verbatim
+ ** Original author: dejan
+ ** Major contributors: mdeters, cconway
  ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A super-class for input language parsers.
  **
  ** A super-class for input language parsers
  **/
index 926ebe156054556e0109add90a74abb4df8dc891..ceec1c8bd949768f940eb53cee243b34f83eb96c 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** input.h
+/*! \file input.h
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: none
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): mdeters
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Base for parser inputs.
  **
  ** Base for parser inputs.
  **/
index a87ba9cf8112104e3830700df662ada3e13be5f6..7748a1ccae3d382dcf46ab0d3c9a3ec70a1afcf9 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** memory_mapped_input_buffer.cpp
+/*! \file memory_mapped_input_buffer.cpp
+ ** \verbatim
  ** Original author: cconway
- ** Major contributors: none
- ** Minor contributors (to current version): mdeters
+ ** Major contributors: mdeters
+ ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add file-specific comments here ]].
  **
  ** [[ Add file-specific comments here ]]
  **/
index c63ec540747f22257ee973f6fceeaa7b3bcddaa7..18618a090533e9ba3c356b126f00099021bf5a20 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** memory_mapped_input_buffer.h
+/*! \file memory_mapped_input_buffer.h
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: mdeters
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief ANTLR input buffer from a memory-mapped file.
  **
  ** ANTLR input buffer from a memory-mapped file.
  **/
index 286867e84ca220e977ec67a52f7bad8611f87dd5..2bad12e2ce09f55a822381f5059731adf21a97b7 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** parser.cpp
- ** Original author: cconway
- ** Major contributors: dejan, mdeters
+/*! \file parser.cpp
+ ** \verbatim
+ ** Original author: dejan
+ ** Major contributors: mdeters, cconway
  ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Parser state implementation.
  **
  ** Parser state implementation.
  **/
index e6e5a22503c39fbaa0118a6c16582dfc8344ad93..3e10f632fc3a76e917538477de610b2991a566a5 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** parser.h
+/*! \file parser.h
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: none
- ** Minor contributors (to current version): mdeters
+ ** Minor contributors (to current version): mdeters, dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A collection of state for use by parser implementations.
  **
  ** A collection of state for use by parser implementations.
  **/
index 4e4b0309fec961b018b66f7ca57469419a22b084..3b62cbc5712fc41020c44ac8b8fd5e72674afa2d 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** parser_builder.cpp
+/*! \file parser_builder.cpp
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A builder for parsers.
  **
  ** A builder for parsers.
  **/
index 92b44a82dbfd92419b4ceddc016c10ec860d67fd..ed1ab807bb0ab64b245634d2473756fb1300d814 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** parser_builder.h
+/*! \file parser_builder.h
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A builder for parsers.
  **
  ** A builder for parsers.
  **/
index dfca01ce20577dd9f9e3e4bbd503c297b3bff6c0..2ae38622d1af9fc91e727e283f568cbed5eedc94 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** parser_exception.h
+/*! \file parser_exception.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: cconway
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Exception class for parse errors.
  **
  ** Exception class for parse errors.
  **/
index 51d28e51dda73df9ce5536f2bbf45894d2c9cbd8..85994c52cb15d0c9883bb9fa68ade7c67c7455c1 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** parser_options.h
+/*! \file parser_options.h
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: mdeters
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add file-specific comments here ]].
  **
  ** [[ Add file-specific comments here ]]
  **/
index c11f350a69a56acae6614fa808ffe18d524840a7..4247dba7a29e8d34b4c320cf18580da8c79aa0e1 100644 (file)
@@ -1,14 +1,17 @@
 /* *******************                                                        */
-/*  Smt.g
+/*! \file Smt.g
+ ** \verbatim
  ** Original author: cconway
- ** Major contributors: none
- ** Minor contributors (to current version): mdeters
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): mdeters, taking
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Parser for SMT-LIB input language.
  **
  ** Parser for SMT-LIB input language.
  **/
@@ -60,7 +63,6 @@ namespace CVC4 {
 @parser::postinclude {
 #include "expr/expr.h"
 #include "expr/kind.h"
-#include "expr/metakind.h"
 #include "expr/type.h"
 #include "parser/antlr_input.h"
 #include "parser/parser.h"
@@ -171,7 +173,7 @@ annotatedFormula[CVC4::Expr& expr]
         /* Unary AND/OR can be replaced with the argument.
               It just so happens expr should already by the only argument. */
         Assert( expr == args[0] );
-      } else if( CVC4::kind::metakind::isAssociative(kind) && 
+      } else if( CVC4::kind::isAssociative(kind) && 
                  args.size() > EXPR_MANAGER->maxArity(kind) ) {
        /* Special treatment for associative operators with lots of children */
         expr = EXPR_MANAGER->mkAssociative(kind,args);
index 7c8bf19ddd7ee4ae07854c4652d65e9134f62d28..c19eca0801514b7dace944a8841d19cd6478fb5e 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** smt_input.cpp
+/*! \file smt_input.cpp
+ ** \verbatim
  ** Original author: cconway
- ** Major contributors: none
- ** Minor contributors (to current version): mdeters
+ ** Major contributors: mdeters
+ ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add file-specific comments here ]].
  **
  ** [[ Add file-specific comments here ]]
  **/
index 1d3f87668b86bd8ce4381e0996f27818db9b61dc..42581ec1caa619b7fbcf8eb7899f1777acef7cf0 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** smt_input.h
+/*! \file smt_input.h
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: mdeters
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add file-specific comments here ]].
  **
  ** [[ Add file-specific comments here ]]
  **/
index 11ce111a6a09085d4b8287aeffa99f14175126b9..37612901e4f16adda70dec10829b11715bb5de8f 100644 (file)
@@ -1,14 +1,17 @@
 /* *******************                                                        */
-/*  Smt2.g
+/*! \file Smt2.g
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: none
- ** Minor contributors (to current version): mdeters
+ ** Minor contributors (to current version): mdeters, taking
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Parser for SMT-LIB v2 input language.
  **
  ** Parser for SMT-LIB v2 input language.
  **/
@@ -74,7 +77,6 @@ namespace CVC4 {
 @parser::postinclude {
 #include "expr/expr.h"
 #include "expr/kind.h"
-#include "expr/metakind.h"
 #include "expr/type.h"
 #include "parser/antlr_input.h"
 #include "parser/parser.h"
@@ -210,7 +212,7 @@ term[CVC4::Expr& expr]
         /* Unary AND/OR can be replaced with the argument.
               It just so happens expr should already by the only argument. */
         Assert( expr == args[0] );
-        } else if( CVC4::kind::metakind::isAssociative(kind) && 
+        } else if( CVC4::kind::isAssociative(kind) && 
                  args.size() > EXPR_MANAGER->maxArity(kind) ) {
        /* Special treatment for associative operators with lots of children */
         expr = EXPR_MANAGER->mkAssociative(kind,args);
index 5cf90226084a762caefbece8884a739c68900a60..2776bff7e3228efb32c0955cb3133cb794b74497 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** smt2.h
+/*! \file smt2.cpp
+ ** \verbatim
  ** Original author: cconway
- ** Major contributors:
+ ** Major contributors: none
  ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Definitions of SMT2 constants.
  **
  ** Definitions of SMT2 constants.
  **/
index 0e057db683e2b3e6726687b6e4c7c46d8bfa0df5..b54fe82e9033a224dba8ed7b3b532c999e84517b 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** smt2.h
+/*! \file smt2.h
+ ** \verbatim
  ** Original author: cconway
- ** Major contributors:
+ ** Major contributors: none
  ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Definitions of SMT2 constants.
  **
  ** Definitions of SMT2 constants.
  **/
index 5150ba010c6cb73cc92ceb31a5c83181cb5ed1a6..829d6a5f8c5e88ac5c37654e56ccf8ade8bfcc05 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** smt2_input.cpp
+/*! \file smt2_input.cpp
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: none
- ** Minor contributors (to current version): mdeters
+ ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add file-specific comments here ]].
  **
  ** [[ Add file-specific comments here ]]
  **/
index 962e2a98766532614b453441a15f09d2bc3e0f53..1fa8cff1cc2d1a732309fb819cee5257c4a76ad4 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** smt2_input.h
+/*! \file smt2_input.h
+ ** \verbatim
  ** Original author: cconway
- ** Major contributors: mdeters
+ ** Major contributors: none
  ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add file-specific comments here ]].
  **
  ** [[ Add file-specific comments here ]]
  **/
index 225f95d545788ed2938c7aa5ba7df8b02ea300e7..45f7ab39842fbe9cd72d4da9383733f7e08d6c70 100644 (file)
@@ -1,14 +1,18 @@
 /*********************                                                        */
-/** cnf_stream.cpp
+/*! \file cnf_stream.cpp
+ ** \verbatim
  ** Original author: taking
  ** Major contributors: dejan
- ** Minor contributors (to current version): mdeters
+ ** Minor contributors (to current version): mdeters, cconway
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A CNF converter that takes in asserts and has the side effect
+ ** of given an equisatisfiable stream of assertions to PropEngine.
  **
  ** A CNF converter that takes in asserts and has the side effect
  ** of given an equisatisfiable stream of assertions to PropEngine.
index ce6c7eb1edd2a6b7a4bab32bcd9423b3b49a098c..abb69f590f54f4dac110aa6677a884f0a37995f4 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** cnf_stream.h
+/*! \file cnf_stream.h
+ ** \verbatim
  ** Original author: taking
- ** Major contributors: dejan
- ** Minor contributors (to current version): cconway, mdeters
+ ** Major contributors: cconway, dejan
+ ** Minor contributors (to current version): mdeters
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief This class transforms a sequence of formulas into clauses.
  **
  ** This class takes a sequence of formulas.
  ** It outputs a stream of clauses that is propositionally
index 16881f9e4fdde3921451d98103d4cb645e9883a7..7cccca177422433a74f8bc5fe64cf8fb8d625fe6 100644 (file)
@@ -1,15 +1,19 @@
 /*********************                                                        */
-/** prop_engine.cpp
+/*! \file prop_engine.cpp
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: dejan
+ ** Major contributors: cconway, dejan
  ** Minor contributors (to current version): taking
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
  **
+ ** \brief Implementation of the propositional engine of CVC4.
+ **
+ ** Implementation of the propositional engine of CVC4.
  **/
 
 #include "cnf_stream.h"
index 7d3656a3240c78000acf47c961c147769ef99098..4adaa143406d6a6f53a31736d06e639828411cb5 100644 (file)
@@ -1,14 +1,18 @@
 /*********************                                                        */
-/** prop_engine.h
+/*! \file prop_engine.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: taking, dejan
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): cconway
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief The PropEngine (proposiitonal engine); main interface point
+ ** between CVC4's SMT infrastructure and the SAT solver.
  **
  ** The PropEngine (proposiitonal engine); main interface point
  ** between CVC4's SMT infrastructure and the SAT solver.
index df6eead4c4f7a1d957d28064c8ccd9c800e20076..207bda4db0562cf501ba8384c3e483151fb3fc9a 100644 (file)
@@ -1,3 +1,22 @@
+/*********************                                                        */
+/*! \file sat.cpp
+ ** \verbatim
+ ** Original author: cconway
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
 #include "cnf_stream.h"
 #include "prop_engine.h"
 #include "sat.h"
index f9d27d2acb7d9626415d4e91045416376ee5912d..e023410c73284f3be181dee75d4ba6dd51d0e1a9 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** sat.h
+/*! \file sat.h
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: dejan
- ** Minor contributors (to current version): cconway
+ ** Major contributors: dejan, cconway
+ ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief SAT Solver.
  **
  ** SAT Solver.
  **/
index 3b003846ca215f946f7ee11a560b324f875e6803..37f6f06576e20dbb287c0c993af5bfb5b6857665 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** smt_engine.cpp
+/*! \file smt_engine.cpp
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: dejan
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief The main entry point into the CVC4 library's SMT interface.
  **
  ** The main entry point into the CVC4 library's SMT interface.
  **/
index cca765b84ed03bd2dac31be2a70e40efbb0e5035..b5807852b98ea5e94065e5ef70c68d388f4dcdbc 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** smt_engine.h
+/*! \file smt_engine.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: dejan
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief SmtEngine: the main public entry point of libcvc4.
  **
  ** SmtEngine: the main public entry point of libcvc4.
  **/
index 775db3ae0ccccd37539419504b54116ff57ad0f8..c34e861910d4ff1052b91033c4d1dc93a783ec8f 100644 (file)
@@ -1,3 +1,22 @@
+/*********************                                                        */
+/*! \file arith_constants.h
+ ** \verbatim
+ ** Original author: taking
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
 
 
 #include "expr/node.h"
index 312e1c6eaa6c9d9f459bf5bbd6b49df9176191a7..19980cd2074becbd6820dec354cf6b0872bf40ac 100644 (file)
@@ -1,3 +1,22 @@
+/*********************                                                        */
+/*! \file arith_rewriter.cpp
+ ** \verbatim
+ ** Original author: taking
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
 
 #include "theory/arith/arith_rewriter.h"
 #include "theory/arith/arith_utilities.h"
index 6388c7031898d1c5cdb1ec7e3eb59041ecca641f..704b57ca6c6bd5c81a101d17ee89e266df98959e 100644 (file)
@@ -1,3 +1,22 @@
+/*********************                                                        */
+/*! \file arith_rewriter.h
+ ** \verbatim
+ ** Original author: taking
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
 
 #include "expr/node.h"
 #include "util/rational.h"
index 297def3c7351bcbc67325fadedd24cc2ecadf932..dcfedb7e8669f1b7833fa285983f2bd079faad1a 100644 (file)
@@ -1,10 +1,25 @@
-
-
+/*********************                                                        */
+/*! \file arith_utilities.h
+ ** \verbatim
+ ** Original author: taking
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
 
 #ifndef __CVC4__THEORY__ARITH__ARITH_UTILITIES_H
 #define __CVC4__THEORY__ARITH__ARITH_UTILITIES_H
 
-
 #include "util/rational.h"
 #include "expr/node.h"
 
index 0f1cb07dc84f6378742f9a0830e63fe79d1c9f4c..963f2b9693fcd0cabafef87e667167c88d6b1369 100644 (file)
@@ -1,3 +1,22 @@
+/*********************                                                        */
+/*! \file basic.h
+ ** \verbatim
+ ** Original author: taking
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
 
 #include "expr/node.h"
 #include "expr/attribute.h"
index 0c94b1d0804bbf0958f96a3321aeee3d60b0b16b..55e6b3dc9e6e5d85b2d7009e889de856beb6514d 100644 (file)
@@ -1,3 +1,22 @@
+/*********************                                                        */
+/*! \file delta_rational.cpp
+ ** \verbatim
+ ** Original author: taking
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
 
 #include "theory/arith/delta_rational.h"
 
index 4b6e06bc544bc2a5cc2446fd34cdf720e2887a45..c37c652417c88c60d166c8e1ddeac2691e8d2925 100644 (file)
@@ -1,3 +1,22 @@
+/*********************                                                        */
+/*! \file delta_rational.h
+ ** \verbatim
+ ** Original author: taking
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
 #include "cvc4_private.h"
 
 #include "util/integer.h"
index 0dbd7355a586d80f1ade7fe2fb000819802c56a2..12b2a5e7194ee5b4f65dac81e0d97e6ee6fb66d1 100644 (file)
@@ -1,3 +1,22 @@
+/*********************                                                        */
+/*! \file normal.h
+ ** \verbatim
+ ** Original author: taking
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
 
 #ifndef __CVC4__THEORY__ARITH__NORMAL_H
 #define __CVC4__THEORY__ARITH__NORMAL_H
index 33c690276ccca9d59b739af313543297ba39010b..2d65f064049627e95db03c3adb72b35ccfefd5cd 100644 (file)
@@ -1,3 +1,22 @@
+/*********************                                                        */
+/*! \file partial_model.cpp
+ ** \verbatim
+ ** Original author: taking
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
 
 #include "theory/arith/partial_model.h"
 #include "util/output.h"
index 57996a510effe86dca6efb0233a3bcf5e028444d..36567e86ebed4623270460c661ed7542efd399e0 100644 (file)
@@ -1,3 +1,22 @@
+/*********************                                                        */
+/*! \file partial_model.h
+ ** \verbatim
+ ** Original author: taking
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
 
 #include "context/context.h"
 #include "context/cdmap.h"
index 37595fda599b4649052b174101fedf0d05b59e70..5cf391e64533fccac10334cd6fddf7ed1806345f 100644 (file)
@@ -1,3 +1,22 @@
+/*********************                                                        */
+/*! \file slack.h
+ ** \verbatim
+ ** Original author: taking
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
 
 namespace CVC4 {
 namespace theory {
index 76d8aa4f3ca638992bee759d0a90f3d43c151183..e43b48c6690256b0d7993860becfd93f17c8a22a 100644 (file)
@@ -1,3 +1,22 @@
+/*********************                                                        */
+/*! \file tableau.h
+ ** \verbatim
+ ** Original author: taking
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
 
 #include "expr/node.h"
 #include "expr/attribute.h"
index 3ca3245dd3c085a570c9960cc54952d3c615c2b6..e99a3e8230aeef6b3bf8dc6b2d20e97627405ab6 100644 (file)
@@ -1,3 +1,22 @@
+/*********************                                                        */
+/*! \file theory_arith.cpp
+ ** \verbatim
+ ** Original author: taking
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
+
 #include "expr/node.h"
 #include "expr/kind.h"
 #include "expr/metakind.h"
index ade63b6c90a4765f51afd0021670162cc327ca40..c6b555bf8092fdad120edf356375abf09e6f2d3d 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** theory_arith.h
+/*! \file theory_arith.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: taking
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Arithmetic theory.
  **
  ** Arithmetic theory.
  **/
index b21ed0d6fa9e78acd063f7b07b1fce5763ed6d17..a995f90afafb6fce6b004d2f15f6c46780e33f54 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** theory_arith_type_rules.cpp
+/*! \file theory_arith_type_rules.cpp
+ ** \verbatim
  ** Original author: dejan
  ** Major contributors: none
  ** This file is part of the CVC4 prototype.
@@ -7,7 +8,11 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add brief comments here ]]
+ **
+ ** [[ Add file-specific comments here ]]
  **/
 
 #include "cvc4_private.h"
index 2f62aacd786ceda5442997f0b9643d1791220206..6ab0fac904772dcbc16e980be72880ab67ebf4ca 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** theory_arrays.h
+/*! \file theory_arrays.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Theory of arrays.
  **
  ** Theory of arrays.
  **/
index b39663449e6b70ac4c341ca36489b6380987dff7..83effa00545816169879da1256b0a78234d5bea3 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** theory_bool.h
+/*! \file theory_bool.h
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: none
+ ** Major contributors: taking
  ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief The theory of booleans.
  **
  ** The theory of booleans.
  **/
index 95d0f3bf6e17f547aad856db6a473f6c79eeb42d..8843a38c1af99fd5c9ccbb9563542de84e8f6a82 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** theory_bool_type_rules.cpp
+/*! \file theory_bool_type_rules.cpp
+ ** \verbatim
  ** Original author: dejan
  ** Major contributors: none
  ** This file is part of the CVC4 prototype.
@@ -7,7 +8,11 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add brief comments here ]]
+ **
+ ** [[ Add file-specific comments here ]]
  **/
 
 #include "cvc4_private.h"
index a859291a7a05523a0384fb3483e7ca646cacbf1c..dc29183eae22c2d8f1705cf4d08a7de43f70236b 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** theory_bv.h
+/*! \file theory_bv.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Bitvector theory.
  **
  ** Bitvector theory.
  **/
index 9c245b67ab96e881cdfa9748fee9ab19d7966d3f..142c9c963c64f12799561403eb67365c6c1f0c73 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** theory_bv_types.h
+/*! \file theory_bv_type_rules.h
+ ** \verbatim
  ** Original author: dejan
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Bitvector theory.
  **
  ** Bitvector theory.
  **/
index 00afd3b2b2599995cb818f91189784c3d7e75945..616d3da74f899bc415c507fc7b2cd9b2a7a86f07 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** interrupted.h
+/*! \file interrupted.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief The theory output channel interface.
  **
  ** The theory output channel interface.
  **/
index 08a3353e6afd9ac0f3c17c99a6a746fbdd724243..42d68efe512625f206dd6d16789773d82e89444e 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** output_channel.h
+/*! \file output_channel.h
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: none
+ ** Major contributors: taking
  ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief The theory output channel interface.
  **
  ** The theory output channel interface.
  **/
index d4bd717be45f1501d4904f18499b2c3ba98d1087..e06c9594ccbef68378a932fab1c15817ebfae9c7 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** theory.cpp
+/*! \file theory.cpp
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Base for theory interface.
  **
  ** Base for theory interface.
  **/
index 2fcac86b02d7b9e2ae351f002fd651eb00e0bf7a..bdd695cdd3d56fc8871c5f30f9cd9e4fc34773e6 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** theory.h
+/*! \file theory.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): dejan, taking
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Base of the theory interface.
  **
  ** Base of the theory interface.
  **/
index 9af4fc572e7b94310122ebe628f3d9e1e941cd7a..9dfaed68b62df9aff1194df80d840a9fbd4fdf71 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** theory_engine.cpp
+/*! \file theory_engine.cpp
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: none
+ ** Major contributors: taking
  ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief The theory engine.
  **
  ** The theory engine.
  **/
index 63d7a299fbd86bdd49dff7353c90d64887d91f97..1912cb0264bece44af6d4f3b4c7434601f44c411 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** theory_engine.h
+/*! \file theory_engine.h
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: dejan
- ** Minor contributors (to current version): none
+ ** Major contributors: taking, dejan
+ ** Minor contributors (to current version): cconway
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief The theory engine.
  **
  ** The theory engine.
  **/
index 465c4ee6d4141266e41f0bdb2614189945cf5e96..e0d6fc8c8eb0a98e1165647c50c93d3d1c970ab4 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** theoryof_table_template.h
+/*! \file theoryof_table_template.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief The template for the automatically-generated theoryOf table.
  **
  ** The template for the automatically-generated theoryOf table.
  ** See the mktheoryof script.
index 244605476dabb42e6a18595612dbe54118661553..822f3a95bf125e1b6b820e2717196f8800bd6c33 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** ecdata.cpp
+/*! \file ecdata.cpp
+ ** \verbatim
  ** Original author: taking
  ** Major contributors: mdeters
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Implementation of equivalence class data for UF theory.
  **
  ** Implementation of equivalence class data for UF theory.  This is a
  ** context-dependent object.
index bfc7eab8e0a3a6539b8df02af2ed573efe236c31..bff0a67a26c0811b6c5e83ae580061c6edcf7ea0 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** ecdata.h
+/*! \file ecdata.h
+ ** \verbatim
  ** Original author: taking
- ** Major contributors: none
- ** Minor contributors (to current version): mdeters
+ ** Major contributors: mdeters
+ ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Context dependent equivalence class datastructure for nodes.
  **
  ** Context dependent equivalence class datastructure for nodes.
  ** Currently keeps a context dependent watch list.
index 1f09ce81d45866dca33ce851236246abb0450575..d13baf6a944bcec3b97958f93c410b4361e17265 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** theory_uf.cpp
+/*! \file theory_uf.cpp
+ ** \verbatim
  ** Original author: taking
  ** Major contributors: mdeters
- ** Minor contributors (to current version): cconway, dejan
+ ** Minor contributors (to current version): dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Implementation of the theory of uninterpreted functions.
  **
  ** Implementation of the theory of uninterpreted functions.
  **/
index be08cfee796c7024f6dc00e352332b2a06ebe288..5add2e92a8c69d13eee877c167a69e421e5cc05d 100644 (file)
@@ -1,14 +1,18 @@
 /*********************                                                        */
-/** theory_uf.h
+/*! \file theory_uf.h
+ ** \verbatim
  ** Original author: taking
  ** Major contributors: mdeters
- ** Minor contributors (to current version): cconway
+ ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief This is a basic implementation of the Theory of Uninterpreted Functions
+ ** with Equality.
  **
  ** This is a basic implementation of the Theory of Uninterpreted Functions
  ** with Equality.  It is based on the Nelson-Oppen algorithm given in
index 4028c302250003dc5a2e7a5162ee56e250bd4206..33123cd8f4b1022dbb78a062347254e8376ae4a7 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** theory_uf_type_rules.h
+/*! \file theory_uf_type_rules.h
+ ** \verbatim
  ** Original author: dejan
  ** Major contributors: none
  ** This file is part of the CVC4 prototype.
@@ -7,7 +8,11 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add brief comments here ]]
+ **
+ ** [[ Add file-specific comments here ]]
  **/
 
 #include "cvc4_private.h"
index 1611f28d332811bcc65df37f9aec563e72ab016c..dbf2921081bd7cf92173c9b341178976e03ce30c 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** Assert.cpp
+/*! \file Assert.cpp
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Assertion utility classes, functions, and exceptions.
  **
  ** Assertion utility classes, functions, and exceptions.  Implementation.
  **/
index 744782ba29d095b9789354d3a27823f24e749925..5333817aab90587fd8a39a88c61bfe2d7b997727 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** Assert.h
+/*! \file Assert.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Assertion utility classes, functions, exceptions, and macros.
  **
  ** Assertion utility classes, functions, exceptions, and macros.
  **/
index 12506511846943127d6f31b12f9e5eb3eceb8876..f789313b82625fd34206df0b60a5bdc0bd6be456 100644 (file)
@@ -1,9 +1,21 @@
-/*
- * bitvector.cpp
- *
- *  Created on: Apr 5, 2010
- *      Author: dejan
- */
+/*********************                                                        */
+/*! \file bitvector.cpp
+ ** \verbatim
+ ** Original author: dejan
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
 
 #include "bitvector.h"
 
index 4f6038a815a3d65bdef3a496cf8334639787b2a1..e3ba969ec2f3644020166fc8c70a19dc21e7e0c4 100644 (file)
@@ -1,9 +1,21 @@
-/*
- * bitvector.h
- *
- *  Created on: Mar 31, 2010
- *      Author: dejan
- */
+/*********************                                                        */
+/*! \file bitvector.h
+ ** \verbatim
+ ** Original author: dejan
+ ** Major contributors: cconway
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
 
 #ifndef __CVC4__BITVECTOR_H_
 #define __CVC4__BITVECTOR_H_
index edd45b8a06b6b07495ccf9c794f8eae3fb80f777..d2a29c8d5422651385b4d943789ee6967d8cfa8e 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** bool.h
+/*! \file bool.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A multiprecision rational constant.
  **
  ** A multiprecision rational constant.
  ** This stores the rational as a pair of multiprecision integers,
index 5ed13a13999553ebbc49eee4be85013893a5c4d2..2a7563f82e2ab681af798202ca7f0c61671be769 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** configuration.cpp
+/*! \file configuration.cpp
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,10 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Implementation of Configuration class, which provides compile-time
+ ** configuration information about the CVC4 library.
  **
  ** Implementation of Configuration class, which provides compile-time
  ** configuration information about the CVC4 library.
index f939d8981b6cd748c2370709317a3e963624420a..00651202d2fd224b451784f0d25488822a9ae07d 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** configuration.h
+/*! \file configuration.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,10 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Interface to a public class that provides compile-time information
+ ** about the CVC4 library.
  **
  ** Interface to a public class that provides compile-time information
  ** about the CVC4 library.
index a99652661d39778ae76ce26d9fe5b113f78b5526..4fc5d5caac5fbef2ff6b5ab1805b3f2446a5b504 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** debug.h
+/*! \file debug.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Debugging things.
  **
  ** Debugging things.
  **
index 06ea283a866a87f2343c06a6f38b731f9ed19c43..1ef2440c995d4947a8194217f75738a2ec55b305 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** decision_engine.cpp
+/*! \file decision_engine.cpp
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief .
  **
  **/
 
index 84ace55b29b1e7523e9094c9a49b292793ea435f..e1d9e21b71da19f04664ed7c6d519a53f2112387 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** decision_engine.h
+/*! \file decision_engine.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A decision engine for CVC4.
  **
  ** A decision engine for CVC4.
  **/
index 48dcf124497440a38094197824ba4c084e0ceb53..4893bd3c229095d41846f02f46c36b581b34c56c 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** exception.h
+/*! \file exception.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief CVC4's exception base class and some associated utilities.
  **
  ** CVC4's exception base class and some associated utilities.
  **/
index 1849974cd29f96d867b7c7a012d9a34e24530faf..de237b7936447d4a00b4cc2627de1eb6d354ac88 100644 (file)
@@ -1,9 +1,21 @@
-/*
- * gmp.h
- *
- *  Created on: Apr 5, 2010
- *      Author: dejan
- */
+/*********************                                                        */
+/*! \file gmp_util.h
+ ** \verbatim
+ ** Original author: dejan
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
 
 #ifndef __CVC4__GMP_H_
 #define __CVC4__GMP_H_
index c72fe47e85064895cab1d1ecde05c36e08ebd7d6..708628c2448fc790171970e8c450df68778c683a 100644 (file)
@@ -1,9 +1,21 @@
-/*
- * hash.h
- *
- *  Created on: May 8, 2010
- *      Author: chris
- */
+/*********************                                                        */
+/*! \file hash.h
+ ** \verbatim
+ ** Original author: cconway
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief [[ Add one-line brief description here ]]
+ **
+ ** [[ Add lengthier description here ]]
+ ** \todo document this file
+ **/
 
 #ifndef __CVC4__HASH_H_
 #define __CVC4__HASH_H_
index a26f2108f32aec4d22e72d32b291bca3158e3841..85075fd39151e4c250f1f2b25cfe21b4c744e6f1 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** integer.cpp
+/*! \file integer.cpp
+ ** \verbatim
  ** Original author: taking
  ** Major contributors: mdeters
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A multiprecision rational constant.
  **
  ** A multiprecision rational constant.
  ** This stores the rational as a pair of multiprecision integers,
index 41582d8db69547c0c4c222d818f1b358397ec5fa..d1921f59778ba26bcc0e95e4ce8911dae18cbdea 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** integer.h
+/*! \file integer.h
+ ** \verbatim
  ** Original author: taking
  ** Major contributors: none
- ** Minor contributors (to current version): mdeters
+ ** Minor contributors (to current version): dejan, cconway, mdeters
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A multiprecision integer constant.
  **
  ** A multiprecision integer constant.
  **/
index f807ff963aea948cdfdad2bd96012d3a9888dcf1..31fed1f310b2f58e21e44b029d730bf82e65da17 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** model.h
+/*! \file model.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A model.
  **
  ** A model.
  **/
index c7a730b1441cb4a57ba0971baa017cfc03bf1742..7fcf35f0064568d9db256f2327e4bad458584072 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** options.h
+/*! \file options.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: cconway
  ** Minor contributors (to current version): dejan
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Global (command-line or equivalent) tuning parameters.
  **
  ** Global (command-line or equivalent) tuning parameters.
  **/
index 5d09e1d93ca80a6c17f9a8b991c4de607d705d12..501ef52fdb307e2d144040cc4ca093425d5f13e8 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** output.cpp
+/*! \file output.cpp
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Output utility classes and functions.
  **
  ** Output utility classes and functions.
  **/
index ea96606cb89595197ed45b9521860d49a393ef42..f27ec24daff154a13f343d5bf10112a55239b0e8 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** output.h
+/*! \file output.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
- ** Minor contributors (to current version): dejan
+ ** Minor contributors (to current version): dejan, cconway
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Output utility classes and functions.
  **
  ** Output utility classes and functions.
  **/
index 5e9141758fa29f7b1f5332edb9c1de6bd9a42aa8..beaa184bbdcc54fed99df267a04111291aed6255 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** rational.cpp
+/*! \file rational.cpp
+ ** \verbatim
  ** Original author: taking
- ** Major contributors: mdeters
+ ** Major contributors: mdeters, cconway
  ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A multi-precision rational constant.
  **
  ** A multi-precision rational constant.
  **/
index 8218984a7575be4c3ac6062e78f87a2e8d20e4e4..5e187de7f5b47a8a4eb85104111deb9a7576ab26 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** rational.h
+/*! \file rational.h
+ ** \verbatim
  ** Original author: taking
- ** Major contributors: none
- ** Minor contributors (to current version): mdeters
+ ** Major contributors: cconway
+ ** Minor contributors (to current version): dejan, mdeters
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Multi-precision rational constants.
  **
  ** Multi-precision rational constants.
  **/
index 679e687635dc0be1088e40b0d5d8d945c3c06a0f..e76e5605b22ea7dcdaea6c4f18d420364413d26e 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** result.h
+/*! \file result.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Encapsulation of the result of a query.
  **
  ** Encapsulation of the result of a query.
  **/
index cf9298c4ec6c98b0cdd55bd9c96046eed9c56fca..f00343729afb8df8d8d8590de9803aa09dcb0598 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** sexpr.cpp
+/*! \file sexpr.h
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Simple representation of SMT S-expressions.
  **
  ** Simple representation of SMT S-expressions.
  **/
index 54e56da9608849bee8b5d913ba2b902879a96c99..67a6c5cff912333cb39e46983ade824d4718fe55 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** unique_id.h
+/*! \file unique_id.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief A mechanism for getting a compile-time unique ID.
  **
  ** A mechanism for getting a compile-time unique ID.
  **/
index bcc95b4701aa4d973444b94a8402897732709b33..299e11deeff8a0045f7f9be009e25e71b98397b5 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** cdlist_black.h
+/*! \file cdlist_black.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::context::CDList<>.
  **
  ** Black box testing of CVC4::context::CDList<>.
  **/
index 262c66fe5883bebf8f3c94da0817fa8b292ca9ac..93316da76dac20e1fe10a2ba147d4d2c34253c5b 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** cdmap_black.h
+/*! \file cdmap_black.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::context::CDMap<>.
  **
  ** Black box testing of CVC4::context::CDMap<>.
  **/
index 9a920ede8fe6671fc8173977a78249d98e9a2ed7..a3abd6f2540ce37d2f700459e852f03e76fc5d8d 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** cdmap_white.h
+/*! \file cdmap_white.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief White box testing of CVC4::context::CDMap<>.
  **
  ** White box testing of CVC4::context::CDMap<>.
  **/
index 4cdb8f3434151285d5fca8ac74b5778fddbc1c1b..f844c2ef594dd53b8bb176e2df32324cb5ab3a33 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** cdo_black.h
+/*! \file cdo_black.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::context::CDO<>.
  **
  ** Black box testing of CVC4::context::CDO<>.
  **/
index 46d01946b1d443d405b434d1fd57b81b4dc4943d..e5aee4baa60297392d001b3000728dd4d7a848d4 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** context_black.h
+/*! \file context_black.h
+ ** \verbatim
  ** Original author: dejan
  ** Major contributors: mdeters
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::context::Context.
  **
  ** Black box testing of CVC4::context::Context.
  **/
index e25d1f33631095b2f158d27cd8813b6642d829cd..126245af7e1e2d6660a9253a73c39038c787b886 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** context_mm_black.h
+/*! \file context_mm_black.h
+ ** \verbatim
  ** Original author: dejan
- ** Major contributors: none
- ** Minor contributors (to current version): mdeters
+ ** Major contributors: mdeters
+ ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::context::ContextMemoryManager.
  **
  ** Black box testing of CVC4::context::ContextMemoryManager.
  **/
index 0963e41002a070cb0e22df99a03f6d43e95f4c83..38649ef5be69439b338231a1f686a4d7868bfdcb 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** context_white.h
+/*! \file context_white.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief White box testing of CVC4::context::Context.
  **
  ** White box testing of CVC4::context::Context.
  **/
index 7894743d6469570d0a903010ebe0beb255f7402c..c9fc1f50b022330d92894c576320f48ca41b5f92 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** attribute_black.h
- ** Original author: taking
- ** Major contributors: none
- ** Minor contributors (to current version): none
+/*! \file attribute_black.h
+ ** \verbatim
+ ** Original author: dejan
+ ** Major contributors: taking
+ ** Minor contributors (to current version): cconway, mdeters
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::Attribute.
  **
  ** Black box testing of CVC4::Attribute.
  **/
index 509f0b02dbbf9c786f33f8438bf074896cc2e7c2..8afc012ff136008c6e8e833f8dca224b8acebed4 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** attribute_white.h
+/*! \file attribute_white.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
- ** Minor contributors (to current version): cconway
+ ** Minor contributors (to current version): dejan, cconway
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief White box testing of Node attributes.
  **
  ** White box testing of Node attributes.
  **/
index 67e6d3e986a0308b0bd6d81f660511b1622a8e32..923df2afb1281702914c89aa2a8efc831551412c 100644 (file)
@@ -1,12 +1,17 @@
 /*********************                                                        */
-/** declaration_scope_black.h
+/*! \file declaration_scope_black.h
+ ** \verbatim
  ** Original author: cconway
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::DeclarationScope.
  **
  ** Black box testing of CVC4::DeclarationScope.
  **/
index ecb71081d9d8c63cf7aeb30b48b72cbfb31b9f96..4d3958278d17408ad78205e48760125719163354 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** expr_manager_public.h
+/*! \file expr_manager_public.h
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,9 +9,11 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
  **
- ** Public black-box testing of CVC4::Expr.
+ ** \brief Public black-box testing of CVC4::ExprManager.
+ **
+ ** Public black-box testing of CVC4::ExprManager.
  **/
 
 #include <cxxtest/TestSuite.h>
index 00f20dbe6cca833a51128aa555a71cb6396809bc..7900057e15ac2694ee77355f65fcd109fb5b6798 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** expr_public.h
+/*! \file expr_public.h
+ ** \verbatim
  ** Original author: mdeters
- ** Major contributors: none
+ ** Major contributors: dejan
  ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Public black-box testing of CVC4::Expr.
  **
  ** Public black-box testing of CVC4::Expr.
  **/
index 8f25a9fc10bd7356700a9cbb871be516b756150e..314108a5b2028be8785747087333034a617b7197 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** kind_black.h
+/*! \file kind_black.h
+ ** \verbatim
  ** Original author: taking
  ** Major contributors: none
  ** Minor contributors (to current version): mdeters
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::Kind.
  **
  ** Black box testing of CVC4::Kind.
  **/
index 52a324d532f5d9d5bb0d9ca76bee3763bd3aaff0..c7983258356b1d1cf5cc4c12ef33dd256b15e2ca 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** node_black.h
+/*! \file node_black.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: taking
- ** Minor contributors (to current version): dejan, cconway
+ ** Minor contributors (to current version): cconway, dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::Node.
  **
  ** Black box testing of CVC4::Node.
  **/
index 8bde4b04716220eca940e889b7357a4a0891c534..7f315f0926b9fcd5aba4ac89dfeb48c0a257723c 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** node_builder_black.h
+/*! \file node_builder_black.h
+ ** \verbatim
  ** Original author: taking
  ** Major contributors: mdeters
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::NodeBuilder.
  **
  ** Black box testing of CVC4::NodeBuilder.
  **/
@@ -20,6 +23,7 @@
 #include <sstream>
 
 #include "expr/node_builder.h"
+#include "expr/convenience_node_builders.h"
 #include "expr/node_manager.h"
 #include "expr/node.h"
 #include "expr/kind.h"
@@ -673,25 +677,4 @@ public:
     TS_ASSERT_EQUALS(Node(- a + b), d_nm->mkNode(PLUS, d_nm->mkNode(UMINUS, a), b));
     TS_ASSERT_EQUALS(Node(- a * b), d_nm->mkNode(MULT, d_nm->mkNode(UMINUS, a), b));
   }
-
-  /**
-   * This tests the "stack builder"
-   */
-  void testStackBuilder() {
-    try {
-      for(unsigned i = 0; i < 100; ++i) {
-        size_t n = 1 + (rand() % 50);
-
-        // make a builder "b" with a backing store for n children
-        makeStackNodeBuilder(b, n);
-
-        // build one-past-the-end
-        for(size_t j = 0; j <= n; ++j) {
-          b << d_nm->mkConst(true);
-        }
-      }
-    } catch(Exception e) {
-      std::cout << e;
-    }
-  }
 };
index 78c38d782668911837e1ab845586d52376fbebce..af79f5ff25613cdf2358f8aedfb5e5b7fa681783 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** node_manager_black.h
- ** Original author: 
- ** Major contributors: none
- ** Minor contributors (to current version): none
+/*! \file node_manager_black.h
+ ** \verbatim
+ ** Original author: cconway
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): taking, mdeters
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief White box testing of CVC4::NodeManager.
  **
  ** White box testing of CVC4::NodeManager.
  **/
@@ -341,7 +344,6 @@ public:
   /* This test is only valid if assertions are enabled. */
   void testMkNodeTooFew() {
 #ifdef CVC4_ASSERTIONS
-    TS_ASSERT_THROWS( d_nodeManager->mkNode(AND), AssertionException );
     Node x = d_nodeManager->mkVar( d_nodeManager->booleanType() );
     TS_ASSERT_THROWS( d_nodeManager->mkNode(AND, x), AssertionException );
 #endif
index 7f01159220fdaf65606b91326bfcf466380db1bb..62fdeb45be6c92a796eff5fb6fff015b13a54db5 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** node_manager_white.h
+/*! \file node_manager_white.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): taking
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief White box testing of CVC4::NodeManager.
  **
  ** White box testing of CVC4::NodeManager.
  **/
index d851c191f55ddbf4d40239e0172d59cde3655376..9ffd2d09407d8ea45ebdc9535bf7a3507ee62ff2 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** node_white.h
+/*! \file node_white.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
- ** Minor contributors (to current version): dejan
+ ** Minor contributors (to current version): taking, dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief White box testing of CVC4::Node.
  **
  ** White box testing of CVC4::Node.
  **/
index 38ac63e65349c85784963ada6a44b6d05eeaf88f..64b1da51bc0997abfe823b3dc460aad4b22b1d45 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** memory.h
+/*! \file memory.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Utility class to help testing out-of-memory conditions.
  **
  ** Utility class to help testing out-of-memory conditions.
  **
index f6d822265933ecb5c09d331d474f89dd6d19cb85..1f986732c059b55be80851e23b4d1ecc701ce8ad 100644 (file)
@@ -1,14 +1,18 @@
 /*********************                                                        */
-/** parser_black.h
+/*! \file parser_black.h
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: none
- ** Minor contributors (to current version): dejan, mdeters
+ ** Minor contributors (to current version): mdeters
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::parser::Parser, including CVC, SMT and
+ ** SMT v2 inputs.
  **
  ** Black box testing of CVC4::parser::Parser, including CVC, SMT and
  ** SMT v2 inputs.
index f254580af35485e17e84735a86498ad283564016..e839360d7ae1ab67494210790866728cf31279ca 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** parser_builder_black.h
+/*! \file parser_builder_black.h
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: none
- ** Minor contributors (to current version): dejan, mdeters
+ ** Minor contributors (to current version): none
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::parser::ParserBuilder.
  **
  ** Black box testing of CVC4::parser::ParserBuilder.
  **/
index bbae46df7d7cf8ccef72113245d9fb7b313cb9ef..def0a12eddd2c9344d7c5a5429c1edf92f4d351a 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** cnf_stream_black.h
+/*! \file cnf_stream_black.h
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: none
- ** Minor contributors (to current version): dejan, mdeters
+ ** Minor contributors (to current version): dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief White box testing of CVC4::prop::CnfStream.
  **
  ** White box testing of CVC4::prop::CnfStream.
  **/
index 0443b7b8e885b6800afd938763e85a535815a430..9c056d36809231f0c26c5aca3a7c1c31a5b2248b 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** theory_black.h
+/*! \file theory_black.h
+ ** \verbatim
  ** Original author: taking
  ** Major contributors: mdeters
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): cconway, dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::theory::Theory.
  **
  ** Black box testing of CVC4::theory::Theory.
  **/
index 8be56bc79d3fae9f947b03958b17765763eeecc0..50c201606c9aa97cdcf53c9bbce2fc0846e3c918 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** theory_uf_white.h
+/*! \file theory_uf_white.h
+ ** \verbatim
  ** Original author: taking
  ** Major contributors: mdeters
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): dejan
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief White box testing of CVC4::theory::uf::TheoryUF.
  **
  ** White box testing of CVC4::theory::uf::TheoryUF.
  **/
index d001c5a8449488e165e218473c7df49aa59118be..389f2aa1b49c5530705e49c258239e8d5ec8fdcf 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** assert_white.h
+/*! \file assert_white.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief White box testing of CVC4::Configuration.
  **
  ** White box testing of CVC4::Configuration.
  **/
index b866aa87747781ae224aaabbb3c4bd87ace6f300..c4e77852bb7a8f3a647475d9bc95218a841d1745 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** bitvector_black.h
- ** Original author: taking
+/*! \file bitvector_black.h
+ ** \verbatim
+ ** Original author: cconway
  ** Major contributors: none
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): mdeters
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::BitVector.
  **
  ** Black box testing of CVC4::BitVector.
  **/
index 5ee4cf095bc5fe693be342b9cb6c3e6720f06e34..e06fe96365924df405c032d9e46ea29312bd1261 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** configuration_black.h
+/*! \file configuration_black.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::Configuration.
  **
  ** Black box testing of CVC4::Configuration.
  **/
index 758a12645e6e23a2442f1529035a50565a38941d..2bbd727fbae10e7db582c11bda96e89695333cc5 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** exception_black.h
+/*! \file exception_black.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::Exception.
  **
  ** Black box testing of CVC4::Exception.
  **/
index 627167ad3a44ca43d63cab9ea3d0845e33cc462b..57ae247acd70cb196b4c8074859504847dc12a4b 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** integer_black.h
+/*! \file integer_black.h
+ ** \verbatim
  ** Original author: taking
  ** Major contributors: none
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): cconway, mdeters
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::Integer.
  **
  ** Black box testing of CVC4::Integer.
  **/
index 3a86289a38102e8983c239fde466aa01c0e41ad7..cd92449969216bc2bb8f5d896d99110d02780425 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** integer_white.h
+/*! \file integer_white.h
+ ** \verbatim
  ** Original author: taking
  ** Major contributors: none
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): mdeters
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief White box testing of CVC4::Integer.
  **
  ** White box testing of CVC4::Integer.
  **/
index 6e613e9f40a27b799327614764cb7a0824bef65e..e6a040f7b59e1901516ecc34c5d20b6c0bf54dec 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** output_black.h
+/*! \file output_black.h
+ ** \verbatim
  ** Original author: mdeters
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4 output classes.
  **
  ** Black box testing of CVC4 output classes.
  **/
index 35d22b1504d2b8bfa1513ccce26a6df94a3857e6..17bd7b245f7b37347cb63063fbe657dce92f5c9d 100644 (file)
@@ -1,5 +1,6 @@
 /*********************                                                        */
-/** rational_black.h
+/*! \file rational_black.h
+ ** \verbatim
  ** Original author: cconway
  ** Major contributors: none
  ** Minor contributors (to current version): none
@@ -8,7 +9,9 @@
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief Black box testing of CVC4::Rational.
  **
  ** Black box testing of CVC4::Rational.
  **/
index 45f1301f3d83e12a9e00d2bfecb453e3cd0f7f0c..4a76e7a5d497ca655e1bebc032f26c2cbf6a065d 100644 (file)
@@ -1,14 +1,17 @@
 /*********************                                                        */
-/** rational_white.h
+/*! \file rational_white.h
+ ** \verbatim
  ** Original author: taking
  ** Major contributors: none
- ** Minor contributors (to current version): none
+ ** Minor contributors (to current version): mdeters
  ** This file is part of the CVC4 prototype.
  ** Copyright (c) 2009, 2010  The Analysis of Computer Systems Group (ACSys)
  ** Courant Institute of Mathematical Sciences
  ** New York University
  ** See the file COPYING in the top-level source directory for licensing
- ** information.
+ ** information.\endverbatim
+ **
+ ** \brief White box testing of CVC4::Rational.
  **
  ** White box testing of CVC4::Rational.
  **/