-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconscomp.h
123 lines (104 loc) · 4.38 KB
/
conscomp.h
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/*******************************************************/
/* "C" Language Integrated Production System */
/* */
/* CLIPS Version 6.24 06/05/06 */
/* */
/* CONSTRUCT COMPILER HEADER FILE */
/*******************************************************/
/*************************************************************/
/* Purpose: */
/* */
/* Principal Programmer(s): */
/* Gary D. Riley */
/* */
/* Contributing Programmer(s): */
/* */
/* Revision History: */
/* */
/* 6.24: Renamed BOOLEAN macro type to intBool. */
/* */
/*************************************************************/
#ifndef _H_conscomp
#define _H_conscomp
#define ArbitraryPrefix(codeItem,i) (codeItem)->arrayNames[(i)]
#define ModulePrefix(codeItem) (codeItem)->arrayNames[0]
#define ConstructPrefix(codeItem) (codeItem)->arrayNames[1]
#ifndef _H_constrct
#include "constrct.h"
#endif
#ifndef _H_extnfunc
#include "extnfunc.h"
#endif
#ifndef _H_symblcmp
#include "symblcmp.h"
#endif
#ifndef _H_moduldef
#include "moduldef.h"
#endif
#define CONSTRUCT_COMPILER_DATA 41
struct CodeGeneratorItem
{
char *name;
void (*beforeFunction)(void *);
void (*initFunction)(void *,FILE *,int,int);
int (*generateFunction)(void *,char *,char *,char *,int,FILE *,int,int);
int priority;
char **arrayNames;
int arrayCount;
struct CodeGeneratorItem *next;
};
struct constructCompilerData
{
int ImageID;
FILE *HeaderFP;
int MaxIndices;
FILE *ExpressionFP;
FILE *FixupFP;
char *FilePrefix;
char *PathName;
char *FileNameBuffer;
intBool ExpressionHeader;
long ExpressionCount;
int ExpressionVersion;
int CodeGeneratorCount;
struct CodeGeneratorItem *ListOfCodeGeneratorItems;
};
#define ConstructCompilerData(theEnv) ((struct constructCompilerData *) GetEnvironmentData(theEnv,CONSTRUCT_COMPILER_DATA))
#ifdef LOCALE
#undef LOCALE
#endif
#ifndef _STDIO_INCLUDED_
#define _STDIO_INCLUDED_
#include <stdio.h>
#endif
struct CodeGeneratorFile
{
char *filePrefix;
char *pathName;
char *fileNameBuffer;
int id,version;
};
#ifdef _CONSCOMP_SOURCE_
#define LOCALE
#else
#define LOCALE extern
#endif
LOCALE void InitializeConstructCompilerData(void *);
LOCALE void ConstructsToCCommandDefinition(void *);
LOCALE FILE *NewCFile(void *,char *,char *,char *,int,int,int);
LOCALE int ExpressionToCode(void *,FILE *,struct expr *);
LOCALE void PrintFunctionReference(void *,FILE *,struct FunctionDefinition *);
LOCALE struct CodeGeneratorItem *AddCodeGeneratorItem(void *,char *,int,
void (*)(void *),
void (*)(void *,FILE *,int,int),
int (*)(void *,char *,char *,char *,int,FILE *,int,int),int);
LOCALE FILE *CloseFileIfNeeded(void *,FILE *,int *,int *,int,int *,struct CodeGeneratorFile *);
LOCALE FILE *OpenFileIfNeeded(void *,FILE *,char *,char *,char *,int,int,int *,int,FILE *,
char *,char *,int,struct CodeGeneratorFile *);
LOCALE void MarkConstructBsaveIDs(void *,int);
LOCALE void ConstructHeaderToCode(void *,FILE *,struct constructHeader *,int,int,
int,char *,char *);
LOCALE void ConstructModuleToCode(void *,FILE *,struct defmodule *,int,int,
int,char *);
LOCALE void PrintHashedExpressionReference(void *,FILE *,struct expr *,int,int);
#endif