lex.l revision 350952b9
1/* $XConsortium: lex.l,v 1.8 94/03/31 20:40:44 rws Exp $ */ 2/* $XFree86: xc/programs/xgc/lex.l,v 1.3 2000/04/05 18:14:07 dawes Exp $ */ 3/* 4** lex file for xgc syntax 5*/ 6 7/* Lots of stuff stolen from gwm's wool.lex */ 8 9%{ 10 11#include <X11/X.h> 12#include <stdlib.h> 13#include "gram.h" 14#include "constants.h" 15#if defined(FLEX_SCANNER) && !defined(YY_FLEX_LEX_COMPAT) && !defined(__UNIXOS2__) 16int yylineno; 17#endif 18%} 19 20%p 4000 21%a 3000 22 23number [0-9]+ 24word [^\n\t ]+ 25string \"([^"]|\\.)*\" 26 27%% 28 29[Rr]un { return (RUN); } 30 31[Ff]unction { return (FUNCTION); } 32[Cc]lear { yylval.num = GXclear; 33 return (FUNCTIONTYPE); } 34[Aa]nd { yylval.num = GXand; 35 return (FUNCTIONTYPE); } 36[Aa]ndReverse { yylval.num = GXandReverse; 37 return (FUNCTIONTYPE); } 38[Cc]opy { yylval.num = GXcopy; 39 return (FUNCTIONTYPE); } 40[Aa]ndInverted { yylval.num = GXandInverted; 41 return (FUNCTIONTYPE); } 42[Nn]oop { yylval.num = GXnoop; 43 return (FUNCTIONTYPE); } 44[Xx]or { yylval.num = GXxor; 45 return (FUNCTIONTYPE); } 46[Oo]r { yylval.num = GXor; 47 return (FUNCTIONTYPE); } 48[Nn]or { yylval.num = GXnor; 49 return (FUNCTIONTYPE); } 50[Ee]quiv { yylval.num = GXequiv; 51 return (FUNCTIONTYPE); } 52[Ii]nvert { yylval.num = GXinvert; 53 return (FUNCTIONTYPE); } 54[Oo]rReverse { yylval.num = GXorReverse; 55 return (FUNCTIONTYPE); } 56[Cc]opyInverted { yylval.num = GXcopyInverted; 57 return (FUNCTIONTYPE); } 58[Oo]rInverted { yylval.num = GXorInverted; 59 return (FUNCTIONTYPE); } 60[Nn]and { yylval.num = GXnand; 61 return (FUNCTIONTYPE); } 62[Ss]et { yylval.num = GXset; 63 return (FUNCTIONTYPE); } 64 65[Tt]est { return (TEST); } 66CopyArea { yylval.num = CopyArea; 67 return (TESTTYPE); } 68CopyPlane { yylval.num = CopyPlane; 69 return (TESTTYPE); } 70PolyPoint { yylval.num = PolyPoint; 71 return (TESTTYPE); } 72PolyLine { yylval.num = PolyLine; 73 return (TESTTYPE); } 74PolySegment { yylval.num = PolySegment; 75 return (TESTTYPE); } 76PolyRectangle { yylval.num = PolyRectangle; 77 return (TESTTYPE); } 78PolyArc { yylval.num = PolyArc; 79 return (TESTTYPE); } 80FillPolygon { yylval.num = FillPolygon; 81 return (TESTTYPE); } 82PolyFillRect { yylval.num = PolyFillRect; 83 return (TESTTYPE); } 84PolyFillArc { yylval.num = PolyFillArc; 85 return (TESTTYPE); } 86PutImage { yylval.num = PutImage; 87 return (TESTTYPE); } 88GetImage { yylval.num = GetImage; 89 return (TESTTYPE); } 90PolyText8 { yylval.num = PolyText8; 91 return (TESTTYPE); } 92ImageText8 { yylval.num = ImageText8; 93 return (TESTTYPE); } 94PolyText16 { yylval.num = PolyText16; 95 return (TESTTYPE); } 96ImageText16 { yylval.num = ImageText16; 97 return (TESTTYPE); } 98 99[Ll]inestyle { return (LINESTYLE); } 100OnOffDash { yylval.num = LineOnOffDash; 101 return (LINESTYLETYPE); } 102DoubleDash { yylval.num = LineDoubleDash; 103 return (LINESTYLETYPE); } 104 105[Cc]apstyle { return (CAPSTYLE); } 106NotLast { yylval.num = CapNotLast; 107 return (CAPSTYLETYPE); } 108Butt { yylval.num = CapButt; 109 return (CAPSTYLETYPE); } 110Projecting { yylval.num = CapProjecting; 111 return (CAPSTYLETYPE); } 112 113[Jj]oinstyle { return (JOINSTYLE); } 114Miter { yylval.num = JoinMiter; 115 return (JOINSTYLETYPE); } 116Bevel { yylval.num = JoinBevel; 117 return (JOINSTYLETYPE); } 118 119Round { return (ROUND); } 120 121[Ff]illstyle { return (FILLSTYLE); } 122Tiled { yylval.num = FillTiled; 123 return (FILLSTYLETYPE); } 124Stippled { yylval.num = FillStippled; 125 return (FILLSTYLETYPE); } 126OpaqueStippled { yylval.num = FillOpaqueStippled; 127 return (FILLSTYLETYPE); } 128 129Solid { return (SOLID); } 130 131[Ff]illrule { return (FILLRULE); } 132EvenOdd { yylval.num = EvenOddRule; 133 return (FILLRULETYPE); } 134Winding { yylval.num = WindingRule; 135 return (FILLRULETYPE); } 136 137[Aa]rcmode { return (ARCMODE); } 138Chord { yylval.num = ArcChord; 139 return (ARCMODETYPE); } 140PieSlice { yylval.num = ArcPieSlice; 141 return (ARCMODETYPE); } 142 143[Ff]oreground { return (FOREGROUND); } 144[Bb]ackground { return (BACKGROUND); } 145[Ll]inewidth { return (LINEWIDTH); } 146[Pp]lanemask { return (PLANEMASK); } 147[Dd]ashlist { return (DASHLIST); } 148[Ff]ont { return (FONT); } 149[Pp]ercent { return (PERCENT); } 150 151{number} { (void) sscanf ((char *)yytext, "%d", &yylval.num); 152 return (NUMBER); } 153{string} { yylval.ptr = (char *) yytext; 154 return (STRING); } 155\#[^\n]*\n { ; } 156[\t ] { ; } 157\n { return ('\n'); } 158 159{word} { yylval.ptr = (char *) yytext; 160 return (STRING); } 161 162. { fprintf(stderr, 163 "xgc: bad character `%s', line %d\n", 164 yytext, yylineno); } 165 166%% 167 168#ifndef yywrap 169int yywrap(void) { return (1); } 170#endif 171