184614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato#ifndef SPEC_H
284614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato#define SPEC_H
384614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato
4dd758091b6490c1ca3038f4b9ec50a83ae02b321Joe Onorato#include <string.h>
5dd758091b6490c1ca3038f4b9ec50a83ae02b321Joe Onorato#include <stdlib.h>
6dd758091b6490c1ca3038f4b9ec50a83ae02b321Joe Onorato
784614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato#if __cplusplus
884614dd02411e1cf9a4c37aa421898c471cfad20Joe Onoratoextern "C" {
984614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato#endif
1084614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato
1184614dd02411e1cf9a4c37aa421898c471cfad20Joe Onoratoextern int num_lines;
1284614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato
1384614dd02411e1cf9a4c37aa421898c471cfad20Joe Onoratotypedef struct {
1484614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato  int isConst;
1584614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato  int type;
1684614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato  int bits;
1784614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato  int ptrLevel;
1884614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato  char name[256];
1984614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato  char typeName[256];
2084614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato} VarType;
2184614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato
2284614dd02411e1cf9a4c37aa421898c471cfad20Joe Onoratoextern VarType *currType;
2384614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato
2484614dd02411e1cf9a4c37aa421898c471cfad20Joe Onoratotypedef struct {
2584614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato  char name[256];
2684614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato  int sync;
279397e30ce5fe3f6af9212a93b490836b04fdfffaJason Sams  int handcodeApi;
28186e59154a0fb86e05e283e9c083b69878c06720Jason Sams  int direct;
29186e59154a0fb86e05e283e9c083b69878c06720Jason Sams  int nocontext;
3084614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato  int paramCount;
3184614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato  VarType ret;
3284614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato  VarType params[16];
3384614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato} ApiEntry;
3484614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato
3584614dd02411e1cf9a4c37aa421898c471cfad20Joe Onoratoextern ApiEntry apis[128];
3684614dd02411e1cf9a4c37aa421898c471cfad20Joe Onoratoextern int apiCount;
3784614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato
3884614dd02411e1cf9a4c37aa421898c471cfad20Joe Onoratoextern int typeNextState;
3984614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato
4084614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato#if __cplusplus
4184614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato} // extern "C"
4284614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato#endif
4384614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato
4484614dd02411e1cf9a4c37aa421898c471cfad20Joe Onorato#endif // SPEC_H
45