#ifndef XKBPARSE_H
#define XKBPARSE_H 1
#ifndef DEBUG_VAR
#define DEBUG_VAR parseDebug
#endif
#include "xkbcomp.h"
extern char scanBuf[1024];
extern int scanInt;
extern int lineNum;
extern XkbFile *rtrnValue;
#ifdef DEBUG
#define d(str) fprintf(stderr,"%s\n",str);
#define d1(str,a) fprintf(stderr,str,a);
#define d2(str,a,b) fprintf(stderr,str,a,b);
#else
#define d(str)
#define d1(str,a)
#define d2(str,a,b)
#endif
extern ParseCommon *AppendStmt(ParseCommon * ,
ParseCommon *
);
extern ExprDef *ExprCreate(unsigned ,
unsigned
);
extern ExprDef *ExprCreateUnary(unsigned ,
unsigned ,
ExprDef *
);
extern ExprDef *ExprCreateBinary(unsigned ,
ExprDef * ,
ExprDef *
);
extern KeycodeDef *KeycodeCreate(char * ,
ExprDef *
);
extern KeyAliasDef *KeyAliasCreate(char * ,
char *
);
extern VModDef *VModCreate(Atom ,
ExprDef *
);
extern VarDef *VarCreate(ExprDef * ,
ExprDef *
);
extern VarDef *BoolVarCreate(Atom ,
unsigned
);
extern InterpDef *InterpCreate(KeySym ,
ExprDef *
);
extern KeyTypeDef *KeyTypeCreate(Atom ,
VarDef *
);
extern SymbolsDef *SymbolsCreate(char * ,
ExprDef *
);
extern GroupCompatDef *GroupCompatCreate(int ,
ExprDef *
);
extern ModMapDef *ModMapCreate(Atom ,
ExprDef *
);
extern IndicatorMapDef *IndicatorMapCreate(Atom ,
VarDef *
);
extern IndicatorNameDef *IndicatorNameCreate(int ,
ExprDef * ,
Bool
);
extern ExprDef *ActionCreate(Atom ,
ExprDef *
);
extern ExprDef *CreateKeysymList(char *
);
extern ShapeDef *ShapeDeclCreate(Atom ,
OutlineDef *
);
extern OutlineDef *OutlineCreate(Atom ,
ExprDef *
);
extern KeyDef *KeyDeclCreate(char * ,
ExprDef *
);
extern KeyDef *KeyDeclMerge(KeyDef * ,
KeyDef *
);
extern RowDef *RowDeclCreate(KeyDef *
);
extern SectionDef *SectionDeclCreate(Atom ,
RowDef *
);
extern OverlayKeyDef *OverlayKeyCreate(char * ,
char *
);
extern OverlayDef *OverlayDeclCreate(Atom ,
OverlayKeyDef *
);
extern DoodadDef *DoodadCreate(unsigned ,
Atom ,
VarDef *
);
extern ExprDef *AppendKeysymList(ExprDef * ,
char *
);
extern int LookupKeysym(char * ,
KeySym *
);
extern IncludeStmt *IncludeCreate(char * ,
unsigned
);
extern unsigned StmtSetMerge(ParseCommon * ,
unsigned
);
#ifdef DEBUG
extern void PrintStmtAddrs(ParseCommon *
);
#endif
extern int XKBParseFile(FILE * ,
XkbFile **
);
extern XkbFile *CreateXKBFile(int ,
char * ,
ParseCommon * ,
unsigned
);
extern void yyerror(const char *
);
extern int yywrap(void);
extern int yylex(void);
extern int yyparse(void);
extern int setScanState(char * ,
int
);
extern FILE *yyin;
#endif