Developer's Guide

From CVC4
Revision as of 04:17, 17 November 2009 by Mdeters (Talk | contribs) (File and directory names)

Jump to: navigation, search

Source tree layout

  • config
    • this directory holds m4 macro processor files and bits of the autotools build system
  • contrib
    • this directory includes maintainer scripts and other things that aren't *directly* part of CVC4
  • doc
    • documentation
  • src
    • core
      • the core of CVC4: the expression package, the core engines, ...
    • include
      • most include files (some private include files are also in parser and sat)
    • parser
      • parsers for supported CVC4 input formats
    • sat
      • propositional parts of CVC4; these include imported minisat sources

Coding guidelines

File and directory names

  1. Files should be all lowercase, with CamelCase classes in header files named camel_case.h (and their implementations in camel_case.cpp);
  2. File extensions .cpp and .h are generally preferred, with .ypp and .lpp for yacc and lex inputs---an exception is made for headers when autotools wants to output parser definitions as (e.g.) pl.hpp;

Source file layout

Class header files

Class implementation files

Imported sources

(make sure to add to update-copyright.pl exclusions list)

Source file headers

update-copyright.pl

Using emacs

cvc4.el

General guidelines

Comments

Whitespace/tabs

Indentation

Use of autotools: automake, autoconf, autoheader, libtool