summaryrefslogtreecommitdiff
path: root/fpcsrc/utils/sim_pasc/sim.h
blob: c4c4cc588a5c4890196c5358eec1f13c6a07185e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*	This file is part of the software similarity tester SIM.
	Written by Dick Grune, Vrije Universiteit, Amsterdam.
	$Id: sim.h,v 2.7 2005/02/20 17:03:03 dick Exp $
*/

#include	<stdio.h>

struct position {
	/* position of first and last token of a chunk */
	struct position *ps_next;
	int ps_type;		/* first = 0, last = 1 */
	unsigned int ps_tk_cnt;	/* in tokens; set by add_run() in Pass 1 */
	unsigned int ps_nl_cnt;	/* same, in line numbers; set by Pass2(),
				   used by Pass3() to report line numbers
				*/
};

struct text {
	char *tx_fname;		/* the file name */
	struct position *tx_pos;/* list of positions in this file that are
				   part of a chunk; sorted and updated by
				   Pass 2
				*/
	unsigned int tx_start;	/* positions in TokenArray[] for the text */
	unsigned int tx_limit;
	unsigned int tx_nl_start;/* possibly newline pointer for pass2 */
	unsigned int tx_nl_limit;
};

extern unsigned int MinRunSize;
extern int PageWidth;
extern FILE *OutputFile;
extern FILE *DebugFile;

extern struct text *Text;		/* Text[], one for each input file */
extern int NumberOfTexts;		/* number of text records */
extern int NumberOfNewTexts;		/* number of new text records */

extern char *progname;			/* for error reporting */