1 /********************************************************************/
2 /*                                                                  */
3 /*  s7   Seed7 interpreter                                          */
4 /*  Copyright (C) 1990 - 2000  Thomas Mertes                        */
5 /*                                                                  */
6 /*  This program is free software; you can redistribute it and/or   */
7 /*  modify it under the terms of the GNU General Public License as  */
8 /*  published by the Free Software Foundation; either version 2 of  */
9 /*  the License, or (at your option) any later version.             */
10 /*                                                                  */
11 /*  This program is distributed in the hope that it will be useful, */
12 /*  but WITHOUT ANY WARRANTY; without even the implied warranty of  */
13 /*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   */
14 /*  GNU General Public License for more details.                    */
15 /*                                                                  */
16 /*  You should have received a copy of the GNU General Public       */
17 /*  License along with this program; if not, write to the           */
18 /*  Free Software Foundation, Inc., 51 Franklin Street,             */
19 /*  Fifth Floor, Boston, MA  02110-1301, USA.                       */
20 /*                                                                  */
21 /*  Module: General                                                 */
22 /*  File: seed7/src/traceutl.h                                      */
23 /*  Changes: 1990, 1991, 1992, 1993, 1994  Thomas Mertes            */
24 /*  Content: Tracing and protocol procedures.                       */
25 /*                                                                  */
26 /********************************************************************/
27 
28 typedef struct traceStruct {
29     boolType actions;
30     boolType check_actions;
31     boolType dynamic;
32     boolType exceptions;
33     boolType heapsize;
34     boolType match;
35     boolType executil;
36     boolType signals;
37   } traceRecord;
38 
39 #ifdef DO_INIT
40 traceRecord trace = {FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE};
41 #else
42 EXTERN traceRecord trace;
43 #endif
44 
45 #define prot_ustri(stri) prot_cstri((const_cstriType) stri)
46 #define prot_uchar(ch) prot_cchar((char) ch)
47 
48 
49 void prot_flush (void);
50 void prot_nl (void);
51 void prot_cstri (const_cstriType cstri);
52 void prot_cstri8 (const const_cstriType cstri8);
53 void prot_cchar (char ch);
54 void prot_writeln (const_cstriType stri);
55 void prot_int (intType ivalue);
56 void prot_bigint (const const_bigIntType bintvalue);
57 #if WITH_FLOAT
58 void prot_float (floatType floatValue);
59 #endif
60 void prot_char (charType cvalue);
61 void prot_string (const striType stri);
62 void prot_stri_unquoted (const const_striType stri);
63 void prot_stri (const const_striType stri);
64 void prot_bstri (bstriType bstri);
65 void prot_set (const_setType setValue);
66 void prot_heapsize (void);
67 void printcategory (objectCategory category);
68 void printtype (const_typeType anytype);
69 void printvalue (const_objectType anyobject);
70 void printobject (const_objectType anyobject);
71 void printLocObj (const_locObjType locObj);
72 void prot_list (const_listType list);
73 void prot_params (const_listType list);
74 void prot_name (const_listType list);
75 void trace_node (const_nodeType anynode);
76 void trace_nodes (void);
77 void printnodes (const_nodeType anynode);
78 void trace1 (const_objectType traceobject);
79 void trace_entity (const_entityType anyentity);
80 void trace_list (const_listType list);
81 void set_protfile_name (const const_striType protfile_name);
82 void set_trace (uintType options);
83 void mapTraceFlags (const_striType trace_level, uintType *options);
84 void mapTraceFlags2 (const_cstriType ctrace_level, uintType *options);
85