.PHONY: _default_build_ all
_default_build_: all
-%:
+all %:
@if test -e $(builddir); then \
echo cd $(builddir); \
cd $(builddir); \
--- /dev/null
+#!/bin/sh
+#
+# get-authors
+# Morgan Deters <mdeters@cs.nyu.edu> for CVC4
+#
+# usage: get-authors [ files... ]
+#
+# This script uses svn to get the original author
+#
+
+while [ $# -gt 0 ]; do
+ f=$1
+ shift
+ original_author=
+ major_contributors=
+ minor_contributors=
+ total_lines=`wc -l "$f" | awk '{print$1}'`
+ original_author=`svn log -q --incremental "$f" | tail -1 | awk '{print$3}'`
+ svn blame "$f" | awk '{print$2}' | sort | uniq -c | sort -n |
+ ( while read lines author; do
+ pct=$((100*$lines/$total_lines))
+ if [ "$author" != "$original_author" ]; then
+ if [ $pct -gt 10 ]; then
+ major_contributors="${major_contributors:+$major_contributors, }$author"
+ else
+ minor_contributors="${minor_contributors:+$minor_contributors, }$author"
+ fi
+ fi
+ done; \
+ echo "$original_author"
+ echo "${major_contributors:-none}"
+ echo "${minor_contributors:-none}" )
+done
#!/usr/bin/perl -w
#
+# update-copyright.pl
+# Morgan Deters <mdeters@cs.nyu.edu> for CVC4
+#
+# usage: update-copyright [ files/directories... ]
+#
# This script goes through a source directory rewriting the top bits of
# source files to match a template (inline, below). For files with no
# top comment, it adds a fresh one.
use strict;
use Fcntl ':mode';
+my $dir = $0;
+$dir =~ s,/[^/]+/*$,,;
+
my @searchdirs = ();
if($#ARGV == -1) {
- my $dir = $0;
- $dir =~ s,/[^/]+/*$,,;
-
- (chdir($dir."/..") && -f "src/include/cvc4_expr.h") || die "can't find top-level source directory for CVC4";
+ (chdir($dir."/..") && -f "src/include/cvc4_config.h") || die "can't find top-level source directory for CVC4";
my $pwd = `pwd`; chomp $pwd;
print <<EOF;
my $outfile = $srcdir.'/#'.$file.'.tmp';
open(my $IN, $infile) || die "error opening $infile for reading";
open(my $OUT, '>', $outfile) || die "error opening $outfile for writing";
+ open(my $AUTHOR, "$dir/get-authors " . $infile . '|');
+ my $author = <$AUTHOR>; chomp $author;
+ my $major_contributors = <$AUTHOR>; chomp $major_contributors;
+ my $minor_contributors = <$AUTHOR>; chomp $minor_contributors;
+ close $AUTHOR;
$_ = <$IN>;
if(m,^(%{)?/\*\*\*\*\*,) {
print "updating\n";
print $OUT "/********************* -*- C++ -*- */\n";
}
print $OUT "/** $file\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";
while(my $line = <$IN>) {
print $OUT "/********************* -*- C++ -*- */\n";
}
print $OUT "/** $file\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";
/********************* -*- C++ -*- */
/** context.cpp
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** context.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** Context class and context manager.
**/
#ifndef __CVC4__CONTEXT__CONTEXT_H
/********************* -*- C++ -*- */
/** context_mm.cpp
+ ** Original author: barrett
+ ** Major contributors: mdeters
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** context_mm.h
+ ** Original author: barrett
+ ** Major contributors: none
+ ** Minor contributors (to current version): mdeters
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** attr_type.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan, taking
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** Node attribute describing the type of a node.
**/
#ifndef __CVC4__EXPR__ATTR_TYPE_H
/********************* -*- C++ -*- */
-/** attr_type.h
+/** attr_var_name.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** The node attribute describing variable names.
**/
#ifndef __CVC4__EXPR__ATTR_VAR_NAME_H
-/*
- * expr.cpp
- *
- * Created on: Dec 10, 2009
- * Author: dejan
- */
+/********************* -*- C++ -*- */
+/** expr.cpp
+ ** Original author: dejan
+ ** Major contributors: none
+ ** Minor contributors (to current version): taking
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 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.
+ **
+ ** [[ Add file-specific comments here ]]
+ **/
#include "expr/expr.h"
#include "expr/node.h"
-/*
- * expr.h
- *
- * Created on: Dec 10, 2009
- * Author: dejan
- */
+/********************* -*- C++ -*- */
+/** expr.h
+ ** Original author: dejan
+ ** Major contributors: none
+ ** Minor contributors (to current version): taking, mdeters
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 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.
+ **
+ ** Public-facing expression interface.
+ **/
#ifndef __CVC4__EXPR_H
#define __CVC4__EXPR_H
+/********************* -*- C++ -*- */
+/** expr_manager.cpp
+ ** Original author: dejan
+ ** Major contributors: none
+ ** Minor contributors (to current version): mdeters
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 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.
+ **
+ ** [[ Add file-specific comments here ]]
+ **/
+
/*
* expr_manager.cpp
*
-/*
- * expr_manager.h
- *
- * Created on: Dec 10, 2009
- * Author: dejan
- */
+/********************* -*- C++ -*- */
+/** expr_manager.h
+ ** Original author: dejan
+ ** Major contributors: none
+ ** Minor contributors (to current version): taking
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 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.
+ **
+ ** Public-facing expression manager interface.
+ **/
#ifndef __CVC4__EXPR_MANAGER_H
#define __CVC4__EXPR_MANAGER_H
/********************* -*- C++ -*- */
/** kind.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** Kinds of Nodes.
**/
#ifndef __CVC4__KIND_H
/********************* -*- C++ -*- */
/** node.cpp
+ ** Original author: mdeters
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** node.h
+ ** Original author: mdeters
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): taking
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
- ** Reference-counted encapsulation of a pointer to an expression.
+ ** Reference-counted encapsulation of a pointer to node information.
**/
#include "expr/node_value.h"
/********************* -*- C++ -*- */
-/** expr_attribute.h
+/** node_attribute.h
+ ** Original author: mdeters
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** Node attributes.
**/
#ifndef __CVC4__EXPR__NODE_ATTRIBUTE_H
/********************* -*- C++ -*- */
/** node_builder.cpp
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** node_builder.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** A builder interface for nodes.
**/
#ifndef __CVC4__NODE_BUILDER_H
/********************* -*- C++ -*- */
/** node_manager.cpp
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** node_manager.h
+ ** Original author: mdeters
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): taking
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** A manager for Nodes.
**/
#ifndef __CVC4__NODE_MANAGER_H
/********************* -*- C++ -*- */
/** node_value.cpp
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** node_value.h
+ ** Original author: mdeters
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** cvc4_config.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
- ** [[ Add file-specific comments here ]]
+ ** Macros that should be defined everywhere during the building of
+ ** the libraries and driver binary.
**/
#ifndef __CVC4_CONFIG_H
/********************* -*- C++ -*- */
/** about.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** getopt.cpp
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): barrett, dejan
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** main.cpp
+ ** Original author: mdeters
+ ** Major contributors: barrett, dejan
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** main.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan, barrett
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** usage.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** util.cpp
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
+/********************* -*- C++ -*- */
+/** antlr_parser.cpp
+ ** Original author: dejan
+ ** Major contributors: none
+ ** Minor contributors (to current version): cconway, mdeters
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 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.
+ **
+ ** [[ Add file-specific comments here ]]
+ **/
+
/*
* antlr_parser.cpp
*
-/*
- * antlr_parser.h
- *
- * Created on: Nov 30, 2009
- * Author: dejan
- */
+/********************* -*- C++ -*- */
+/** antlr_parser.h
+ ** Original author: dejan
+ ** Major contributors: none
+ ** Minor contributors (to current version): mdeters, cconway
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 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.
+ **
+ ** Base for ANTLR parser classes.
+ **/
#ifndef CVC4_PARSER_H_
#define CVC4_PARSER_H_
/********************* -*- C++ -*- */
/** cvc_parser.cpp
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** cvc_parser.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** parser.cpp
+ ** Original author: mdeters
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** parser.h
+ ** Original author: mdeters
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** parser_exception.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
- ** Exception class.
+ ** Exception class for parse errors.
**/
#ifndef __CVC4__PARSER__PARSER_EXCEPTION_H
/********************* -*- C++ -*- */
/** smt_parser.cpp
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** smt_parser.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): cconway, dejan
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** symbol_table.h
+ ** Original author: cconway
+ ** Major contributors: dejan, mdeters
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** A symbol table for the parsers' use.
**/
#ifndef __CVC4__PARSER__SYMBOL_TABLE_H
/********************* -*- C++ -*- */
-/** prop_engine.h
+/** prop_engine.cpp
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** prop_engine.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** The PropEngine (proposiitonal engine); main interface point
+ ** between CVC4's SMT infrastructure and the SAT solver.
**/
#ifndef __CVC4__PROP_ENGINE_H
/********************* -*- C++ -*- */
/** sat.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** SAT Solver.
**/
#ifndef __CVC4__PROP__SAT_H
/********************* -*- C++ -*- */
/** smt_engine.cpp
+ ** Original author: mdeters
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** smt_engine.h
+ ** Original author: mdeters
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** SmtEngine: the main public entry point of libcvc4.
**/
#ifndef __CVC4__SMT_ENGINE_H
/********************* -*- C++ -*- */
/** theory.cpp
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** Base for theory interface.
**/
#include "theory/theory.h"
/********************* -*- C++ -*- */
/** theory.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** Base of the theory interface.
**/
#ifndef __CVC4__THEORY__THEORY_H
/********************* -*- C++ -*- */
/** theory_engine.cpp
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** The theory engine.
**/
#include "theory/theory_engine.h"
/********************* -*- C++ -*- */
/** theory_engine.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** The theory engine.
**/
#ifndef __CVC4__THEORY_ENGINE_H
/********************* -*- C++ -*- */
/** Assert.cpp
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** Assert.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
+/********************* -*- C++ -*- */
+/** command.cpp
+ ** Original author: mdeters
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 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.
+ **
+ ** [[ Add file-specific comments here ]]
+ **/
+
/*
* command.cpp
*
/********************* -*- C++ -*- */
/** command.h
+ ** Original author: mdeters
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): cconway
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** Implementation of the command pattern on SmtEngines. Generated by
+ ** the parser.
**/
#ifndef __CVC4__COMMAND_H
/********************* -*- C++ -*- */
/** debug.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** Debugging things.
+ **
+ ** These are low-level assertions! Generally you should use
+ ** CVC4::Assert() instead (they throw an exception!). See
+ ** util/Assert.h.
**/
#ifndef __CVC4__DEBUG_H
#define __CVC4__DEBUG_H
+#include "cvc4_config.h"
+
#include <cassert>
-#ifdef DEBUG
+#ifdef CVC4_ASSERTIONS
// the __builtin_expect() helps us if assert is built-in or a macro
-# define cvc4assert(x) assert(__builtin_expect((x), 1))
+# define cvc4assert(x) assert(EXPECT_TRUE( x ))
#else
// TODO: use a compiler annotation when assertions are off ?
// (to improve optimization)
-# define cvc4assert(x)
-#endif /* DEBUG */
+# define cvc4assert(x) /*EXPECT_TRUE( x )*/
+#endif /* CVC4_ASSERTIONS */
#endif /* __CVC4__DEBUG_H */
/********************* -*- C++ -*- */
/** decision_engine.cpp
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** decision_engine.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** A decision engine for CVC4.
**/
#ifndef __CVC4__DECISION_ENGINE_H
/********************* -*- C++ -*- */
/** exception.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
- ** Exception class.
- **
- ** As many paragraphs as you like.
+ ** CVC4's exception base class and some associated utilities.
**/
#ifndef __CVC4__EXCEPTION_H
/********************* -*- C++ -*- */
/** literal.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** A literal.
**/
#ifndef __CVC4__LITERAL_H
/********************* -*- C++ -*- */
/** model.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** A model.
**/
#ifndef __CVC4__MODEL_H
/********************* -*- C++ -*- */
/** options.h
+ ** Original author: mdeters
+ ** Major contributors: dejan
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
- ** [[ Add file-specific comments here ]]
+ ** Global (command-line or equivalent) tuning parameters.
**/
#include <iostream>
/********************* -*- C++ -*- */
/** output.cpp
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** output.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
/********************* -*- C++ -*- */
/** result.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** Encapsulation of the result of a query.
**/
#ifndef __CVC4__RESULT_H
/********************* -*- C++ -*- */
/** unique_id.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
** This file is part of the CVC4 prototype.
** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys)
** Courant Institute of Mathematical Sciences
** See the file COPYING in the top-level source directory for licensing
** information.
**
+ ** A mechanism for getting a compile-time unique ID.
**/
#ifndef __CVC4__UNIQUE_ID_H
+# all unit tests
+UNIT_TESTS = \
+ expr/node_white \
+ expr/node_black \
+ parser/cvc/cvc_parser_black \
+ parser/smt/smt_parser_black
+
+# things that aren't tests but that tests rely on and need to
+# go into the distribution
+TEST_DEPENDENCIES =
+
if HAVE_CXXTESTGEN
AM_CPPFLAGS = \
- -I. "-I@CXXTEST@" "-I@top_srcdir@/src/include" "-I@top_srcdir@/src"
+ -I. "-I@CXXTEST@" "-I@top_srcdir@/src/include" "-I@top_srcdir@/src" \
+ $(TEST_CPPFLAGS)
+AM_CXXFLAGS = $(TEST_CXXFLAGS)
+AM_LDFLAGS = $(TEST_LDFLAGS)
+
AM_CXXFLAGS_WHITE = -fno-access-control
AM_CXXFLAGS_BLACK =
AM_CXXFLAGS_PUBLIC =
AM_LDFLAGS_WHITE = \
- @abs_top_builddir@/src/parser/libcvc4parser_noinst.la \
- @abs_top_builddir@/src/libcvc4_noinst.la
+ @abs_top_builddir@/src/parser/libcvc4parser_noinst.la \
+ @abs_top_builddir@/src/libcvc4_noinst.la
AM_LDFLAGS_BLACK = \
- $(AM_LDFLAGS_WHITE)
+ @abs_top_builddir@/src/parser/libcvc4parser_noinst.la \
+ @abs_top_builddir@/src/libcvc4_noinst.la
AM_LDFLAGS_PUBLIC = \
- @abs_top_builddir@/src/libcvc4.la
+ @abs_top_builddir@/src/libcvc4.la
-TESTS = \
- expr/node_white \
- expr/node_black \
- parser/cvc/cvc_parser_black \
- parser/smt/smt_parser_black
+TESTS = $(UNIT_TESTS)
+
+EXTRA_DIST = \
+ no_cxxtest \
+ $(TEST_DEPENDENCIES)
# without these here, LTCXXCOMPILE, CXXLINK, etc., aren't set :-(
noinst_LTLIBRARIES = libdummy.la
mkdir -p `dirname "$@"`
@CXXTESTGEN@ --have-eh --have-std --error-printer -o "$@" "$<"
$(filter %_white,$(TESTS)): %_white: %_white.cpp
-# get these in here somehow
-# $(TEST_CPPFLAGS) $(TEST_CXXFLAGS) $(TEST_LDFLAGS)
$(LTCXXCOMPILE) $(AM_CXXFLAGS_WHITE) -c -o $@.lo $<
$(CXXLINK) $(AM_LDFLAGS_WHITE) $@.lo
$(filter %_black,$(TESTS)): %_black: %_black.cpp
-# get these in here somehow
-# $(TEST_CPPFLAGS) $(TEST_CXXFLAGS) $(TEST_LDFLAGS)
$(LTCXXCOMPILE) $(AM_CXXFLAGS_BLACK) -c -o $@.lo $<
$(CXXLINK) $(AM_LDFLAGS_BLACK) $@.lo
$(filter %_public,$(TESTS)): %_public: %_public.cpp
-# get these in here somehow
-# $(TEST_CPPFLAGS) $(TEST_CXXFLAGS) $(TEST_LDFLAGS)
$(LTCXXCOMPILE) $(AM_CXXFLAGS_PUBLIC) -c -o $@.lo $<
$(CXXLINK) $(AM_LDFLAGS_PUBLIC) $@.lo
# force a user-visible failure for "make check"
TESTS = no_cxxtest
+EXTRA_DIST = \
+ $(UNIT_TESTS) \
+ $(TEST_DEPENDENCIES)
+
endif
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
+
+# all unit tests
+UNIT_TESTS = \
+ expr/node_white \
+ expr/node_black \
+ parser/cvc/cvc_parser_black \
+ parser/smt/smt_parser_black
+
+
+# things that aren't tests but that tests rely on and need to
+# go into the distribution
+TEST_DEPENDENCIES =
@HAVE_CXXTESTGEN_TRUE@AM_CPPFLAGS = \
-@HAVE_CXXTESTGEN_TRUE@ -I. "-I@CXXTEST@" "-I@top_srcdir@/src/include" "-I@top_srcdir@/src"
+@HAVE_CXXTESTGEN_TRUE@ -I. "-I@CXXTEST@" "-I@top_srcdir@/src/include" "-I@top_srcdir@/src" \
+@HAVE_CXXTESTGEN_TRUE@ $(TEST_CPPFLAGS)
+@HAVE_CXXTESTGEN_TRUE@AM_CXXFLAGS = $(TEST_CXXFLAGS)
+@HAVE_CXXTESTGEN_TRUE@AM_LDFLAGS = $(TEST_LDFLAGS)
@HAVE_CXXTESTGEN_TRUE@AM_CXXFLAGS_WHITE = -fno-access-control
@HAVE_CXXTESTGEN_TRUE@AM_CXXFLAGS_BLACK =
@HAVE_CXXTESTGEN_TRUE@AM_CXXFLAGS_PUBLIC =
@HAVE_CXXTESTGEN_TRUE@AM_LDFLAGS_WHITE = \
-@HAVE_CXXTESTGEN_TRUE@ @abs_top_builddir@/src/parser/libcvc4parser_noinst.la \
-@HAVE_CXXTESTGEN_TRUE@ @abs_top_builddir@/src/libcvc4_noinst.la
+@HAVE_CXXTESTGEN_TRUE@ @abs_top_builddir@/src/parser/libcvc4parser_noinst.la \
+@HAVE_CXXTESTGEN_TRUE@ @abs_top_builddir@/src/libcvc4_noinst.la
@HAVE_CXXTESTGEN_TRUE@AM_LDFLAGS_BLACK = \
-@HAVE_CXXTESTGEN_TRUE@ $(AM_LDFLAGS_WHITE)
+@HAVE_CXXTESTGEN_TRUE@ @abs_top_builddir@/src/parser/libcvc4parser_noinst.la \
+@HAVE_CXXTESTGEN_TRUE@ @abs_top_builddir@/src/libcvc4_noinst.la
@HAVE_CXXTESTGEN_TRUE@AM_LDFLAGS_PUBLIC = \
-@HAVE_CXXTESTGEN_TRUE@ @abs_top_builddir@/src/libcvc4.la
+@HAVE_CXXTESTGEN_TRUE@ @abs_top_builddir@/src/libcvc4.la
# force a user-visible failure for "make check"
@HAVE_CXXTESTGEN_FALSE@TESTS = no_cxxtest
-@HAVE_CXXTESTGEN_TRUE@TESTS = \
-@HAVE_CXXTESTGEN_TRUE@ expr/node_white \
-@HAVE_CXXTESTGEN_TRUE@ expr/node_black \
-@HAVE_CXXTESTGEN_TRUE@ parser/cvc/cvc_parser_black \
-@HAVE_CXXTESTGEN_TRUE@ parser/smt/smt_parser_black
+@HAVE_CXXTESTGEN_TRUE@TESTS = $(UNIT_TESTS)
+@HAVE_CXXTESTGEN_FALSE@EXTRA_DIST = \
+@HAVE_CXXTESTGEN_FALSE@ $(UNIT_TESTS) \
+@HAVE_CXXTESTGEN_FALSE@ $(TEST_DEPENDENCIES)
+
+@HAVE_CXXTESTGEN_TRUE@EXTRA_DIST = \
+@HAVE_CXXTESTGEN_TRUE@ no_cxxtest \
+@HAVE_CXXTESTGEN_TRUE@ $(TEST_DEPENDENCIES)
# without these here, LTCXXCOMPILE, CXXLINK, etc., aren't set :-(
@HAVE_CXXTESTGEN_TRUE@ mkdir -p `dirname "$@"`
@HAVE_CXXTESTGEN_TRUE@ @CXXTESTGEN@ --have-eh --have-std --error-printer -o "$@" "$<"
@HAVE_CXXTESTGEN_TRUE@$(filter %_white,$(TESTS)): %_white: %_white.cpp
-# get these in here somehow
-# $(TEST_CPPFLAGS) $(TEST_CXXFLAGS) $(TEST_LDFLAGS)
@HAVE_CXXTESTGEN_TRUE@ $(LTCXXCOMPILE) $(AM_CXXFLAGS_WHITE) -c -o $@.lo $<
@HAVE_CXXTESTGEN_TRUE@ $(CXXLINK) $(AM_LDFLAGS_WHITE) $@.lo
@HAVE_CXXTESTGEN_TRUE@$(filter %_black,$(TESTS)): %_black: %_black.cpp
-# get these in here somehow
-# $(TEST_CPPFLAGS) $(TEST_CXXFLAGS) $(TEST_LDFLAGS)
@HAVE_CXXTESTGEN_TRUE@ $(LTCXXCOMPILE) $(AM_CXXFLAGS_BLACK) -c -o $@.lo $<
@HAVE_CXXTESTGEN_TRUE@ $(CXXLINK) $(AM_LDFLAGS_BLACK) $@.lo
@HAVE_CXXTESTGEN_TRUE@$(filter %_public,$(TESTS)): %_public: %_public.cpp
-# get these in here somehow
-# $(TEST_CPPFLAGS) $(TEST_CXXFLAGS) $(TEST_LDFLAGS)
@HAVE_CXXTESTGEN_TRUE@ $(LTCXXCOMPILE) $(AM_CXXFLAGS_PUBLIC) -c -o $@.lo $<
@HAVE_CXXTESTGEN_TRUE@ $(CXXLINK) $(AM_LDFLAGS_PUBLIC) $@.lo
-/* Black box testing of CVC4::Node. */
+/********************* -*- C++ -*- */
+/** node_black.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 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.
+ **
+ ** Black box testing of CVC4::Node.
+ **/
#include <cxxtest/TestSuite.h>
-/* White box testing of CVC4::Node. */
+/********************* -*- C++ -*- */
+/** node_white.h
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): dejan
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 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.
+ **
+ ** White box testing of CVC4::Node.
+ **/
#include <cxxtest/TestSuite.h>
-/* Black box testing of CVC4::parser::CvcParser. */
+/********************* -*- C++ -*- */
+/** cvc_parser_black.h
+ ** Original author: cconway
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009 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.
+ **
+ ** Black box testing of CVC4::parser::CvcParser.
+ **/
#include <cxxtest/TestSuite.h>
//#include <string>