10f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#ifndef SPEC_H
20f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#define SPEC_H
30f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
40f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#include <string.h>
50f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#include <stdlib.h>
60f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
70f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#if __cplusplus
80f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesextern "C" {
90f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#endif
100f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
110f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesextern int num_lines;
120f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
130f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinestypedef struct {
140f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines  int isConst;
150f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines  int type;
160f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines  int bits;
170f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines  int ptrLevel;
180f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines  char name[256];
190f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines  char typeName[256];
200f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines} VarType;
210f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
220f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesextern VarType *currType;
230f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
240f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinestypedef struct {
250f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines  char name[256];
260f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines  int sync;
270f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines  int handcodeApi;
280f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines  int direct;
290f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines  int nocontext;
300f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines  int paramCount;
310f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines  VarType ret;
320f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines  VarType params[16];
330f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines} ApiEntry;
340f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
350f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesextern ApiEntry apis[128];
360f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesextern int apiCount;
370f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
380f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesextern int typeNextState;
390f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
400f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#if __cplusplus
410f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines} // extern "C"
420f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#endif
430f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines
440f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines#endif // SPEC_H
45