root/tags/5.4.pre05/wxis_src/xis_comp.h

Revision 1, 5.7 kB (checked in by heitor.barbieri, 4 years ago)

Criação do svn para Cisis.

Line 
1/* -------------------------------------------------------------- XIS_COMP.H */
2
3/* ------------------------------------------------------------------ define */
4#define PATH_NAME_LEN           512                     /* path name lenght */
5/* ------------------------------------------------------------- enumeration */
6typedef enum {
7        CPL_ERROR_OK,
8        CPL_ERROR_ALLOC,
9        CPL_ERROR_INVALID,
10        CPL_ERROR_MISSING,
11        CPL_ERROR_PATHNAMELEN,
12        CPL_ERROR_NOTFOUND,
13        CPL_ERROR_FILE,
14        CPL_ERROR_WRITE,
15        CPL_ERROR_READ,
16   CPL_ERROR_LIST_QTT
17} CPL_ERROR;                                            /* error code */
18
19typedef enum {
20        TOKEN_ASSIGN,
21        TOKEN_ATTRIBUTE,
22        TOKEN_ELCLOSE,
23        TOKEN_ELEMENT,
24        TOKEN_ELEND,
25        TOKEN_END,
26        TOKEN_SEPARATOR,
27   TOKEN_LIST_QTT
28} CPL_TOKEN;                                            /* token */
29
30typedef enum {
31        ELEMENT_0,
32        ELEMENT_CALL,
33        ELEMENT_CGITABLE,
34        ELEMENT_DEFINE,
35        ELEMENT_DISPLAY,
36        ELEMENT_DISPL,
37        ELEMENT_DO,
38        ELEMENT_EXPORT,
39        ELEMENT_EXTRACT,
40        ELEMENT_FIELD,
41        ELEMENT_FILE,
42        ELEMENT_FLOW,
43        ELEMENT_FUNCTION,
44        ELEMENT_HL,
45        ELEMENT_HTMLPFT,
46        ELEMENT_INCLUDE,
47        ELEMENT_ISISSCRIPT,
48        ELEMENT_LABEL,
49        ELEMENT_LIST,
50        ELEMENT_LOOP,
51        ELEMENT_PARM,
52        ELEMENT_PFT,
53        ELEMENT_PROC,
54        ELEMENT_RETURN,
55        ELEMENT_SECTION,
56        ELEMENT_TRACE,
57        ELEMENT_UPDATE,
58        ELEMENT_WRITE,
59
60        ELEMENT_ISISXML,                                /* 22.Feb.2001 */
61
62   ELEMENT_LIST_QTT
63} CPL_ELEMENT;                                          /* element */
64
65typedef enum {
66        ATTRIBUTE_0,
67        ATTRIBUTE_ACTION,
68        ATTRIBUTE_FROM,
69        ATTRIBUTE_NAME,
70        ATTRIBUTE_PREVIOUS,
71        ATTRIBUTE_SPLIT,
72        ATTRIBUTE_TAG,
73        ATTRIBUTE_TASK,
74        ATTRIBUTE_TYPE,
75        ATTRIBUTE_AUX1,
76        ATTRIBUTE_AUX2,
77   ATTRIBUTE_LIST_QTT
78} CPL_ATTRIBUTE;                                        /* attribute */
79
80typedef enum {
81        ATVALUE_0,
82        ATVALUE_ACTAB,
83        ATVALUE_ADD,
84        ATVALUE_APPEND,
85        ATVALUE_BUFFERSIZE,
86        ATVALUE_CGI,
87        ATVALUE_CGISFT,
88        ATVALUE_CGISFU,
89        ATVALUE_CGISFW,
90        ATVALUE_CHECK,
91        ATVALUE_CIPAR,
92        ATVALUE_CLOSE,
93        ATVALUE_CONVERT,
94        ATVALUE_COPY,
95        ATVALUE_COUNT,
96        ATVALUE_CREATE,
97        ATVALUE_DATABASE,
98        ATVALUE_DB,
99        ATVALUE_DECOD,
100        ATVALUE_DEFINE,
101        ATVALUE_DELETE,
102        ATVALUE_DELIMITER,
103        ATVALUE_DISPLAY,
104        ATVALUE_EXIT,
105        ATVALUE_EXPIRE,
106        ATVALUE_EXPORT,
107        ATVALUE_EXPRESSION,
108        ATVALUE_EXTRACT,
109        ATVALUE_FILE,
110        ATVALUE_FLAG,
111        ATVALUE_FLDDIR,
112        ATVALUE_FREQ,
113        ATVALUE_FREQSUM,
114        ATVALUE_FROM,
115        ATVALUE_FST,
116        ATVALUE_FULLINV,
117        ATVALUE_GIZMO,
118        ATVALUE_HL,
119        ATVALUE_IMPORT,
120        ATVALUE_INDEXLIST,
121        ATVALUE_INVERTED,
122        ATVALUE_INVLOAD,
123        ATVALUE_JUMP,
124        ATVALUE_KEY,
125        ATVALUE_KEYFIELD,
126        ATVALUE_KEYLENGTH,
127        ATVALUE_KEYRANGE,
128        ATVALUE_KEYS,
129        ATVALUE_KEYSDB,
130        ATVALUE_LIST,
131        ATVALUE_LOAD,
132        ATVALUE_LOCKID,
133        ATVALUE_MASTER,
134        ATVALUE_MAXLK,
135        ATVALUE_MFN,
136        ATVALUE_MFNRANGE,
137        ATVALUE_MSTSORT,
138        ATVALUE_OCC,
139        ATVALUE_OUTPUT,
140        ATVALUE_POSTING,
141        ATVALUE_POSTTAG,
142        ATVALUE_PREFIX,
143        ATVALUE_RELOAD,
144        ATVALUE_REPLACE,
145        ATVALUE_RESET,
146        ATVALUE_REVERSE,
147        ATVALUE_SEARCH,
148        ATVALUE_SKIP,
149        ATVALUE_SORT,
150        ATVALUE_STATUSDB,
151        ATVALUE_STATUSFILE,
152        ATVALUE_STW,
153        ATVALUE_SUFFIX,
154        ATVALUE_TEMPFILE,
155        ATVALUE_TASK,
156        ATVALUE_TO,
157        ATVALUE_TYPE,
158        ATVALUE_UCTAB,
159        ATVALUE_UNLOCK,
160        ATVALUE_UPDATE,
161        ATVALUE_WRITE,
162   /* 27.Nov.2000 */
163        ATVALUE_PREFIX_HTMLPFT,
164        ATVALUE_SUFFIX_HTMLPFT,
165   /* 28.Nov.2000 */
166        ATVALUE_FIRST_LINE,
167   /* 22.Feb.2001 */
168        ATVALUE_ISISXML_STYLE,
169        ATVALUE_ISISXML_TABLE,
170   /* 05.Apr.2001 */
171        ATVALUE_LOG,
172
173   ATVALUE_LIST_QTT
174} CPL_ATVALUE;                                          /* attribute value */
175
176typedef enum {
177        COMMENT_NORMAL,                         /* <!-- comment --> */
178        COMMENT_PROCESS,                                /* <?xml version="1.0" ?> */
179        COMMENT_DECLARE,                                /* <!DOCTYPE type SYSTEM "type.dtd"> */
180   COMMENT_LIST_QTT
181} CPL_COMMENT;                                          /* comment */
182
183typedef enum {
184        PART_HEADER,
185   PART_COMMAND,
186   PART_TEXT,
187   PART_LIST_QTT
188} CPL_COMPILED_PART;                            /* compiled block */
189/* -------------------------------------------------------------- structures */
190typedef struct {
191        char *text;
192   int len;
193} CPL_IDENTIFIER;                                       /* identifier */
194
195typedef union {
196   CPL_ELEMENT element;
197   CPL_ATTRIBUTE attribute;
198} CPL_INDEX;                                            /* index */
199
200typedef struct {
201        CPL_TOKEN type;
202   CPL_INDEX index;
203   char *statment;
204   char *text;
205} CPL_TOKEN_STRU;                                       /* token */
206
207typedef struct {
208   char *text;
209   CPL_ATVALUE atValue;
210} CMD_ATTRIBUTE_STRU;                   /* attribute structure */
211
212typedef struct command_stru {
213   CPL_ELEMENT element;                                     /* CPL_CMD_COMPILED */
214   CMD_ATTRIBUTE_STRU attributeList[ATTRIBUTE_LIST_QTT];                /* CPL_CMD_COMPILED */
215   char *text;                                                                                                                          /* CPL_CMD_COMPILED */
216   struct command_stru *sub;                                                                                    /* CPL_CMD_COMPILED */
217   struct command_stru *prev;                                                                                   /* CPL_CMD_COMPILED */
218   struct command_stru *next;                                                                                   /* CPL_CMD_COMPILED */
219   struct command_stru *func;
220   void *altn;
221   BOOLEAN isCompiled;
222} CPL_COMMAND;                                          /* command */
223
224typedef struct save_command_stru {
225   CPL_ELEMENT element;
226   CMD_ATTRIBUTE_STRU attributeList[ATTRIBUTE_LIST_QTT];
227   char *text;
228   struct command_stru *sub;
229   struct command_stru *prev;
230   struct command_stru *next;
231} CPL_CMD_COMPILED;                             /* command compiled */
232
233typedef struct {
234        CPL_COMMAND *first;
235        CPL_COMMAND *last;
236} CPL_CMD_LIST;                                 /* command list */
237
238typedef struct {
239        EFC_ERROR error;
240   BOOLEAN printSource;
241   char *pathSource;
242   char *compiledExt;
243   BOOLEAN cplStarted;
244   CPL_COMMAND *cmd;
245} CPL_STRUCT;                                           /* compiler */
246
247typedef struct {
248        long versionNumber;
249   long aux1;
250   long aux2;
251} CPL_COMPILED_HEADER;                  /* compiled header */
252/* -------------------------------------------------------------- prototypes */
253CPL_ERROR       cplCompile                              (char *script,CPL_STRUCT *program);
254BOOLEAN                 cplIsCompiled                   (CPL_STRUCT *program,char *scriptName);
255CPL_ERROR       cplLoadCompiled         (char *loadFileName,CPL_STRUCT *program,CPL_COMMAND **cmd,CPL_CMD_LIST *cmdList);
256CPL_ERROR       cplSaveCompiled         (CPL_STRUCT *program,char *saveFileName);
257void                    cplFree                                 (CPL_COMMAND *first);
258int                     cplIdentifier                   (CPL_IDENTIFIER identList[],int listQtt,char *p);
259void                    cplPrintCommandClose    (CPL_COMMAND *cmd,BOOLEAN convLT);
260void                    cplPrintCommand         (CPL_COMMAND *cmd,BOOLEAN convLT);
261void                    cplPrintScope                   (int scope);
Note: See TracBrowser for help on using the browser.