// // aegis - project change supervisor // Copyright (C) 2003-2006, 2008 Peter Miller // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see // . // #ifndef AEMEASURE_LANG_H #define AEMEASURE_LANG_H #include struct lang_data_t { long code_lines; long comment_lines; long blank_lines; int file_is_binary; long length; int line_has_code; int line_has_comment; int line_length; long halstead_n1; long halstead_n2; long halstead_N1; long halstead_N2; }; typedef int (*lang_test_t)(const char *); typedef void (*lang_count_t)(FILE *, lang_data_t *); struct lang_t { const char *name; lang_count_t count; lang_test_t test; }; lang_t *lang_by_name(const char *name); lang_t *lang_by_file(const char *filename); void lang_data_print(FILE *, lang_data_t *); #endif // AEMEASURE_LANG_H