#ifndef XKBPARSE_H
#define XKBPARSE_H 1
#ifndef DEBUG_VAR
#define DEBUG_VAR parseDebug
#endif
#include "xkbcomp.h"
extern char *scanStr;
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(
KeySym
);
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 * ,
KeySym
);
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(
char *
);
extern int yywrap(
void
);
extern int yylex(void);
extern int yyparse(void);
extern int setScanState(
char * ,
int
);
extern FILE *yyin;
#endif