parseutils.h revision 690143cc
1/************************************************************ 2 Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. 3 4 Permission to use, copy, modify, and distribute this 5 software and its documentation for any purpose and without 6 fee is hereby granted, provided that the above copyright 7 notice appear in all copies and that both that copyright 8 notice and this permission notice appear in supporting 9 documentation, and that the name of Silicon Graphics not be 10 used in advertising or publicity pertaining to distribution 11 of the software without specific prior written permission. 12 Silicon Graphics makes no representation about the suitability 13 of this software for any purpose. It is provided "as is" 14 without any express or implied warranty. 15 16 SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 17 SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 18 AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON 19 GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 20 DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 21 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 22 OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH 23 THE USE OR PERFORMANCE OF THIS SOFTWARE. 24 25 ********************************************************/ 26 27#ifndef XKBPARSE_H 28#define XKBPARSE_H 1 29 30#ifndef DEBUG_VAR 31#define DEBUG_VAR parseDebug 32#endif 33 34#include "xkbcomp.h" 35 36extern char scanBuf[1024]; 37extern int scanInt; 38extern int lineNum; 39 40extern XkbFile *rtrnValue; 41 42#ifdef DEBUG 43#define d(str) fprintf(stderr,"%s\n",str); 44#define d1(str,a) fprintf(stderr,str,a); 45#define d2(str,a,b) fprintf(stderr,str,a,b); 46#else 47#define d(str) 48#define d1(str,a) 49#define d2(str,a,b) 50#endif 51 52 53extern ParseCommon *AppendStmt(ParseCommon * /* to */ , 54 ParseCommon * /* append */ 55 ); 56 57extern ExprDef *ExprCreate(unsigned /* op */ , 58 unsigned /* type */ 59 ); 60 61extern ExprDef *ExprCreateUnary(unsigned /* op */ , 62 unsigned /* type */ , 63 ExprDef * /* child */ 64 ); 65 66extern ExprDef *ExprCreateBinary(unsigned /* op */ , 67 ExprDef * /* left */ , 68 ExprDef * /* right */ 69 ); 70 71extern KeycodeDef *KeycodeCreate(char * /* name */ , 72 ExprDef * /* value */ 73 ); 74 75extern KeyAliasDef *KeyAliasCreate(char * /* alias */ , 76 char * /* real */ 77 ); 78 79extern VModDef *VModCreate(Atom /* name */ , 80 ExprDef * /* value */ 81 ); 82 83extern VarDef *VarCreate(ExprDef * /* name */ , 84 ExprDef * /* value */ 85 ); 86 87extern VarDef *BoolVarCreate(Atom /* nameToken */ , 88 unsigned /* set */ 89 ); 90 91extern InterpDef *InterpCreate(const char * /* sym_str */ , 92 ExprDef * /* match */ 93 ); 94 95extern KeyTypeDef *KeyTypeCreate(Atom /* name */ , 96 VarDef * /* body */ 97 ); 98 99extern SymbolsDef *SymbolsCreate(char * /* keyName */ , 100 ExprDef * /* symbols */ 101 ); 102 103extern GroupCompatDef *GroupCompatCreate(int /* group */ , 104 ExprDef * /* def */ 105 ); 106 107extern ModMapDef *ModMapCreate(Atom /* modifier */ , 108 ExprDef * /* keys */ 109 ); 110 111extern IndicatorMapDef *IndicatorMapCreate(Atom /* name */ , 112 VarDef * /* body */ 113 ); 114 115extern IndicatorNameDef *IndicatorNameCreate(int /* ndx */ , 116 ExprDef * /* name */ , 117 Bool /* virtual */ 118 ); 119 120extern ExprDef *ActionCreate(Atom /* name */ , 121 ExprDef * /* args */ 122 ); 123 124extern ExprDef *CreateKeysymList(char * /* sym */ 125 ); 126 127extern ShapeDef *ShapeDeclCreate(Atom /* name */ , 128 OutlineDef * /* outlines */ 129 ); 130 131extern OutlineDef *OutlineCreate(Atom /* field */ , 132 ExprDef * /* points */ 133 ); 134 135extern KeyDef *KeyDeclCreate(char * /* name */ , 136 ExprDef * /* expr */ 137 ); 138 139extern KeyDef *KeyDeclMerge(KeyDef * /* into */ , 140 KeyDef * /* from */ 141 ); 142 143extern RowDef *RowDeclCreate(KeyDef * /* keys */ 144 ); 145 146extern SectionDef *SectionDeclCreate(Atom /* name */ , 147 RowDef * /* rows */ 148 ); 149 150extern OverlayKeyDef *OverlayKeyCreate(char * /* under */ , 151 char * /* over */ 152 ); 153 154extern OverlayDef *OverlayDeclCreate(Atom /* name */ , 155 OverlayKeyDef * /* rows */ 156 ); 157 158extern DoodadDef *DoodadCreate(unsigned /* type */ , 159 Atom /* name */ , 160 VarDef * /* body */ 161 ); 162 163extern ExprDef *AppendKeysymList(ExprDef * /* list */ , 164 char * /* sym */ 165 ); 166 167extern int LookupKeysym(const char * /* str */ , 168 KeySym * /* sym_rtrn */ 169 ); 170 171extern IncludeStmt *IncludeCreate(char * /* str */ , 172 unsigned /* merge */ 173 ); 174 175extern unsigned StmtSetMerge(ParseCommon * /* stmt */ , 176 unsigned /* merge */ 177 ); 178 179#ifdef DEBUG 180extern void PrintStmtAddrs(ParseCommon * /* stmt */ 181 ); 182#endif 183 184extern int XKBParseFile(FILE * /* file */ , 185 XkbFile ** /* pRtrn */ 186 ); 187 188extern XkbFile *CreateXKBFile(int /* type */ , 189 char * /* name */ , 190 ParseCommon * /* defs */ , 191 unsigned /* flags */ 192 ); 193 194extern void yyerror(const char * /* s */ 195 ); 196 197extern int yywrap(void); 198 199extern int yylex(void); 200extern int yyparse(void); 201 202extern int setScanState(char * /* file */ , 203 int /* line */ 204 ); 205 206extern FILE *yyin; 207 208#endif /* XKBPARSE_H */ 209